机器学习--线性回归

    机器学习的一些概念就不详细介绍了,大致就是分类,聚类,回归这些!不管是哪种,总之都是需要根据数据,训练出一个模型,其实机器学习的思想就是最优化,优化出一个好的模型。当然还有监督学习,无监督学习这些概念,通俗点说,分类就是给你一组数据,一组有标签的数据,举个例子就是我现在有10个数据,这个10个数据是关于三种花的,菊花,玫瑰花,月季花!我首先给出属性,颜色,大小,有无刺,花香,然后给出标签(这个标签就是我事先知道是什么话,这10组数据都是知道属于什么花),然后我可以设计分类器,分出三类花,然后当我再次给出一个未知花的属性时候,我可以将其归类。无监督就是没有标签,我只有数据,我不知道这是什么花,我只是采用聚类算法,将其分成不同的类别,至于它是什么类别,属于什么花,I DON'T KNOW!

   今天聊聊机器学习里面最基础,也是最常见的模型--线性回归,打公式真的太麻烦了,能截图就截图吧!

损失函数是衡量估计值与真实值直接的差异,一般情况下我们会在前面乘以系数1/2,这样做的目的就是为了求导数时方便。关于线性回归,我重新写一下公式,就是要完成这么一个任务!

。好吧,这里刚才提到了乘以1/2,那么为什么是平方函数作为衡量标准,而不是4次方,五次方,这里稍微解释一下,也是参考andrew ng视频里面的讲解。

 假设预测结果和真实值之间有一个误差,则真实结果与预测结果满足如下公式:一般情况下,误差是满足平均值为0的高斯分布,于是可以得到:然后我们希望在最大似然估计时得到theta,对公式求导取最大值,得到。所以误差函数采用平方和,就可以这么理解。

    梯度下降法

   在机器学习的算法优化里,以后都会经常接触到梯度下降这个名词。流程就是首先对theta赋值,可以随机,也可以初始为0向量。然后不断改变theta的值,使得损失函数按照梯度下降的方向减小。先假设只有一个训练样本,那么求导结果就是梯度下降有两种方式,一种是对所有训练样本进行权值更新,另一种是随机梯度下降,没更新一个只需要一个样本。但是随机梯度下降缺点是常常无法收敛到最小值。

     还有一种求解theta的方法是最小二乘法,也就是采用矩阵的形式。此方法需要X为列满秩,然而现实任务中会遇到大量的变量,其数目甚至超过样例数,导致X的列数多于行数,可以解出多个theta,都能使得均方误差最小化,选择哪个作为输出结果,将由学习算法的归纳偏好决定,常见做法就是引入正则化。

    最后贴一小段代码,顺口提一下,在机器学习中,python的sklearn库是很强大的,里面集成了很多的算法,可以直接拿来调用。首先安装在自己的电脑上安装python,python2.7或者3.4都ok啦,但是建议安装python2.7,因为很多的模块,库比较全面,安装过程还是比较简单,一路next。但是安装好了,里面很多的库都会需要我们自己再次安装,一般使用pip install 。我这里推荐直接安装anaconda,因为里面很多库都是存在的,安装anaconda就不要再安装python2.7了。 

     使用sklearn的前提是确保python里面已经有这个库,import导入试试,没啥问题就ok了。sklearn的学习可以去官网,官方文档还很流弊的。写个线性模型的基础代码:

      from sklearn.linear_model import LinearRegression

      model=LinearRegression()

      model.fit(x,y)

      print('预测为: '%model.predict([12]))

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值