Разбейте набор данных на обучающие и тестируемые данные, полученные из двух разных источников данных, и убедитесь, что разделенный набор данных содержит записи из обоих источников. - PullRequest
0 голосов
/ 06 июня 2018

У меня есть набор данных, который я получил из двух разных источников.Я объединил их и сделал окончательный набор данных.Я применяю перекрестную проверку в k-кратном порядке и хочу убедиться, что для разделения на поезд-тест каждого фолда должны содержаться записи из обоих источников.Ниже приведен пример кода:

from sklearn.utils import shuffle
from sklearn.model_selection import KFold, StratifiedKFold
import numpy as np
datasource1=np.array([1,2,3,4,5,6,7,8,9,10,11])
datasource1_label=np.array([0,1,0,1,0,1,0,1,0,1,0])#0 for odd and 1 for even
datasource2=np.array([12,13,14,15])
datasource2_label=np.array([1,0,1,0])#0 for odd and 1 for even
merge_data=np.concatenate((datasource1,datasource2))
merge_label=np.concatenate((datasource1_label, datasource2_label))
x,y = shuffle(merge_data,merge_label)

kf = KFold(n_splits=3,shuffle=False)
kf.get_n_splits()
train_index_list=[];test_index_list=[]
for train_index, test_index in kf.split(x,y):
    x_train, x_test = x[train_index], x[test_index]
    y_train, y_test = y[train_index], y[test_index]
    train_index_list.append(train_index)
    test_index_list.append(test_index)

Я не упоминаю random_state для shuffle и kfold, потому что я пробовал разные эксперименты.Кабина n_split может быть любой, например, 5-кратной или 10-кратной.иногда может случиться так, что любой (или более чем один) фолд не содержит значения из второго набора данных или аналогичного для тестовых данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...