Category Archives: machine learning

机器学习小结-线性回归

最近接触了机器学习的相关知识,会不定期的进行总结,巩固学习成果。
机器学习分为了监督型以及非监督型两种:
1. 监督型就是有输入数据、有输出数据,在这一基础上建立模型,进行预测等。
2. 非监督型有输入数据,但是没有输出数据,直接建模。
机器学习有很多种算法,线性回归应该是最先接触的算法,也是最基础的算法。总结一下线性回归,主要是概念。

说明

线性回归属于监督型机器学习算法,这种预测方法已经存在了超过200年。我这里只介绍简单的一个变量的线性回归模型。
单变量线性回归,假定

y=b0+b1*x

输出Y与输入X存在线性关系,b0,b1为参数,目标是根据输入数据,能够将误差降低的最小。而将误差降低到最小的方式就是根据实际的输出值Y与通过线性回归计算出的输出值y求差的平方之和,最后结果越小误差越小。

J = (Y-b0-b1-x)^2 /2m

其中m是训练数据的个数,除以2m是为了后面计算方便。

计算方法

  1. 最小二乘法
    有了训练数据,有了公式,有两种计算方法,一种是通过最小二乘法,最小二乘法有很多说明了,这里我只把公式粘贴出来:
    最小二乘法
    可见,根据训练数据能够求解出误差最小的系数,我们认为这一系数是最佳解。
  2. 梯度下降法
    通过反复迭代,找到局部最优解,模型是一样的,定义如下的误差函数:
    误差函数
    其中
    定义
    为了得到最优解,我们向梯度下降,就是负梯度的方向,预测下一步的值。
    梯度下降的方法
    上图就是梯度下降的计算公式,这里面最重要的就是去求解两个偏导数,根据偏导数公式,可以得到以下公式
    梯度下降公式
    可以看出,完全可以通过训练数据得到下一步参数值,当满足迭代停止条件的时候就停止迭代,得到我们要求的参数。