【模型】一篇入门之-岭回归模型

🏰 365平台拒绝提款怎么办 📅 2025-07-22 11:04:37 👤 admin 👁️ 8488 👑 494
【模型】一篇入门之-岭回归模型

本站原创文章,转载请说明来自《老饼讲解-机器学习》www.bbbdata.com

岭回归(Ridge Regression)模型是一种带有正则项的线性模型,它是线性回归的一种改进

本文讲解岭回归模型,包括模型表达式、损失函数、代码实现例子、以及岭迹图的绘画与使用等

通过本文可以快速了解什么是岭回归模型,如何使用岭回归模型,以及怎么看岭迹图

01. 什么是岭回归

本节介绍岭回归模型的思想、表达式以及损失函数,快速了解岭回归模型是什么

岭回归模型

岭回归模型(Ridge Regression)是线性回归的一种改进,主要是线性回归求得的系数可能会过大因此,岭回归在线性回归的基础上,在线性回归模型的MSE损失函数中加入二范正则项,以惩罚过大的系数 岭回归的模型表达式与损失函数 岭回归的模型表达式为: 岭回归的损失函数如下: 其中,:样本个数 :系数个数 :y的预测值 :y的真实值 :惩罚系数,用于调节系数W的惩罚力度当 越大时,惩罚力度越大, 各个系数求出来的绝对值就会越小✍️饼语:可见,岭回归与线性回归是类似的,仅是损失函数中加入了二范正则项 岭回归的模型求解公式 岭回归的模型求解公式如下: 它与线性回归的求解公式相似,只是部分需要在对角元素上加上

关于岭回归的阈值

可以注意到,岭回归模型是不带阈值的 这是因为岭回归的目的对各个w进行惩罚,而阈值b是不需要惩罚的虽然岭回归默认不带阈值,但对于线性模型,有阈值与无阈值是可以相互转化的 岭回归拓展阈值b的方法 将岭回归模型拓展成带阈值模型的操作方法如下:可以先将数据中心点移到原点,以无阈值形式算出W,再通过W算出b.具体如下:(1) 先将数据作中心化转换: 此时, 都是以(0,0)为中心的数据 (2) 用训练岭回归模型, 得到 (3) 训练后再计算阈值b: 即可得到

02. 如何使用岭回归模型

本节展示一个岭回归模型的使用例子以及代码实现

岭回归使用例子

现有数据以下 备注:以上数据的实际关系为: 下面我们建立岭模型,用变量 x1,x2 预测y 用sklearn包求解岭回归模型 用python的sklearn实现岭回归模型,只需调用linear_model.Ridge()函数 岭回归模型Ridge共两个关键参数: 👉alpha : alpha是系数w的惩罚系数,alpha设得越大,模型的参数就越小 👉fit_intercept:岭回归默认是没有阈值的,fit_intercept设为True时,则模型为带阈值模型 sklearn实现岭回归模型代码如下:from sklearn import linear_model

import numpy as np

#输入数据

x = np.array([[0, 2], [1, 1], [2,3],[3,2],[4,5],[5,2]])

y = np.array([8,7,15,14,25,18])

#调用sklearn的线性模型包,训练数据

ridge = linear_model.Ridge(alpha=1,fit_intercept=True) # 模型实例化

ridge.fit(x,y) # 模型训练

#输出模型系数和阈值

print("当前alpha:"+str(ridge.alpha))

print("模型参数:"+str(ridge.coef_))

print("模型阈值:"+str(ridge.intercept_))运行结果 代码运行结果如下: 将权重与阈值代入岭回归模型数学表达式,可得 可以看到,它与真实关系 有所偏差,这主要是我们对权重进行了惩罚

03. 岭迹图

本节讲解岭回归的岭迹图,包括如何画岭迹图,怎么看岭迹图

岭迹图是什么

