为什么sk中的k-fold学习不打印数组值

Why does k-fold in sk learn not print array values

我正在关注 sklearn k-fold 验证的文档,我写了这段代码:

    import numpy as np
from sklearn.model_selection import KFold

X = ["w", "x", "y", "a"]
print(X[0])
kf = KFold(n_splits=4)
for train, test in kf.split(X):
    print(X[(test)])

在最后一行输出错误:

TypeError: only integer scalar arrays can be converted to a scalar index

为什么会出现这个错误?对不起,显然我是初学者。

正如错误所说。您的错误来自您的打印声明。这是因为 KFold.split 生成的索引与 python 列表不兼容。试试这个,

import numpy as np
from sklearn.model_selection import KFold

X = np.array(["w", "x", "y", "a"])
kf = KFold(n_splits=4)
for train, test in kf.split(X):
    print(train, test)
    print(X[test])

输出:

[1 2 3] [0]
['w']
[0 2 3] [1]
['x']
[0 1 3] [2]
['y']
[0 1 2] [3]
['a']