scikit-learn/sklearn学习|岭回归解读

【1】引言

前序学习进程中,对用scikit-learn表达线性回归进行了初步解读。

线性回归能够将因变量 y y y表达成由自变量 x x x、线性系数矩阵 w w w和截距 b b b组成的线性函数式:
y = ∑ i = 1 n w i ⋅ x i + b = w T x + b y=\sum_{i=1}^{n}w_{i}\cdot x_{i}+b=w^T{x}+b y=i=1∑nwi⋅xi+b=wTx+b实际上很多时候数据之间不一定是理想化的线性关系,所以需要对线性关系式进行修正,这个时候就可以考虑岭回归。

【2】岭回归的原理

岭回归是修正后的线性回归,所以描述岭回归,必须先会议线性回归。

用scikit-learn表达线性回归中,我们在代码中使用了一个参数:均方误差。

【2.1】线性回归均方误差

对于线性回归,均方误差的计算式子为:
L ( w , b ) = ∑ i = 1 n ( y i − y i ^ ) 2 = ∑ i = 1 n ( y i − ( w T x i + b ) ) 2 L(w,b)=\sum_{i=1}^{n}(y_{i}-\hat{y_{i}})^2=\sum_{i=1}^{n}(y_{i}-(w^Tx_{i}+b))^2 L(w,b)=i=1∑n(yi−yi^)2=i=1∑n(yi−(wTxi+b))2在这里, y y y是第i个样本的真实值, y ^ \hat{y} y^是第i个样本的预测值。

线性回归的均方误差将真实值和预测值作差后求平方和即可。

【2.2】岭回归均方误差

岭回归相对于线性回归,均方误差的计算式子增加了对参数权重平方和的计算,称之为L2正则化惩罚项:
L ( w , b ) = ∑ i = 1 n ( y i − y i ^ ) 2 + α ∑ j = 1 m w j 2 = ∑ i = 1 n ( y i − ( w T x i + b ) ) 2 + α ∑ j = 1 m w j 2 L(w,b)=\sum_{i=1}^{n}(y_{i}-\hat{y_{i}})^2+\alpha\sum_{j=1}^{m}w_{j}^{2}=\sum_{i=1}^{n}(y_{i}-(w^Tx_{i}+b))^2+\alpha\sum_{j=1}^{m}w_{j}^{2} L(w,b)=i=1∑n(yi−yi^)2+αj=1∑mwj2=i=1∑n(yi−(wTxi+b))2+αj=1∑mwj2在这里, y y y是第i个样本的真实值, y ^ \hat{y} y^是第i个样本的预测值。

新增加的L2正则化惩罚项 α ∑ j = 1 m w j 2 \alpha\sum_{j=1}^{m}w_{j}^{2} α∑j=1mwj2包括两部分:

第一部分 α > 0 \alpha>0 α>0代表正则化强度,可以控制对第二项惩罚的力度;

第二部分 ∑ j = 1 m w j 2 \sum_{j=1}^{m}w_{j}^{2} ∑j=1mwj2是所有线性系数的平方和。

当 α \alpha α越大,惩罚项整体就会越大,这个时候往往需要将 w j w_{j} wj调小,也就是通过调整 w j → 0 w_{j}\rightarrow 0 wj→0来避免过度拟合;

当 α = 0 \alpha=0 α=0,此时惩罚项不起作用,岭回归退化为线性回归。

【2.3】岭回归的意义

岭回归通过添加惩罚项解决了线性回归至少两个问题:

多重共线性,当变量之间高度相关时,在线性回归计算中可能获得极大的 w j w_{j} wj,通过惩罚项可以将这些参数下降到较小的范围,使得模型对数据波动的敏感性降低,从而获得更加稳健的效果;

过拟合,当变量过多或者噪声过大时,线性回归可能过度拟合数据,惩罚项通过将线性系数 w j w_{j} wj调小,让模型更倾向于关注整体趋势而非噪音。

【3】总结

岭回归和线性回归都是线性关系式的推演,但岭回归通过L2正则化惩罚项让线性系数 w j w_{j} wj保持在合理且较小的范围,让回归模型更稳健、更准确。

相关推荐
月疯2 小时前
OPENCV摄像头读取视频
人工智能·opencv·音视频
极客天成ScaleFlash2 小时前
极客天成让统一存储从云原生‘进化’到 AI 原生: 不是版本升级,而是基因重组
人工智能·云原生
王哥儿聊AI2 小时前
Lynx:新一代个性化视频生成模型,单图即可生成视频,重新定义身份一致性与视觉质量
人工智能·算法·安全·机器学习·音视频·软件工程
hsjkdhs3 小时前
万字详解C++之构造函数析构函数
开发语言·c++
_pinnacle_3 小时前
打开神经网络的黑箱(三) 卷积神经网络(CNN)的模型逻辑
人工智能·神经网络·cnn·黑箱·卷积网络
Ada's3 小时前
深度学习在自动驾驶上应用(二)
人工智能·深度学习·自动驾驶
张较瘦_3 小时前
[论文阅读] 人工智能 + 软件工程 | 从“人工扒日志”到“AI自动诊断”:LogCoT框架的3大核心创新
论文阅读·人工智能·软件工程
lisw053 小时前
连接蓝牙时“无媒体信号”怎么办?
人工智能·机器学习·微服务
Lin_Aries_04213 小时前
容器化简单的 Java 应用程序
java·linux·运维·开发语言·docker·容器·rpc
扫地的小何尚3 小时前
深度解析 CUDA-QX 0.4 加速 QEC 与求解器库
人工智能·语言模型·llm·gpu·量子计算·nvidia·cuda