sklearn cross_val_score如何使用kfold?
How does sklearn cross_val_score use kfold?
我是机器学习的新手,正在尝试了解 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 折,但是 cross_val_score
如何获得所有折?
你需要调用Kf.split(dataset)
来真正拆分数据。
澄清一下,KFold
是一个 class 而不是函数。
kf = KFold(n_splits=2)
创建一个 KFold 对象。
print kf
只会打印出 class 对象。
并且当您调用cross_val_score(model, X_train, Y_train, cv=kf)
时,您将对象kf
传递给cross_val_score函数,其中kf.split(X_train)
将被调用以将X_train
分成两份. Y_train
也将进行类似拆分。
试试这个
kf = KFold(n_splits=2)
generator = kf.split(dataset)
for train, test in generator:
print "*" * 20
print "Training Data:"
for i in train:
print dataset[i]
print "Test Data:"
for j in test:
print dataset[j]
kf.split(数据集) returns 生成器。遍历生成器会给你所有的折叠
我是机器学习的新手,正在尝试了解 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 折,但是 cross_val_score
如何获得所有折?
你需要调用Kf.split(dataset)
来真正拆分数据。
澄清一下,KFold
是一个 class 而不是函数。
kf = KFold(n_splits=2)
创建一个 KFold 对象。
print kf
只会打印出 class 对象。
并且当您调用cross_val_score(model, X_train, Y_train, cv=kf)
时,您将对象kf
传递给cross_val_score函数,其中kf.split(X_train)
将被调用以将X_train
分成两份. Y_train
也将进行类似拆分。
试试这个
kf = KFold(n_splits=2)
generator = kf.split(dataset)
for train, test in generator:
print "*" * 20
print "Training Data:"
for i in train:
print dataset[i]
print "Test Data:"
for j in test:
print dataset[j]
kf.split(数据集) returns 生成器。遍历生成器会给你所有的折叠