您的位置:首页 > 其它

机器学习之线性回归理解

2019-04-10 16:47 85 查看

什么是线性回归?
线性回归是在线性模型的基础上一种线性方法。
线性方程为Y = wX^T+b
线性回归又名最小二乘法,是回归问题最简单也是最经典算法,线性回归可以通过求解均方误差构建损失函数,来寻找参数w和b,使得均方误差也就是损失函数最小,从而求得回归参数w和截距b。
线性回归算法没有参数,这是一个优点但也因此可能无法控制模型的复杂程度,从而导致训练时间过长。
1.线性方程
一个标签y和一个特征数据x呈线性关系,则x和y的线性方程为:
y = wx+b
则又由线性方程可知,将多个回归系数w和特征值X构建成相对应的向量,可得线性回归方程:
Y = wX^T+b
则假设我们有m个样本n个特征
则ym=wxm^T +b
最小二乘法
1.再假设wz是最合适得回归系数
2.把所有已知样本带入方程组
3.求假设值和真实值的最小均方误差
H = ((y1-y1z))^2 + (y2-y2z)^2 +(ym-ymz)^2/m
再将y1z、y2z、…、ymz带入到H中

4.求均方误差H的最小值
对带入后的H导数为0 从而得到极值点
解得wz
H’ =2 [ [W’*X1^TX1 - X1^Ty1] + [W’*X2^TX2- X2^Ty2] + … + [W’*Xm^TXm - Xm^Tym] ]/m
令导数H’ = 0得到

[W’*X1^TX1 - X1^Ty1] + [W’X2^TX2 - X2^Ty2] + … + [W’Xm^TXm - Xm^Tym] = 0
===>
W’(X1^TX1 + X2^TX2 + … + Xm^TXm) - (X1^Ty1 + X2^Ty2 + … + Xm^Tym) = 0
===>
令X为矩阵 (X1,X2,…,Xm) 令Y为向量(y1,y2,…,ym)
W’X^TX - X^TY = 0斜体样式
===>
W’X^TX = X^TY
注意:当XTX这个矩阵可逆的时候,两边同时乘以其逆矩阵,|XTX| != 0满足的时候即满秩
===>
这时当X^TX这个矩阵可逆的时候,m<n
但是我们要思考如果m>n时,X^TX这个矩阵不可逆时,那我们是不是就无法求得最适回归系数?
这时我们选择使用逻辑斯蒂函数来对这个矩阵不可逆的请况进行处理,具体可以看我的另一篇文章最大似然估计与最小二乘法https://blog.csdn.net/qq_39037383/article/details/89111844

然后我们将线性回归实现到python代码中


这时我们引入了两个sklearn库中的两种评价尺度方法,来帮助我们合理的评估我们训练好的线性回归模型。
1.均方误差(mean-ssquard-error)

2.平均绝对值误差(mean_absolute_error)

在这里我们可以发现,无论时均方误差还是平均绝对误差都过高。模型可能出现了欠拟合或者过拟合的现象,那我们这是需要思考线性回归如何优化才能达到我们的期望呢?
L2范数正则化和L1范数正则化
首先我们要了解什么是正则化,正则化也是一种通过将数据缩放,从而实现我们模型参数的优化的一种方式。而L2正则化和L1正则化又是在线性回归模型中损失函数的惩罚项,那可能有人会有疑问什么是惩罚项呢?惩罚项的目的其实就是改造带有正则化的损失函数,从而改变模型的权重起到防止模型在训练过程中过拟合或者欠拟合,从而导致泛化能力的下降。
L2正则化(岭回归)
添加惩罚项,重新构造损失函数,L2正则化又叫岭回归。岭回归可以解决m<n,岭回归作为一种缩减算法可以赋予特征合适的权重,缩减算法可以看作是对一个模型增加偏差的同时减少方差。岭回归函数中重要的参数为alpha,代表惩罚系数

L1正则化(lasso回归)
lasso回归与岭回归一样是处理样本量远大于特征量问题,而不同的地方在于lasso回归在构建损失函数时引入的惩罚项为拉格朗日乘子,通过改变特征权重而使模型正常,与岭回归一样都是在构造损失函数的过程中使X^TX矩阵可逆。与岭回归不同,lasso回归比较擅长处理稀疏高维矩阵。

下图是用lasso回归和岭回归重新构造后的损失函数


线性回归一般比较适用于处理数据集大,高维度数据
线性回归训练模型的目的是什么?
得到合适的回归系数,构建最佳模型,从而得到最佳模型。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: