sklearn kfold在python

时间:2017-10-08 16:16:59

标签: python scikit-learn

我在python中的sklearn包中使用kfold函数,在df(数据框)上使用不连续的行索引。

这是代码:

kFold = KFold(n_splits=10, shuffle=True, random_state=None)
for train_index, test_index in kFold.split(dfNARemove):...

我得到了一些在我的df中不存在的train_index或test_index。

我该怎么办?

1 个答案:

答案 0 :(得分:12)

kFold迭代器为您提供DataFrame的训练对象和验证对象的位置索引,而不是它们的非连续索引。您可以使用.iloc pandas方法访问您的火车和验证对象:

kFold = KFold(n_splits=10, shuffle=True, random_state=None)
for train_index, test_index in kFold.split(dfNARemove):
    train_data = dfNARemove.iloc[train_index]
    test_data = dfNARemove.iloc[test_index]

如果您想知道每个折叠上用于train_index和test_index的非连续索引,您可以执行以下操作:

non_continuous_train_index = dfNARemove.index[train_index]
non_continuous_test_index = dfNARemove.index[test_index]