gpt4 book ai didi

python - scikit 中的规范化学习 linear_model

转载 作者:太空狗 更新时间:2023-10-29 22:25:50 25 4
gpt4 key购买 nike

如果在 sklearn.linear_model 中的任何线性模型中将归一化参数设置为 True,是否会在评分步骤中应用归一化?

例如:

from sklearn import linear_model
from sklearn.datasets import load_boston

a = 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.24192774524694727

l = linear_model.ElasticNet(normalize=True)
l.fit(a["data"][:400], a["target"][:400])
print l.score(a["data"][400:], a["target"][400:])
# -2.6177006348389167

在这种情况下,当我们设置 normalize=True 时,我们会看到预测能力下降,我无法判断这是否只是 score 的人工产物函数未应用规范化,或者规范化值导致 model 性能下降。

最佳答案

归一化确实适用于拟合数据和预测数据。您看到如此不同结果的原因是波士顿房价数据集中列的范围差异很大:

>>> 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 - scikit 中的规范化学习 linear_model,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33246316/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com