我是机器学习的新手,正在尝试理解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
也将被类似地拆分。