在Cross_val_score中,参数cv的使用方式有所不同



我正在尝试弄清楚如何进行k折交叉验证。我希望有人能告诉我我的两个印刷陈述之间的区别。他们给了我很大的数据,我认为它们会一样。

##train is my training data, 
##target is my target, my binary class.
dtc = DecisionTreeClassifier()
kf = KFold(n_splits=10)
print(cross_val_score(dtc, train, target, cv=kf, scoring='accuracy'))
print(cross_val_score(dtc, train, target, cv=10, scoring='accuracy'))

DecisionTreeClassifier源自 ClassifierMixin,如文档(重点矿山)所述:

计算交叉验证指标

cv参数是整数时,cross_val_score默认情况下使用KFoldStratifiedKFold策略,如果估算器源自ClassifierMixin

,则使用后者。

因此,当您通过cv=10时,您正在使用StratifiedKFold策略,而通过cv=kf,则使用常规KFold策略。

在分类中,分层通常试图确保每个测试折叠具有大致相等的类表示。有关更多信息,请参阅了解交叉验证的分层交叉验证。

相关内容

  • 没有找到相关文章

最新更新