首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MachineLearning cross_val_score vs cross_val_predict

MachineLearning cross_val_score vs cross_val_predict
EN

Stack Overflow用户
提问于 2021-02-03 20:02:56
回答 1查看 73关注 0票数 1

在构建通用评估工具时,我遇到了以下问题,其中cross_val_score.mean()给出的结果与cross_val_predict略有不同。

为了计算测试分数,我有下面的代码,它计算每个折叠的分数,然后计算所有的平均值。

代码语言:javascript
复制
testing_score = cross_val_score(clas_model, algo_features, algo_featurest, cv=folds).mean()

对于计算tp,fp,tn,fn,我有下面的代码,它计算所有折叠的这些度量(我想是和)。

代码语言:javascript
复制
test_clas_predictions = cross_val_predict(clas_model, algo_features, algo_featurest, cv=folds)
test_cm = confusion_matrix(algo_featurest, test_clas_predictions)
test_tp = test_cm[1][1]
test_fp = test_cm[0][1]
test_tn = test_cm[0][0]
test_fn = test_cm[1][0]

该守则的结果是:

代码语言:javascript
复制
                         algo      test  test_tp  test_fp  test_tn  test_fn
5                  GaussianNB  0.719762       25       13      190       71
4          LogisticRegression  0.716429       24       13      190       72
2      DecisionTreeClassifier  0.702381       38       33      170       58
0  GradientBoostingClassifier  0.682619       37       36      167       59
3        KNeighborsClassifier  0.679048       36       36      167       60
1      RandomForestClassifier  0.675952       40       43      160       56

因此,选择第一行cross_val_score.mean()给出了0.719762 (测试),通过计算25+190/25+13+190+71=0.719063545150.((tp+tn)/(tp+tn+fp+fn))是轻薄不同的。

我有机会阅读quora中的一篇文章:“在cross_val_predict()中,元素分组与cross_val_score()略有不同,这意味着当您使用这些函数计算相同的度量时,可以得到不同的结果。”

有什么特别的原因吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-03 21:09:31

cross_val_predict的文档中也提到了这一点。

将这些预测传递到评估度量中的

可能不是衡量泛化性能的有效方法。结果可能与cross_validatecross_val_score不同,除非所有测试集都具有相同的大小,并且对样本进行度量分解。

看起来,在你的例子中,你的度量是精确的,它会对样本进行分解。但是有可能(实际上很可能,因为总尺寸是不可高度可除的299),你的测试褶皱不一样大小,这可以解释两者之间非常小(相对)的差异。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66034846

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档