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