cross_val_score和cross_val_predict之间的区别

发布于 2021-01-29 17:10:23

我想,以评估使用交叉验证和感到困惑,这两个功能scikitlearn回归模型构建cross_val_scorecross_val_predict我应该使用。一种选择是:

cvs = DecisionTreeRegressor(max_depth = depth)
scores = cross_val_score(cvs, predictors, target, cv=cvfolds, scoring='r2')
print("R2-Score: %0.2f (+/- %0.2f)" % (scores.mean(), scores.std() * 2))

另一种,将cv-predictions与标准结合使用r2_score

cvp = DecisionTreeRegressor(max_depth = depth)
predictions = cross_val_predict(cvp, predictors, target, cv=cvfolds)
print ("CV R^2-Score: {}".format(r2_score(df[target], predictions_cv)))

我认为这两种方法都是有效的,并且给出相似的结果。但这只是k折小的情况。尽管10倍cv的r ^ 2大致相同,但在使用“
cross_vall_score”的第一个版本的情况下,对于较高的k值,r ^ 2越来越低。第二个版本在很大程度上不受折叠数变化的影响。

这种行为是可以预期的吗?我对SKLearn中的简历缺乏了解吗?

关注者
0
被浏览
148
1 个回答
知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看