为了账号安全,请及时绑定邮箱和手机立即绑定

使用 sklearn 的岭回归制作 L 曲线

使用 sklearn 的岭回归制作 L 曲线

qq_花开花谢_0 2022-06-28 15:19:23
可视化岭回归解决方案的一种常用方法是绘制L 曲线,该曲线绘制平方误差之和与正则化参数的不同选择的岭惩罚的关系。这可以用sklearn吗?
查看完整描述

2 回答

?
30秒到达战场

TA贡献1828条经验 获得超6个赞

这是一个纯粹的sklearn答案:


import numpy as np

from sklearn.linear_model import Ridge


alphas = np.logspace(-10, 10, 1000)

solution_norm = []

residual_norm = []


for alpha in alphas: 

    lm = Ridge(alpha=alpha)

    lm.fit(X, y)

    solution_norm += [(lm.coef_**2).sum()]

    residual_norm += [((lm.predict(X) - y)**2).sum()]


plt.loglog(residual_norm, solution_norm, 'k-')

plt.show()

whereX和y分别是你的预测变量和目标。


查看完整回答
反对 回复 2022-06-28
?
慕码人2483693

TA贡献1860条经验 获得超9个赞

scikit-learn 中没有这样的内置功能,但是Yellowbrick库提供了这样的功能(使用pipor安装conda);将 LassoCV 示例从他们的文档改编到您的 RidgeCV 案例给出:


import numpy as np

from sklearn.linear_model import RidgeCV

from yellowbrick.regressor import AlphaSelection

from yellowbrick.datasets import load_concrete


# Load the regression dataset

X, y = load_concrete()


# Create a list of alphas to cross-validate against

alphas = np.logspace(-10, 1, 40)


# Instantiate the linear model and visualizer

model = RidgeCV(alphas=alphas)

visualizer = AlphaSelection(model)

visualizer.fit(X, y)

visualizer.show()

//img1.sycdn.imooc.com//62baaba1000122c904090272.jpg

查看完整回答
反对 回复 2022-06-28
  • 2 回答
  • 0 关注
  • 134 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信