Разделение данных для Машиного обучение
У меня есть датафрэйм состоящий из 8640 строк и 11 столбцов. Первая строка состоит из 8 уникальных данных а второй столбец из 6 уникальных данных. Первый столбец [-7; 0] шаг 1, второй столбец [0; 10] шаг 2. И мне нужно разделить данные таким образом что бы для каждого элемента первого столбца, 2 элемента второго столбца в тестовый набор а 4 элемента второго столбца для тренировочного набора.
inputs_train, inputs_test, outputs_train, outputs_test = train_test_split(inputs, outputs, test_size = 0.33, random_state = 0)
Это не подходит поскольку мне не нужно рандомный деление. И я пробивал
train_pct_index = int(0.833 * len(inputs))
inputs_train, inputs_test = inputs[train_pct_index:], inputs[:train_pct_index]
outputs_train, outputs_test =outputs[train_pct_index:], outputs[:train_pct_index]
Но здесь оно разделять всю дату на две части.
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Если я правильно понял, просто делаете условие на числа во второй колонке.
Для Pandas DataFrame:
test_filter = inputs['col2'] < 4
inputs_test = inputs.loc[test_filter]
inputs_train = inputs.loc[~test_filter]
Для Numpy array:
condition = arr[:,1] < 4
inputs_test = inputs[condition]
inputs_train = inputs[~condition]
По доп. вопросу из комментария:
condition = np.isin(arr[:,1], (4, 6))