gpt4 book ai didi

python - 用于回归的 Scikit-learn 交叉验证评分

转载 作者:IT老高 更新时间:2023-10-28 20:25:46 29 4
gpt4 key购买 nike

如何使用 cross_val_score 进行回归?默认评分似乎是准确度,这对于回归来说意义不大。假设我想使用均方误差,是否可以在 cross_val_score 中指定?

尝试了以下两种但不起作用:

scores = cross_validation.cross_val_score(svr, diabetes.data, diabetes.target, cv=5, scoring='mean_squared_error') 

scores = cross_validation.cross_val_score(svr, diabetes.data, diabetes.target, cv=5, scoring=metrics.mean_squared_error)

第一个生成负数列表,而均方误差应始终为非负数。第二个提示说:

mean_squared_error() takes exactly 2 arguments (3 given)

最佳答案

我没有评论的声誉,但我想为您和/或路人提供此链接,讨论 scikit learn 中 MSE 的负面输出 - https://github.com/scikit-learn/scikit-learn/issues/2439

此外(为了使这成为一个真正的答案)您的第一个选项是正确的,因为 MSE 不仅是您想要用来比较模型的指标,而且 R^2 不能根据(我认为)交叉类型来计算-val 您正在使用。

如果您选择 MSE 作为记分器,它会输出一个错误列表,然后您可以取其平均值,如下所示:

# Doing linear regression with leave one out cross val

from sklearn import cross_validation, linear_model
import numpy as np

# Including this to remind you that it is necessary to use numpy arrays rather
# than lists otherwise you will get an error
X_digits = np.array(x)
Y_digits = np.array(y)

loo = cross_validation.LeaveOneOut(len(Y_digits))

regr = linear_model.LinearRegression()

scores = cross_validation.cross_val_score(regr, X_digits, Y_digits, scoring='mean_squared_error', cv=loo,)

# This will print the mean of the list of errors that were output and
# provide your metric for evaluation
print scores.mean()

关于python - 用于回归的 Scikit-learn 交叉验证评分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24132237/

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