线性回归
线性回归是机器学习中最基础最简单的回归算法了,现在关于线性回归的原理做一个总结。
关于线性的概念,其实在高中就有了解了,两个变量之间存在一次方函数关系()即为线性,其图像在平面上是一条直线。
而线性回归就是对给定的数据,找到一条均方误差最小的直线或者说模型函数。这就是线性回归的本质。
线性回归的模型函数
线性回归问题,给定的数据一般如下形式:
其中有m个样本,每个样本对应n维特征和一个输出结果。现在,我们的问题是对于一个新的数据,它对应的结果是多少呢?如果使用线性回归来解决这个问题,那么对应的模型应该如下:
我们增加一个的特征,可以简化成:
其中是模型参数,是每个样本的n个特征值。
用矩阵形式表示上式就是:
其中为mxn维的矩阵,为nx1的向量,得到的为mx1的向量。m代表样本的个数,n代表样本的特征数。
正规方程(最小二乘法)求损失函数参数
线性回归一般采用均方误差作为损失函数,损失函数代数法可以表示为:
用矩阵的方式可以表示为:
上式中有两个2,上面的2表示平方,下面的2表示二范数。继续化简得:
要求使损失函数最小时的参数,对进行求导,令导数为0:
化简,求出:
梯度下降法求损失函数参数
梯度下降法的思想:
(1)对赋值,这个值可以使随机的
(2)改变的值,使得按梯度下降的方向进行减小
(3)当下降到无法继续下降时,即对的导数为0时,此时即为最佳参数
采用梯度下降法,的更新规则是:
其中表示学习率,步长,由人工设置,经过若干次迭代,即可得到的结果。
线性回归的正则化(Lasso回归和岭回归)
普通的线性回归容易过拟合,为了防止过拟合,我们在建立线性模型的时候经常需要加入正则化项(正则项的作用是限制系数),于是出现了Lasso回归和岭回归。
Lasso回归是线性回归的基础上加上L1正则化,它的损失函数是:
Lasso适用于稀松矩阵(大部分系数为0)
岭回归是线性回归的基础上加上L2正则化,它的损失函数是:
岭回归适用于数据中存在共线性的情况(非满秩矩阵-奇异矩阵)