Нужно ли мне обрабатывать ловушку фиктивной переменной вручную в регрессии или sklearn сделает это?

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


person Krushna Borkar    schedule 05.06.2018    source источник


Ответы (3)


Я предполагаю, что вы хотите удалить один столбец также для небинарных категориальных признаков, чтобы избежать мультиколлинеарности, которая может вызвать проблемы для линейных моделей. Это так же просто, как предоставить аргумент drop_first=True для pd.get_dummies(). Кажется, что sklearn.preprocessing.OneHotEncoder не имеет простого интерфейса для этого, и в любом случае его использование сложно, так как категориальные функции должны быть заранее закодированы в int.

person Mischa Lisovyi    schedule 06.06.2018

Вам нужно вручную обрабатывать ловушку фиктивной переменной в регрессии. Нам нужно удалить один столбец вручную.

person Shivam Kejriwal    schedule 17.06.2020

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

person Shaz    schedule 05.06.2018