python – sci-kit中的规范化学习linear_models

python – sci-kit中的规范化学习linear_models,第1张

概述如果在sklearn.linear_model中的任何线性模型中将normalization参数设置为True,那么在得分步骤中是否应用了规范化? 例如: from sklearn import linear_modelfrom sklearn.datasets import load_bostona = load_boston()l = linear_model.ElasticNet( 如果在sklearn.linear_model中的任何线性模型中将normalization参数设置为True,那么在得分步骤中是否应用了规范化?

例如:

from sklearn import linear_modelfrom sklearn.datasets import load_bostona = load_boston()l = linear_model.ElasticNet(normalize=False)l.fit(a["data"][:400],a["target"][:400])print l.score(a["data"][400:],a["target"][400:])# 0.24192774524694727l = linear_model.ElasticNet(normalize=True)l.fit(a["data"][:400],a["target"][400:])# -2.6177006348389167

在这种情况下,当我们设置normalize = True时,我们看到预测能力下降,我无法判断这是否仅仅是未应用规范化的分数函数的工件,或者归一化值是否导致模型性能下降.

解决方法 标准化确实适用于拟合数据和预测数据.您看到如此不同结果的原因是Boston House Price数据集中的列范围差异很大:
>>> from sklearn.datasets import load_boston>>> boston = load_boston()>>> boston.data.std(0)array([  8.58828355e+00,2.32993957e+01,6.85357058e+00,2.53742935e-01,1.15763115e-01,7.01922514e-01,2.81210326e+01,2.10362836e+00,8.69865112e+00,1.68370495e+02,2.16280519e+00,9.12046075e+01,7.13400164e+00])

这意味着ElasticNet中的正则化项对归一化与非归一化数据的影响非常不同,这就是结果不同的原因.您可以通过将正则化强度(Alpha)设置为非常小的数字来确认这一点,例如: 1E-8.在这种情况下,正则化的影响非常小,归一化不再影响预测结果.

总结

以上是内存溢出为你收集整理的python – sci-kit中的规范化学习linear_models全部内容,希望文章能够帮你解决python – sci-kit中的规范化学习linear_models所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1206514.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存