重复交叉验证
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
时,您都会在相同的折叠上训练相同的模型并在相同的折叠上进行验证,因此获得相同的结果。
我对 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
时,您都会在相同的折叠上训练相同的模型并在相同的折叠上进行验证,因此获得相同的结果。