【问题标题】:How to know for sure whether cross_validate is using stratified K-fold?如何确定 cross_validate 是否使用分层 K 折?
【发布时间】:2021-03-08 18:55:34
【问题描述】:

我想确保cross_validate 使用的是分层简历。在documentation for cross_validate中,有这样写的

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

我的估计器是一个分类器,我的因变量是二元的。所以理论上也通过设置cv=None我应该得到一个分层的简历。

我如何确定这一点?如何检查cross_validate是否在这里:

rfc_score = cross_validate(rfc, desc_tfidf, labels, scoring=metrics)

真的在使用分层简历吗?

【问题讨论】:

    标签: python scikit-learn cross-validation


    【解决方案1】:

    cross-validatesource code可以看出,该方法运行的很first thing是:

    cv = check_cv(cv, y, classifier=is_classifier(estimator))
    

    check_cv,我们有:

    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)
    

    这正是文档所声称的。

    【讨论】:

      猜你喜欢
      • 2017-12-09
      • 2020-03-19
      • 2019-12-25
      • 1970-01-01
      • 2019-07-23
      • 2015-09-23
      • 2017-10-02
      • 2010-12-20
      相关资源
      最近更新 更多