最近重新回顾了一下机器学习的算法,把以前学过的再看一遍,然后整理总结在博客上。这次总结一下线性回归,参考书籍为周志华老师的西瓜书。
1、简述线性回归
线性回归顾名思义线性即线性关系,表示两个变量之间存在一次方函数关系 (参考百度百科);回归是一种统计分析的方式,直观的看就是寻找属性和结果之间的映射(函数)。接下来探讨一下常用的线性回归(在连续变量下)
2、一元线性回归
考虑一种最简单的情况:输入的属性只有一个。线性回归试图学的 f ( x i ) = w x i + b 使 得 f ( x i ) ≈ y i f(x_i)=wx_i+b \ \ 使得\ \ f(x_i)\approx y_i f(xi)=wxi+b 使得 f(xi)≈yi
问题在于如何确定w和b,我认为机器学习和深度学习几乎都是在做一件事:最大化和最小化某个式子,就像我们认真做事的时候总想做到最好,不管这种贪心思维是好是坏还是怎么地,它确实是激励着我们,机器学习也不例外。显然在线性回归中,我们希望预测值更接近真实值,那么我需要一个度量的标准,“距离”是一个合适的标准。我准备以后写一篇关于各种距离的分析和总结,敬请期待。
我们使用平方距离(欧式距离) d = ( y ^ − y i ) 2 d=(\widehat{y}-y_i)^{2} d=(y
−yi)2来考察预测值和真实值的差距,其实就是均方误差(MSE)。
那么我们的目标是最小化这个d,即求w和b使得d最小。
( w ∗ , b ∗ ) = a r g m i n ∑ i = 1 m ( y ^ − y i ) 2 = a r g m i n ∑ i = 1 m ( y i − w x i − b ) 2 (w*,b*)=\ arg\ \ min \sum\limits_{i=1}^{m}(\widehat{y}-y_i)^{2} \\ ~\\=arg \ \ min\sum\limits_{i=1}^{m}(y_i-wx_i-b)^2 (w∗,b∗)= arg mini=1∑m(y
−yi)2 =arg mini=1∑m(yi−wxi−b)2
基于均方误差的求解方法称为“最小二乘法”,一元线性回归就是找一个直线,使得所有的样本到这条直线的欧式距离之和最小。
记 E ( w , b ) E_{(w,b)} E(w,b)为误差之和,分别对w和b求偏导并令其等于0
∂ E ( w , B ) ∂ b = 2 w ∑ i = 1 m x i 2 − 2 ∑ i = 1 m x i ( y i − b ) = 0 ( 1 ) \frac{\partial{E_{(w,B)}}}{\partial{b}}=2w\sum\limits_{i=1}^{m}x_i^2-2\sum\limits_{i=1}^{m}x_i(y_i-b)=0\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (1) ∂b∂E(w,B)=2wi=1∑mxi2−2i=