#python #scikit-learn
#python #scikit-learn
Вопрос:
Я хочу создать 5 разных обучающих и тестовых наборов, зациклив train_test_split, например:
for i in range(0,5):
X_train, X_test, y_train, y_test = train_test_split(features, y, test_size=0.2, random_state=i)
и я хочу создать список, в котором хранятся 5 разных разделений, и из каждого разделения я могу запускать тестирование. Мой вопрос в том, как мне создать список для хранения X_train, X_test, y_train, y_test, а затем как вы вызываете каждое разделение из списка для запуска test?
Для теста я имею в виду запуск алгоритмов ml.
Ответ №1:
Мое предложение в качестве простого решения:
datas = []
for i in range(0,5):
a,b,c,d = train_test_split(features, y, test_size=0.2, random_state=i)
datas.append((a,b,c,d)
если вы хотите получить какие-либо наборы из данных, вы можете использовать этот код. Для примера вы хотите использовать индекс 3.
X_train, X_test, y_train, y_test = datas[3]
Ответ №2:
На вопрос OPs для создания 5 различных фреймов данных тестирования и обучения должно работать следующее:
from random import randint
trainX_list=[[]]
trainY_list=[[]]
testX_list=[[]]
testY_list=[[]]
for i in range (0,4):
X_train, X_test, y_train, y_test = train_test_split(features, y, test_size=0.2, random_state=randint(100, 1000))
trainX_list.append([X_train])
trainY_list.append([y_train])
testX_list.append([X_test])
testY_list.append([y_test])
Затем вы можете сделать pd.concat(trainX_list[i])
, чтобы просмотреть каждый фрейм данных!