本文展示一个使用sklearn实现岭回归模型的Demo代码
通过本文可以掌握在实际应用中如何调用sklearn来实现岭回归模型
本节展示如何用sklearn实现岭回归模型的求解
问题
现有数据以下
需要我们建立岭模型,用变量 x1,x2 预测y
✍️备注
以上数据的实际关系为:
建完模可以回头看看建模的结果与这个是否一致
用sklearn包求解岭回归模型
用python的sklearn实现岭回归模型
只需调用linear_model.Ridge()函数
代码如下
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_))
运行结果
将其中的alpha分别设置为0、1、2后,
得到结果分别如下:
当前alpha:0
模型参数:[2. 3.]
模型阈值:2.0
---------------------------------------------
当前alpha:1
模型参数:[1.97256098 2.72865854]
模型阈值:2.7469512195121943
---------------------------------------------
当前alpha:2
模型参数:[1.93298969 2.51030928]
模型阈值:3.391752577319588
从结果中可以看到,在alpha=0时,岭回归模型就相当于线性回归,
而随着惩罚系数alpha的增大,模型的权重逐步减小
因此,在线性回归模型的系数过大时,就可以使用岭回归来惩罚系数,
从而得到一个系数相对较小的线性模型
End