【问题标题】:Last Stratified K-Fold Performance Distinct最后分层的 K 折性能不同
【发布时间】:2017-10-02 00:53:11
【问题描述】:

我将我的训练集划分为分层的 k-folds,如下所示:

n_folds = 5
skf = list(StratifiedKFold(y, n_folds, random_state=SEED))

for k, (train, test) in enumerate(skf):
      X_train = X[train]
      y_train = y[train]
      X_val = X[test]
      y_val = y[test]

      clf.fit(X_train, y_train)
      preds = clf.predict_proba(X_val)

前 4 折的分类准确率符合预期。 最后一折的准确性明显较差。

我尝试改变 SEED 和 n_folds 的值,在所有情况下,最后一折总是最差的(5 折,大约 3%)。为什么会这样?

谢谢。

【问题讨论】:

  • 可能会降低你的学习率。

标签: python machine-learning scikit-learn cross-validation


【解决方案1】:

事实证明,StratifiedKFold 默认情况下不会对数据进行洗牌。因此,我需要将 shuffle 参数设置为 True:

n_folds = 10
skf = list(StratifiedKFold(y, n_folds, shuffle=True, random_state=SEED)) 

【讨论】:

    猜你喜欢
    • 2017-12-09
    • 2019-07-23
    • 2015-09-23
    • 2015-12-13
    • 2020-03-19
    • 2011-07-24
    • 2013-05-03
    • 2021-01-17
    • 2017-01-11
    相关资源
    最近更新 更多