我是机器学习的新手,正在尝试理解cross_val_score使用Kfold将数据拆分为k个折叠。

kf = KFold(n_splits=2)
cv_results =cross_val_score(model, X_train, Y_train, cv=kf)

我知道kfold会分割数据,但我试着打印出来
dataset = [[1,1,1],[2,2,2],[3,3,3],[4,4,4],[5,5,5],[6,6,6],[7,7,7],[8,8,8]]
kf =  KFold(n_splits=2)
print kf

>>> KFold(n_splits=2, random_state=None, shuffle=False)

它没有显示k个折叠,但是如何得到所有的折叠?

最佳答案

您需要调用Kf.split(dataset)来实际分割数据Click here to see how KFold works
为了清楚起见,KFold是一个类,而不是函数。
kf = KFold(n_splits=2)创建Kfold的对象。
print kf将只打印出类对象。
当您调用cross_val_score(model, X_train, Y_train, cv=kf)时,您将对象kf传递给cross-val-score函数,其中kf.split(X_train)将被调用来将X_train分割成两个折叠Y_train也将被类似地拆分。

10-08 07:50