是什么
线性回归:Linear Regression
寻找一条直线,最大程度的“拟合”样本特征和样本输出标记之间的关系。
主要解决回归问题
特点
-
思想简单,实现容易
-
许多强大的非线性模型的基础
-
结果具有很好的可解释性
-
蕴含机器学习中的很多重要思想
-
是典型的参数学习;
对比之下,kNN 是非参数学习 -
只能解决回归问题
虽然很多分类方法中,线性回归是基础(如 逻辑回归);
对比之下,kNN 既可以解决分类 也可以解决回归问题。 -
对数据有假设:线性;
对比之下,kNN 对数据没有假设。 -
稍微改变线性回归算法,也可以处理非线性问题。
和 kNN 图示的区别
kNN(左图)的 x, y 轴都是样本特征;
线性回归(右图)的 x 轴是特征,y 轴是输出标记 label;
回归问题要预测的是一个具体的数值,这个数值是在连续的空间里的。
简单线性回归
样本特征只有一个,称为 简单线性回归。
可以通过简单线性回归,学习到线性回归相应的内容,之后再将它推广到特征有多个的情况(多元线性回归)。
算法原理
假没我們找到了最佳批合的直线方程: y = a x + b y = ax + b y=ax+b
则对于毎一个样本点 x ( i ) x^{(i)} x(i)来说,根据我们的直线方程,预测值为: y ^ ( i ) = a x ( i ) + b \hat{y}^{(i)} = ax^{(i)} + b y^(i)=ax(i)+b。( y ^ \hat{y} y^ 读作 y hat )
希望这条直线 让 真值 y ( i ) {y}^{(i)} y(i) 和 预测值 y ^ ( i ) \hat{y}^{(i)} y^(i) 差距尽量小。
表达 ${y}^{(i)} $ 和 $ \hat{y}^{(i)}$ 的差距
- y ^ ( i ) − y ( i ) \hat{y}^{(i)} - {y}^{(i)} y^(i)−y(i) 不合适,因为有可能为负值;
- ∣ y ^ ( i ) − y ( i ) ∣ | \hat{y}^{(i)} - {y}^{(i)} | ∣y^(i)−y(i)∣ 不够好,因为绝对值不是处处可导的;绝对值可以后续用来衡量性能。
- ( y ^ ( i ) − y ( i ) ) 2 ( \hat{y}^{(i)} - {y}^{(i)})^2 (y^(i)−y(i))2 可以,考虑到所有样本,可使用 ∑ i = 1 m ( y ^ ( i ) − y ( i ) ) 2 \sum^m_{i=1} ( \hat{y}^{(i)} - {y}^{(i)})^2 ∑i=1m(y^(i)−y(i))2
所以线性回归计算的目标,是使 ∑ i = 1 m ( y ^ ( i ) − y ( i ) ) 2 \sum^m_{i=1} ( \hat{y}^{(i)} - {y}^{(i)})^2 ∑i=1m(y^(i)−y(i))2 尽可能小。
将上述式子代入 y ^ ( i ) = a x ( i ) + b \hat{y}^{(i)} = ax^{(i)} + b y^(i)=ax(i)+b,可转化目标为:
找到 a 和 b,使 ∑ i = 1 m ( y ^ ( i ) − a x ( i ) − b ) 2 \sum^m_{i=1} ( \hat{y}^{(i)} - {ax}^{(i)} - b)^2 ∑i=1m(y^(i)−ax(i)−b)2 尽可能小。这里 a 和 b 是未知数。
这是一个典型的最小二乘法问题:最小化误差的平方。
通过最小二乘法,可以解出 a 和 b 的表达式:
a = ∑ i = 1 m ( x ( i ) − x ‾ ) ( y ( i ) − y ‾ ) ∑ i = 1 m ( x ( i ) − x ‾ ) 2 a = \frac{\sum^m_{i=1} (x^{(i)} - \overline{x} )(y^{(i)} - \overline{y} ) }{ \sum^m_{i=1} (x^{(i)} - \overline{x} )^ 2 } a=∑i=1m(x(i)−x)2∑i=1m(x(i)−x)(y(i)−y)
b = y ‾ − a x ‾ b = \overline{y} - a\overline{x} b=y−ax
x ‾ \overline{x} x 读作 x bar
求函数最小值,是一个极值问题,方法为求导;导数为 0 的地方是极值点。
J ( a , b ) = ∑ i = 1 m ( y ( i ) − a x ( i ) − b ) 2 J(a, b) = \sum^m_{i=1} ( {y}^{(i)} - {ax}^{(i)} - b)^2 J(a,b)=∑i=1m(y(i)−