# 前年学习记录的笔记,分享一下~
Linear Models for Regression
目录
一、使用线性回归模型前数据处理及注意
二、线性回归,针对线性数据,通过最小二乘法让损失函数(cost function)最小,求得方程系数,得到方程。
三、多元线性回归求解cost function:正规方程法和梯度下降法
四、标准线性回归的延伸:岭回归和Lasso回归
五、梯度下降法的优化。
六、线性回归中可能遇到的问题及解决办法
七、拓展:偏差与方差
一、使用线性回归模型前数据处理及注意
参考: 数据挖掘:模型选择——线性回归_AvenueCyy的博客-CSDN博客_数据挖掘线性回归模型
1、数据的无量纲化:梯度下降法求解时数据间数值大小的差异会影响求解速度,所以为了消除差异的同时保留分布,需对数据进行归一化,标准化。
2、处理分类数据:分类数据之间没有数值大小可言。是人主观赋予的意义,计算机无法识别,因此要对数据进行独热编码。
3、数据分布的转化:如数据的峰度和偏度不满足正态性,则会对结果照成误差。因此需要对数据进行正态性转换。右偏数据采用对数化,左偏数据采用指数化。或者采用Box-Cox变换。
4、缺失值处理:数据的缺失值需要填补。
二、线性回归,针对线性数据,通过最小二乘法让损失函数(cost function)最小,求得方程系数,得到方程。
参考: 数据挖掘线性回归 - 百度文库
机器学习的关键因素:
1、模式存在
2、但无法用数学方法确定下来
3、有数据可供学习
拟合:指已知某函数的若干函数离散值,通过调整该函数的若干系数,使得该函数与已知点集的差别最小。
线性回归函数:
损失函数(最小二乘):损失越小,h(x)越接近y(x),即拟合值越接近真实值。
回归系数(权重)不可知,需要不断调整,使损失函数尽可能少。
依据:梯度下降法
梯度:即函数的导数
此时损失函数寻找的是最小值,即梯度的负方向探寻回归系数,该算法称为梯度”下降“法
梯度下降算法-步骤
同理,求损失函数J的最小值:
应用到不止一个训练实例的情况:
批量梯度下降算法:每次更新系数参数都要考虑整个训练集。【线性模型较简单,训练时间优先级不高,推荐使用】
随机梯度下降算法:一次仅用一个样本来更新系数。
线性最小二乘问题的矩阵解法。
最小二乘的概率解释:最小二乘回归相当于寻找最大似然函数的参数值。
局部加权线性回归:
给每个训练样本赋予一个权重w,越靠近待预测点的训练样本,对预测结果的影响越大,训练样本离预测点越近,w趋于1;越远离待预测点的训练样本,对预测结果的影响越小,训练样本离预测点越远,w趋于0。
直观理解:局部加权线性回归在给定预测点时,对其附近的点进行训练得到局部线性模型,并用于预测。
优点:
相比线性回归,特征选择的重要性不那么大;每次预测都要重新学习和计算权值和参数,对数据的自适应能力更强。
缺点:
每次预测都要重新学习和计算权值和参数,计算量大。
三、多元线性回归求解cost function:正规方程法和梯度下降法
参考: 数据挖掘:模型选择——线性回归_AvenueCyy的博客-CSDN博客_数据挖掘线性回归模型
在梯度下降法迭代次数一定时,正规方程法和梯度下降法结果差不多。
优缺点比较:
梯度下降法 - 优点:当特征点很多时运行也很好。
缺点:需要选择学习速率;需要许多次迭代。
正规方程法 - 优点:不需要选择学习速率;不需要迭代。
缺点:需要计算(X^TX)^(-1)(n*n)矩阵;如果样本点很大将会计算很慢。
假设有n个变量,X的转置与X的乘积的维度为NN,其中N表示特征变量的数量,对大多数的计算应用来说,实现逆矩阵的代价,以矩阵维度的三次方增长,因此计算这个逆矩阵的代价,大概是N的三次方时间,所以如果特征变量的数量N很大的话,计算会很慢。即,
n < 10^4:正规方程法
n > 10^4:梯度下降法
(n大小参考自: 梯度下降法与正规方程法_符景名的博客-CSDN博客_正规方程和梯度下降)
正规方程法(最小二乘):
多元线性回归:
矩阵形式:
对矩阵求偏导:[ OS: RSS,数学名词,是数和的平方根]
由此得到参数的解,但其中的逆矩阵不一定存在解,即可能存在多重共线性(特征间线性相关程度很大),因此加入L1,L2正则化来进行控制。
梯度下降法:
判别函数:
cost function:,1/m即求均值。
梯度下降法:
得,
【详细了解可参考:梯度下降算法详解】
四、标准线性回归的延伸:岭回归和Lasso回归
参考: 数据挖掘:模型选择——线性回归_AvenueCyy的博客-CSDN博客_数据挖掘线性回归模型
用于解决线性回归出现的过拟合问题和通过正规方程求解过程中出现的X转置乘以X不可能逆两类问题。
正规方程矩阵解法(最小二乘):
1)岭回归:
原理:通过缩减系数来“理解”数据。
总结:
应用:
在原损失函数后加上L2正则化的最小二乘,此时损失函数为:
对参数求偏导求解得参数,
其中,
当存在高度相关关系的矩阵时,可以通过调大alpha,从而使矩阵行列式变大,从而使逆矩阵变小,以此控制参数向量的偏移。当alpha越大,模型越不容易收到共线性的影响。
注意:当alpha越大,会导致参数的估计的出现较大的偏移,无法正确拟合数据的真实面貌,原来参数的可解释性变差。
当alpha越小,则会出现原来的多重共线性现象,影响预测结果。
2)Lasso回归:
原理:拉格朗日乘数法。对于参数theta增加一个限定条件,能达到和岭回归一样的效果,
,当lambda足够小时,一些系数迫降到0,从而进行特征选择。
在原损失函数后加上L1正则化,来避免多重共线性:
对参数求偏导,假设矩阵的逆一定存在求解得,
通过增加alpha,我们可以为参数theta的计算增加一个负项,从而限制参数估计中theta的大小,从而防止由多重共线性引起的参数theta被估计过大导致模型失准的问题。即Lasso不是从根本上解决多重共线性的问题,而是限制多重共线性带来的影响。
Lasso回归求解参数时,又出现逆矩阵不存在的情况,所以,Lasso不能解决由于特征间高度相关带来的逆矩阵不存在的情况,而岭回归可以解决特征间的精确相关关系导致的最小二乘法无法使用的问题。
cost function:
ridge回归:
;
Lasso回归:
lambda为正则化参数,如果lambda选取过大,会把所有参数theta均最小化,造成欠拟合;如果lambda选取过小,会导致过拟合问题解决不当。因此lambda的选取是个技术活。
岭回归和Lasso回归特点及区别:
1、L1和L2都会压缩系数theta的大小,对标签值贡献少的特征,其系数也会很小,也更容易被压缩。不过,L2正则化只会将系数压缩到尽可能接近0,能有效地防止模型过拟合,解决非满秩下求逆困难的问题。而L1正则化最大的特点是稀疏矩阵,主导稀疏性,因此会将系数压缩到0,因此可以用L1正则化进行特征选择,将对标签值贡献值小少的特征剔除。
2、岭回归引入的是L2正则化;Lasso回归引入的是L1正则化。
3、Lasso回归能进行特征选择;岭回归不能进行特征选择。
4、从贝叶斯的角度看,Lasso(L1正则)等价于参数theta的先验概率分布满足拉普拉斯分布;而ridge(L2正则)等驾驭参数theta的先验概率分布满足高斯分布。
5、Lasso回归是1范式;ridge回归是2范式。
五、梯度下降法的优化。
参考: 机器学习总结(一):线性回归、岭回归、Lasso回归_扇扇来驰的博客-CSDN博客_lasso回归
六、线性回归中可能遇到的问题及解决办法
问题1:特征缩放
对特征数据进行归一化
优点:提升模型收敛速度;提升模型精度。
问题2:梯度下降法学习速率的选取
参考: 梯度下降学习速率的选择和存在的问题_UESTC_C2_403的博客-CSDN博客
如果学习速率选取过小,会导致迭代次数变多,收敛速度变慢;学习速率选取过大,有可能跳过最优解,最终导致根本无法收敛。
在计算时要同时更新,使用梯度下降法容易得到局部最优解,要尝试不同的学习速率,然后找到最好的那个。
1、采用固定的学习速率,会存在上面问题。
2、采用变换的学习速率,也就是当梯度大时,学习速率也大,当梯度小时,学习速率也小。学习速率采用与梯度正相关关系,存在一个比例系数,采用固定的这个比例系数。得到的结果是,
采用这个算法对上面的问题有一定的缓解作用,但有时解决也不是很好。
[OS:参考:梯度下降法中的参数学习速率如何选择_zrh_CSDN的博客-CSDN博客]
3、采用变换的学习速率还是会存在上述问题,所以后面很多算法采用比例系数也变化的方法。
4、设置0.1或0.1附近时效果一般不会太差。
问题3:过拟合
解决方法:1、丢弃一些对最终预测结果影响不大的特征,可采用PCA算法实现。
2、使用正则化技术,保留所有特征,减少特征前面的参数theta的大小,即修改cost function形式(Ridge Regression、Lasso Regression)
七、拓展:偏差与方差
参考:岭回归和Lasso回归_Joker_sir5的博客-CSDN博客_岭回归和lasso回归
模型误差 = 偏差(Bias) + 方差(Variance) + 数据本身的误差(无法避免)
偏差:导致偏差的原因有很多种。其中一个就是针对非线性问题采用线性方法求解,当模型欠拟合时,就会出现较大偏差。
方差:产生高方差的原因通常是由于模型过于复杂,即模型过拟合,会出现较大的方差。
通常情况下,我们降低了偏差相应地会使方差提高,降低方差就会相应地提高偏差。
还有一种对岭回归和Lasso回归折中的方法——弹性网络(Elastic net)