机器学习笔记(一)线性回归

线性回归

线性回归是监督学习的一种

线性回归理论

  1. 预测过程:给定一个数据集(x, y),寻找它在坐标系中的分布特征,用线性函数h(x)进行数学建模。给定x时,模型可以给出y的预测值
  2. 预测过程分类:当h(x)是连续函数时,称为线性回归;当h(x)是离散函数时,称为分类问题
  3. 假设函数:对于线性回归,h(x)可以被称为假设函数,它可以是一个多元函数,如下面的公式所示,注意在公式的右边,写成了\theta^{T}X,其中\theta向量原本是一个行向量,经转置为列向量,与行向量相乘得到h的值,是一个数值不是矩阵
  4. 代价函数:用于评估假设函数中待定系数的准确性 ,可以有多种形式,在下面这个代价函数中,当函数值越小时,说明线性回归模型更加的准确,说专业点,体现了函数曲线与数据集的拟合程度越好
  5.  机器学习过程:如下图所示,我们通过算法得到一个合适的估计函数(假设函数)能够做成较为准确的预测

梯度下降算法理论

  1. 梯度下降算法: 当J函数取最小值时,说明h函数拟合效果最好,为了得到J函数的最小值,提出了梯度下降算法,还有一种方法是直接用数学的方法,利用导数求出J函数的最小值(由于定义中J函数是连续函数,而连续函数在闭区间中的最小值只在端点和导数为零的地方取到)。梯度下降算法在实际使用中分为三类,不同之处在于每次学习使用的样本个数不同
  2. 梯度下降算法过程:
    首先对J(\theta )函数的\theta赋值,可以是随机的;
    改变\theta的值,使J(\theta )函数按梯度下降的方向减小
  3. 更新\theta的方法:是一个迭代的过程,对\theta向量的每个元素要同时更新,原因还要深入追究;其中\alpha是学习率,其实就是用来控制较小的步长,用偏微分求出的是J函数的斜率,斜率越大,下降越快,这是对一个二维的\theta向量的操作

 线性回归的批量梯度下降算法

每次使用全部的训练集样本来更新模型的参数;批量梯度下降能够找到一个局部最小值,由于线性回归的代价函数只有一个最小值也就是全局最小值,所以使用批量梯度下降算法可以求出代价函数的最小值

  1. 对线性回归使用梯度下降算法就可以得到最优解,多变量线性回归的批量梯度下降算法原理为:

    将J函数带入,并对微分进行化简得到:

    将微分计算得到:

    从上面的式子可以看出更新一个\theta值需要进行一次求和运算;在经过一轮运算后得到新的\theta向量的值,用这个值再进行计算;为了考察是否得到了合适的\theta参数,可以考察两次运算之间\theta变化了多少,\theta的变化大小间接衡量了代价函数J斜率的大小,当\theta变化很小时,就认为得到了最小值,也就是斜率为零的点,在这个点取得代价函数的最小值

线性回归的另外两种梯度下降算法

线性回归的另外两种梯度下降算法是:随机梯度下降算法和Mini-batch梯度下降算法,这两种算法速度比批量梯度下降算法快,但是误差会比较大

  1. 线性回归的随机梯度下降算法
    这种算法在更新\theta向量时只使用一个训练集样本
  2. 线性回归的Mini-batch梯度下降算法
    在每次更新速度与更新次数中间取得一个平衡,其每次更新从训练集中随机选择b,b<m个样本进行学习

其他地方三者是一致的

理论总结

以上内容从预测过程开始,紧接着给出了线性回归的定义以及代价函数的定义,为了求得代价函数的最小值使用了梯度下降算法,通过算法自动迭代\theta的值,求出最合适的模型

注:本文公式截图来自http://www.ai-start.com/ml2014/梯度下降算法是

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值