Что произойдёт, если использовать LabelEncoder с линейным алгоритмом?



▶️ Начнём с того, что такое LabelEncoder.

Это один из самых простых способов закодировать категории. Допустим, у вас есть три категории: «Лондон», «Париж» и «Москва». Тогда вы просто заменяете эти строковые значения на 0, 1 и 2.



В документации scikit-learn написано, что LabelEncoder кодирует целевые метки значениями из диапазона от 0 до n_classes-1 (где n_classes — количество классов). То есть алгоритм предлагается использовать в основном для кодирования целевых меток. Технически его, конечно, можно применять для кодирования нецелевых признаков. Но тут могут возникнуть проблемы.



✍️ Сама суть LabelEncoder способствует созданию избыточных зависимостей в данных. Например, после преобразования получилось, что по некоторому признаку значение объекта Volvo равно 6, а BMW — 1. Можно интерпретировать это как то, что Volvo в 6 раз в чём-то превосходит BMW. Однако в исходных данных таких зависимостей не было.



При работе с категориальными переменными для линейных моделей можно, например, использовать One-Hot Encoding.



#машинное_обучение