【发布时间】:2015-02-07 10:40:51
【问题描述】:
使用 cross_validation.KFold(n, n_folds=folds) 后,我想访问索引以训练和测试单折,而不是遍历所有折。
那么让我们以示例代码为例:
from sklearn import cross_validation
X = np.array([[1, 2], [3, 4], [1, 2], [3, 4]])
y = np.array([1, 2, 3, 4])
kf = cross_validation.KFold(4, n_folds=2)
>>> print(kf)
sklearn.cross_validation.KFold(n=4, n_folds=2, shuffle=False,
random_state=None)
>>> for train_index, test_index in kf:
我想像这样访问 kf 中的第一个折叠(而不是 for 循环):
train_index, test_index in kf[0]
这应该只返回第一个折叠,但我得到了错误:“TypeError: 'KFold' object does not support indexing”
我想要的输出:
>>> train_index, test_index in kf[0]
>>> print("TRAIN:", train_index, "TEST:", test_index)
TRAIN: [2 3] TEST: [0 1]
链接:http://scikit-learn.org/stable/modules/generated/sklearn.cross_validation.KFold.html
问题
如何在不遍历整个 for 循环的情况下仅检索一次训练和测试的索引?
【问题讨论】:
标签: python scikit-learn cross-validation