重复交叉验证

Cross Validation With Repetition

我对 ML 中使用的交叉验证有疑问 problems.If 我们对数据集应用 5 折交叉验证,例如 2 次,一次在星期一,一次在星期五,仅两次。周一特定折叠中存在的元素是否与周五同一折叠中存在的元素相同?

这是否解释了为什么这段代码:

from sklearn.datasets import load_iris
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import cross_val_score

iris=load_iris()

X=iris.data
y=iris.target
model=KNeighborsClassifier(n_neighbors=5)

cvs=cross_val_score(model, X, y, cv=5)
print(cvs)

每次执行总是给出相同的结果:

[0.96666667 1.         0.93333333 0.96666667 1.        ]

正如您在 documentation of cross_val_score, under the hood it performs a Stratified K-Folds 交叉验证中看到的那样,它不会打乱您的数据 (X, y)。因此,每次计算 cross_val_score 时,您都会在相同的折叠上训练相同的模型并在相同的折叠上进行验证,因此获得相同的结果。