什么是岭迹图岭迹图指的不同的w随着alpha的取值的变化图,示例如下: 其中横轴是alpha的值,纵轴是各个权重参数的值从图中可以看到,变量1与变量2的权重参数w1与w2随着alpha增大而减小绘制岭迹图的代码示例如下:import numpy as np

import matplotlib.pyplot as plt

from sklearn import linear_model

#输入数据

x = np.array([[0, 2], [1, 1], [2,3],[3,2],[4,5],[5,2]])

y = np.array([8,7,15,14,25,18])

#

alpha_list = np.linspace(0,5,20) # 设置要尝试的alpha

w_arr = np.empty((len(alpha_list),x.shape[1])) # 用于记录不同alpha下的权重参数

for i in range(len(alpha_list)): # 逐个alpha训练模型

ridge = linear_model.Ridge(alpha=alpha_list[i],fit_intercept=True) # 模型实例化

ridge.fit(x,y) # 模型训练

w_arr[i] = ridge.coef_ # 记录当前的权重参数

for i in range(w_arr.shape[1]):

plt.scatter(alpha_list, w_arr[:,i], facecolors='none' # 画出每个参数的变化

,edgecolors=np.random.rand(1,1,4),marker='o',label='w'+str(i+1))

plt.legend() # 显示图例

岭迹图怎么看

岭迹图的用途主要有两个: 👉1. 用于确定alpha的取值 👉2.分析变量 如何根据岭迹图确定alpha 根据岭迹图确定alpha,一般紧扣如下两点思想: (1) w不要过大 :w过大往往不合理,所以所取的alpha要令整体w都不要偏大 (2) alpha尽量小:在保障w不太大的前提下,尽量取更小的alpha 因为alpha过大会使损失函数过于倾向正则项,而忽视了误差项 往往是如下图所示,在喇叭口前取alpha的值: 如何根据岭迹图分析变量 可以借助岭迹图对变量进行分析,但并没有统一、固定的方法, 往往都是较为灵活地进行变量分析,下面仅举例作为思想参考 👉情况一、alpha为0时很w大,在alpha稍微变大时,w迅速趋0 上图中的这种情况,一般可以认为这个变量没有什么用 因为alpha为0时w很大,所以alpha为0时这个变量没什么用 alpha不为0时,w已经趋0,所以变量没有贡献,即这时变量也没什么用👉情况二、w随着alpha的增大,在正负之间反复跳动 w在正负之间反复跳动,说明变量对y一会是正贡献,一会是负贡献 即变量是非常不稳定的,只要alpha稍微变动一下,正负贡献就相反了而一个好的、稳定的变量,它对y的贡献应该也是稳定的 岭迹图综合例子讲解以上述例子中的岭迹图为例,我们综合性地看岭迹图 如果单从本案例的岭迹图来看,alpha设为0就可以了,因为系数在alpha=0时本身就不太大同时也可以看到两个变量都不会因为alpha的改变而大幅度变动,说明两个变量都比较稳定

好了,以上就是岭回归模型的相关内容了~

End

皇家推荐

使用AI免费在线编辑图片中的文字 – Bylo.ai
365平台拒绝提款怎么办

使用AI免费在线编辑图片中的文字 – Bylo.ai

📅 07-19 👁️ 4450
TOP 15 警犬品种
365平台拒绝提款怎么办

TOP 15 警犬品种

📅 07-14 👁️ 4934
锆熹名字含义:
365bet哪个国家的

锆熹名字含义:

📅 07-06 👁️ 1131
买肉时,要分清“冷鲜肉”和“生鲜肉”,区别挺大,学会别再乱买
鲁班算量软件官网,鲁班算量软件取消免费了吗
365bet哪个国家的

鲁班算量软件官网,鲁班算量软件取消免费了吗

📅 07-18 👁️ 1492
怎么知道微信好友在不在线
bt365最新网址

怎么知道微信好友在不在线

📅 07-01 👁️ 8439