Использование train_test_split над списком фреймов данных - PullRequest
0 голосов
/ 15 ноября 2018

У меня есть 12 фреймов характеристических данных, названных X[0], X[1] ... до X[11] и соответствующих 12 фреймам ответных данных от y[0] до y[11].Мне нужно разделить их на обучающие и тестировать фреймы данных с помощью функции train_test_split.Поскольку это обрабатывает пустые списки (X_train[], X_test[], y_train[] and y_test[]), простое назначение:

b = 0    
while b < 12:
    X_train[b], X_test[b], y_train[b], y_test[b] = train_test_split(X[b], y[b], random_state=0)
    b = b + 1

выдает эту ошибку:

IndexError: индекс назначения списка вне диапазона

Я не знаю, как использовать функцию append() здесь.Может кто-нибудь помочь мне?

Ответы [ 3 ]

0 голосов
/ 15 ноября 2018

Я сделал это следующим образом:

while b < 12:
    X_t, X_te, y_t, y_te = train_test_split(X[b], y[b], random_state=0)
    X_train.append(X_t)
    X_test.append(X_te)
    y_train.append(y_t)
    y_test.append(y_te)

    b = b + 1
0 голосов
/ 16 ноября 2018

Нет необходимости использовать цикл for. Просто напишите

X_train, X_test, y_train, y_test = train_test_split(X, y, 
                            test_size=0.2, random_state=2)
0 голосов
/ 15 ноября 2018

Я думаю, вам нужно:

X_train = []
X_test = []
y_train = []
y_test = []



for i in range(0,12):
    a, b, c, d = train_test_split(X[i], y[i], test_size=0.2, random_state=0)

    X_train.append(a)
    X_test.append(b)
    y_train.append(c)
    y_test.append(d)
...