Есть ли простая функция, позволяющая исключить тренировочный набор из набора данных в python? - PullRequest
1 голос
/ 22 января 2020

У меня есть вопрос по разбиению набора данных в python, если я получил подмножество набора данных в качестве обучения, есть ли какая-то функция в python, позволяющая исключить обучающий набор из набора данных и получить остальную часть набора данных напрямую? например:

testing set = numpy.exclude(dataset , trainingset)

, например, в наборе данных 10 строк, я взял 2,4,7,9 строки в качестве тренировочного набора, так как я могу легко получить оставшуюся часть набора данных. Подробно, это мой учебный набор данных

for i in range(0,5):
  Test_data = dataset[ratio*i:ratio*(i+1),:]
  Train_data = dataset[0:ratio*i&ratio*(i+1):-1,:] 

Мой код не работает, потому что нет & определения

1 Ответ

2 голосов
/ 22 января 2020

Если вы уже знаете индексы строк обучающего набора, вы можете просто исключить их, чтобы получить индексы оставшихся строк:

training_rows_ix = [2,4,7,9]
non_training_rows = [i for i in dataset.index if i not in training_rows_ix]
test_set = dataset.loc[non_training_rows]

Или использовать операции над множествами вместо понимания списка:

non_training_rows = sorted(set(dataset.index) - set(training_rows_ix))

Также для более надежного решения для разделения наборов данных в тест-поезд посмотрите в test-train-split

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