Как закодировать одну или несколько категориальных переменных в один объект

#pandas #machine-learning #scikit-learn #categorical-data

#pandas #машинное обучение #scikit-learn #категориальные-данные

Вопрос:

Я пытаюсь обучить модель машинного обучения некоторым имеющимся у меня категориальным данным, однако я не уверен, как их кодировать. Если у меня есть таблица, подобная следующей, каков наилучший способ кодирования «var_3»?

 | var_1 | var_2 | var_3                                             |
|-------|-------|---------------------------------------------------|
| 32    | 0     | 'attribute_1'                                     |
| 15    | 1     | 'attribute_1,attribute_2,attribute_3,attribute_4' |
 

Хорошая ли идея кодировать каждый «атрибут» по отдельности в целое число? Например, следующее:

 | var_1 | var_2 | var_3 |
|-------|-------|-------|
| 32    | 0     | 1     |
| 15    | 1     | 1234  |
 

Или лучше кодировать каждую возможную комбинацию атрибутов в целое число?

Ответ №1:

Вы можете попробовать закодировать как двоичный столбец для каждого атрибута в var_3. So:

    var1  var_2                            var_3   attr_1  attr_2  attr_3  attr_4
0    32      0                          'attr_1'       1       0       0       0
1    15      1  'attr_1, attr_2, attr_3, attr_4'       1       1       1       1
 

И удалить var_3 перед подачей фрейма данных в модель.