微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

scikit-学习线性回归K折交叉验证

如何解决scikit-学习线性回归K折交叉验证

我想对我的训练数据使用sklearn库进行线性回归和K折交叉验证,以获取最佳回归模型。然后,我计划使用在测试集上返回的平均误差最低的预测变量。

例如下面的代码给了我一个包含20个结果的数组,它们具有不同的负平均绝对误差,我很想找到能给我这个(最小)错误的预测变量,然后在我的测试集上使用该预测变量。 / p>

sklearn.model_selection.cross_val_score(LinearRegression(),trainx,trainy,scoring='neg_mean_absolute_error',cv=20)

解决方法

cross_val_score中没有诸如“给我这个(最小)错误的预测器”之类的东西,

中的所有估计器
sklearn.model_selection.cross_val_score(LinearRegression(),trainx,trainy,scoring='neg_mean_absolute_error',cv=20) 

一样。

您可能希望检查GridSearchCV的确会搜索不同组的超参数并返回最佳估计器:

from sklearn import datasets
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import GridSearchCV
X,y = datasets.make_regression()
lr_model = LinearRegression()
parameters = {'normalize':[True,False]}
clf = GridSearchCV(lr_model,parameters,refit=True,cv=5)
best_model = clf.fit(X,y)

请注意refit=True参数,以确保在整个数据集中重新拟合最佳模型并返回。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。