线性回归,是最简单的回归模型,其中最大名鼎鼎的例子是房价预测问题了。给定一定的房屋的基本特征,需要找到特征和房价之间的规律,最后给定一堆房屋数据,去预测房屋的价格。解决房价问题的方法有很多,而线性回归就是其中最为简单的模型。线性回归的基本思路是:通过一条直线/曲线/超平面去拟合现有的点,给出最佳的参数组合,对于新的输入变量,做到自动预测。如下的数学定义:
(n x p) 表示数据矩阵,每一个分量是一个p列的样本;
表示数据标签,n可以为为1类,也可以为多类 ;
线性回归模型的定义如下:
在表达式中的变换是令=1,写成矩阵模式。对于观测误差,有如下的定义:
线性回归的目标是用预测结果尽可能地拟合目标label,但凡是观测,就一定会有误差,损失函数定义的不同,线性回归的叫法也不同,比如lasso和ridge regression,我将在后续的文章中介绍。线性回归用的最多的是最小2乘损失函数,定义如下:
可能有人会问,为啥要用最小2乘,而不用别的损失 函数呢?其实这背后是有数学原理的,并非空穴来风。在概率论中,对于误差,拉普拉斯中心极限定理表明,当数据集规模越来越大时,其分布逐渐收敛为高斯分布。因为每个样本都是独立的,因此 ε(i)之间也是相对独立的,而且等同分布,因此我们可以定义误差服从的高斯分布,根据高斯分布的概率密度函数,可得:
这里要注意的是,我们求的是数据集在参数下,对于的估计,因此根据上面的式子,可以将概率密度函数写为
接下来的工作就是寻找参数,得到最有可能的分布。而对于估计未知的参数,最常用的办法是极大似然估计。下面,我们来做下数学推导,看看如何从误差高斯分布到最小2乘。似然方程
两边同时取对数
化简可得:
要最大化L,就要使得最小。
从线性回归的几何定义可以看出,线性回归的优化目标是--图中的线段的距离的均值,最小化到分割面的距离和
接下来我们使用梯度下降法来求最优解。梯度下降后面争取单独用一篇文章来介绍,这里我们直接使用梯度下降的方法来求解。梯度下降的核心思想就是找到函数在某个方向上的最小值,然后沿着该函数的梯度方向去探索。对于简单的线性的情况,下面简单的推导一下
因此梯度下降的表达式可以按照如下的进行更新,叫做学习率,显示一次移动的量的大小,总结来说,梯度决定了移动反向,学习率决定了大小,步长和大小都是有一定的规律的,不能太大也不能太小,后面的梯度下降的文章中,我会专门针对学习率详细的介绍:
上面的只是简单的线性方程的近似最小解的求解,更加通用的是矩阵求解,这里就参考博客https://www.jianshu.com/p/7c4fda4f1498炒个冷饭。我个人其实是很恐惧矩阵的,机器学习如果是偏向工程,对底层的算法的推导就没这么严格,基本上秉承了拿来主义,不过学习阶段,还是有必要做下推导的,把基础夯实才追重要,先上几个矩阵求导的公式
令:
参考链接:
https://blog.csdn.net/xbinworld/article/details/43919445
https://www.jianshu.com/p/7c4fda4f1498