sklearn 的 KFold 函数,带有 shuffle 和 random_state

Med*_*ata 3 python machine-learning scikit-learn k-fold

我试图了解如何使用交叉验证功能sklearn.model_selection.KFold。如果我定义(就像在本教程中一样)

from sklearn.model_selection import KFold

kf = KFold(n_splits=5, shuffle=False, random_state=100)
Run Code Online (Sandbox Code Playgroud)

我明白了

ValueError: Setting a random_state has no effect since shuffle is False.
You should leave random_state to its default (None), or set shuffle=True. 
Run Code Online (Sandbox Code Playgroud)

这个错误是什么意思以及为什么需要设置random_state=Noneor shuffle=True

Tay*_*lrl 5

在这种情况下,洗牌意味着数据在分成测试/训练之前首先被随机洗牌。这random_state将允许数据打乱的方式是可重复的。如果没有打开洗牌,则random_state没有任何意义。