Python 如何确定交叉验证是否使用分层K折叠?

Python 如何确定交叉验证是否使用分层K折叠?,python,scikit-learn,cross-validation,Python,Scikit Learn,Cross Validation,我想确保cross\u validate使用分层CV。书中写着 对于int/None输入,如果估计器是分类器且y为 使用二元或多类分层折叠。在所有其他情况下, 使用KFold 我的估计器是一个分类器,我的因变量是二进制的。因此,在理论上,通过设置cv=None我应该获得分层的cv 我怎么能确定呢?如何在此处检查交叉验证: rfc_score = cross_validate(rfc, desc_tfidf, labels, scoring=metrics) 是否真的在使用分层CV?从交叉验证中

我想确保
cross\u validate
使用分层CV。书中写着

对于int/None输入,如果估计器是分类器且y为 使用二元或多类分层折叠。在所有其他情况下, 使用KFold

我的估计器是一个分类器,我的因变量是二进制的。因此,在理论上,通过设置
cv=None
我应该获得分层的cv

我怎么能确定呢?如何在此处检查
交叉验证

rfc_score = cross_validate(rfc, desc_tfidf, labels, scoring=metrics)
是否真的在使用分层CV?

从交叉验证中,我们可以看到,该方法的实际运行情况是:

cv = check_cv(cv, y, classifier=is_classifier(estimator))
在这方面,我们有:

cv = 5 if cv is None else cv
if isinstance(cv, numbers.Integral):
    if (classifier and (y is not None) and
            (type_of_target(y) in ('binary', 'multiclass'))):
        return StratifiedKFold(cv)
    else:
        return KFold(cv)
这正是文档所声称的。

交叉验证
中,我们可以看到,该方法运行的最重要的功能是:

cv = check_cv(cv, y, classifier=is_classifier(estimator))
在这方面,我们有:

cv = 5 if cv is None else cv
if isinstance(cv, numbers.Integral):
    if (classifier and (y is not None) and
            (type_of_target(y) in ('binary', 'multiclass'))):
        return StratifiedKFold(cv)
    else:
        return KFold(cv)
这正是文档所声称的