sklearn kfold 在 Python 中返回错误的索引



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

这是代码:

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

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

我能做什么?

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

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]

相关内容

  • 没有找到相关文章

最新更新