Факторизовать столбец до или после разделения обучения / теста? - PullRequest
1 голос
/ 11 июля 2020

Я разрабатываю нейронную сеть для задачи классификации. У меня есть набор данных со столбцом текстового идентификатора, и я конвертирую идентификатор строки в идентификатор int с помощью функции pandas .factorize ().

Мой столбец текстового идентификатора, который называется 'customer_id', выглядит следующим образом:

      customer_id   
0       Z59FTQD 
1       HMP29SK 
2       VPP29SK
3       VPP29SK 
.. .. .. .. .. 
1500    0JP2FAB
15001   ZJP29AK

После того, как я использую:

dataset['customer_num_id'] = pd.factorize(dataset['customer_id'])[0] + 1

для создания нового столбца с именем «customer_num_id», чтобы представить идентификаторы строк в виде значений int для передачи в мою модель нейронной сети, мой новый столбец выглядит вот так:

      customer_id  customer_num_id  
0       Z59FTQD      1
1       HMP29SK      2
2       VPP29SK      3
3       VPP29SK      3
.. .. .. .. .. 
1500    0JP2FAB      1500
1501    ZJP29AK      1501

Я хотел бы обучить свою модель примерно на 80% данных и протестировать ее на оставшихся 20%.

Мой вопрос: следует ли факторизовать набор данных до или после того, как я разделил его на тренировочные и тестовые наборы?

1 Ответ

0 голосов
/ 11 июля 2020

Я бы закодировал / разложил его на множители, прежде чем вы разделите его на наборы данных для тестирования и обучения. Таким образом, вы обеспечите последовательную факторизацию в обоих разделениях.

Также я бы предложил изучить sklearn.preprocessing.LabelEncoder

...