Почему k-fold в sk учит не печатать значения массива - PullRequest
0 голосов
/ 03 июня 2019

Я слежу за документами для проверки склеарна в k-кратном порядке и написал этот код:

    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

Почему возникает эта ошибка? Извините, очевидно, я новичок.

1 Ответ

0 голосов
/ 03 июня 2019

Это как говорится в ошибке. Ваша ошибка исходит из вашего заявления на печать. Это потому, что индексирование, генерируемое 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']
...