1

Я работаю с набором данных, который имеет комбинацию числовых функций и функций, которые являются категориями, но закодированы целыми числами. Например, если бы это была лошадь раса,Должен ли я оставлять функции с числовыми категориями или создавать фиктивные переменные?

horse_id race_date track_no  race_number barrier_number won_race 
1   2016-10-01 100    1    4    1 
2   2016-10-01 100    1    3    0 
1   2016-10-15 200    3    5    0 
... 

Так что, если я создаю модель вероятности лошади выиграть гонку, и используя такие функции, как race_number (может быть несколько гонок на ту же дорожку в тот же день, чтобы это повлияло на условия дорожки) и barrier_number (лошадь может предпочесть быть внутри внутренних барьеров или внешних и т. д.), следует ли оставить эти функции такими, какие есть, или создать фиктивные переменные, указывающие 1 (наличие) и 0 (отсутствие) переменной на каждой строке?

Это тривиальный пример, но эти столбцы могут иметь большое количество возможных значений, а создание фиктивных переменных значительно увеличит размерность функций. Это компромисс, который нужно сделать, или просто оставить один столбец?

Редактировать: Кроме того, если я оставлю столбцы такими, какие есть, и скрыл его в виде dtype в пандах, это хорошая практика? Будут ли существующие библиотеки ML, такие как Scikit-learn, обрабатывать правильно?

+0

Число в порядке, но их класс должен быть фактором. –

+1

Не плохой вопрос, но поскольку вы не спрашиваете, как технически это сделать в R или python, лучше спросить на http://stats.stackexchange.com. –

+0

@ChirayuChamoli спасибо. будет ли фактор типа или категории в пандах работать хорошо, когда я применяю их к алгоритмам ML? – sfactor

ответ

0

Описанные функции (race_number, barrier_number) Я считаю, что это прекрасно, что оставить как есть. Однако, в приведенном выше примере, я бы кодировал функцию track_no.

Это связано с тем, что между отдельными значениями track_no нет никакой связи.

Я повернет выше пример:

horse_id race_date track_100  track_200  race_number barrier_number won_race 
1   2016-10-01 1    0    1    4    1 
2   2016-10-01 1    0    1    3    0 
1   2016-10-15 0    1    3    5    0 

Я надеюсь, что помогает!