python - 用sklearn的岭回归制作L曲线

标签 python machine-learning scikit-learn statistics linear-regression

可视化ridge regression的解决方案的常用方法是 L curve它绘制了正则化参数的不同选择的误差平方和与岭罚分的关系。这可以用 sklearn 来做吗?

最佳答案

这是一个纯粹的 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()

其中 Xy 分别是您的预测变量和目标。

关于python - 用sklearn的岭回归制作L曲线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58432340/

相关文章:

python - 如何在交互模式下使用Elmo词嵌入与原始预训练模型(5.5B)

Python - 线性回归 TypeError : invalid type promotion

python-3.x - 根据 .hdf5 中的权重和 .json 中的选项在 keras 中实例化 ELMo 模型

python - 正则表达式仅捕获 0 到 85

python - 如何计算图中定义的 N 个允许移动中路径权重的总和,但目标节点未使用 Python 固定

python 3 : Comparing multiple dictionaries in a list/Deleting repeated entries

machine-learning - 使用tensorflow和python进行值预测

machine-learning - Scikit-learn 中的 R-Squared 和terpreted_variance_score 有什么区别?

python - 强制 sklearn cross val 分数使用分层 k 折叠?

python - "Error: '::hypot ' has not been declared"在 cmath 中尝试嵌入 Python