一.线性回归(Linear Regression)原理简介
1.基本内容
线性回归是机器学习中最为简单,最基础的一类有监督算法,直观易于理解,可解释性强。
线性回归要解决的问题是:给定一组样本输入,在某一特定损失下,找到目标值和输入值之间的函
数关系,在此基础上,再给定一个新样本下,我们能够预测其对应的目标值是多少。
2.模型分解
线性(Linear)算法模型:给定n个属性 ,此模型试图学得一个通过各个属
性得线性组合来预测的函数,即 ;
其中 为参数,
是输入数据,待模型学得参数之后,模型就可以确定了。
回归(Regression)算法模型:回归是相对分类而言,也算是一种分类,但主要针对的是连续型
变量,而分类算法针对的是离散型变量
3.模型分类
一元线性回归:只用一个x来预测y,即用直线来拟合二维数据,形如 ;
多元线性回归:用多个x来预测y,即用一个平面来拟合多维数据,此时参数则有多个,形如
;
4.模型优化
损失函数:在拟合过程必然出现误差,但我们希望模型能最大程度地拟合所有数据,也就是使得误
差最小化,这里的误差我们取“残差”来衡量,即真实值和预测值之间的差值,用公式可表述为:
在机器学习中,最常见的损失函数使用残差平方和SSE(sum of squares for error),如果有进行多
批次训练,则要用均方误差MSE(mean of squares for error),用公式可以表示为:
最小二乘法:基于最小化残差和或者均方误差来求解模型的方法称为最小二乘法,在线性回归中,
此方法就是试图找到一条直线或者平面使得所有样本到该直线或者平面的欧式距离之和最小。我们
对线性回归模型的进行最小二乘“参数估计”,损失函数如下所示:
优化方法1----求导法
不难发现 Loss 函数是关于 参数的凸函数,当它关于每个
的导数都为零时,其达到最小值,
此时模型达到最优解,这里为了方便运算采用矩阵的形式进行操作,同时将X矩阵加一列1,这样
使得 与X矩阵便于进行乘法运算,因此则有
对 求导可得:
则可以得到模型的解为:
则对于某个测试样本的预测值为:
Ps:X矩阵中存放的是m个示例,每个示例按行放置,最后一列均为1,矩阵大小为m*(d+1),
向量为列向量,最后一个为偏置项,向量大小为(d+1)*1。
优化方法2--梯度下降法
对于梯度下降法,前面我们知道该损失函数是凸函数,那必然在区间范围内有最小值,继续采用矩
阵进行操作,则我们需要找到 最小时对应的
。而梯度下降的思想类似于下山,每次往下走
一步,但这一步是该点的负梯度方向,而且每次这一步多大也是有限制的,我们称它为学习率,即
的更新方式为:
·
其中 learning_rate 是我们需要严格控制的变量,既不能太大也不能太小,太大会是我们走过了谷
底,在谷底两边来回走;太小虽然能保证走到谷底,但会计算多次梯度,消耗资源多,同时耗时也
长,因此 learning_rate 的确定很关键。
5.算法流程
Ⅰ.读入数据并将数据按照(样本数*特征数)的格式进行存放,并将对应的标签按照(样本数*1)
的格式进行存放,并在训练集末尾加一列1;
Ⅱ.在训练集进行模型训练得到theta;
Ⅲ.对测试集进行预测反应模型性能。
二.岭回归(Rridge Regression)
当样本特征较多而样本数量较少时(实验时基本都是这种情况),简单的线性模型很容易进入过拟
合,我们考虑加入正则项,使用L2范数进行正则化,则有
当模型过拟合时, 的差异会非常大,通常是偏大,这时我们加入正则项可以限制一下权重不要
太大,均衡一些,下面用求导法给出其求解过程:
上式对w求导并令其为0:
解得:
三.拉索回归(Lasso Regression)
相对于岭回归,我们将其这个正则化项改为L1范数就是Lasso回归,其代价函数如下所示:
其求解过程这里不多加展示,因为L1范数是向量的绝对值之和,这里不好表示;
使用L1范数的好处:一是可以降低过拟合的风险,二是更加易于获得稀疏(sparse)的解,即求得的
w会有更少的非零分量。基于这一点,Lasso回归进行特征选择的时候,可以将特征选择和学习器
训练结合在一起,两者在同一个优化过程完成,这称为嵌入式选择。
(有关稀疏性的证明较为复杂这里不加展示,主要运用数学推导,求出的每一个w分量都是分段函
数的分布,并不连续,因而可以得出稀疏性的结论)
四.模型效果
原始数据分布如下:
模型拟合效果:
模型误差分布:
模型代码和数据集可见:
Machine_Learning/code/LR at main · breakthrougher/Machine_Learning (github.com)
----- 以上为本人学习机器学习这门课总结出的一些知识点和手敲的代码,有错误或者疑问可以评论区交流,欢迎指正!!!