Хоча AN6U5 дав дуже хорошу відповідь, я хотів додати кілька пунктів для подальшої довідки. Розглядаючи One Hot Encoding (OHE) та Encoding Label , ми повинні спробувати зрозуміти, яку модель ви намагаєтеся побудувати. А саме дві категорії моделі, яку ми будемо розглядати:
- Моделі, що базуються на деревах: Дерева прийняття рішення градієнтом та випадкові ліси.
- Моделі на основі дерев : лінійні, kNN або нейронні мережі.
Розглянемо, коли застосовувати OHE та коли застосовувати кодування міток під час створення моделей на основі дерева.
Ми застосовуємо OHE, коли:
- Коли значення, близькі один до одного в кодуванні міток, відповідають цільовим значенням, які не є близькими (нелінійні дані).
- Коли категорична ознака не є порядковою (собака, кішка, миша).
Ми застосовуємо кодування міток, коли:
- Категоричною ознакою є порядковий (молодший кг, старший кг, початкова школа, середня школа тощо).
- Коли ми можемо придумати кодер мітки, який присвоює близькі мітки подібним категоріям : Це призводить до меншої кількості проливів у трасі, що означає скорочення часу виконання.
- Коли кількість категоричних особливостей у наборі даних величезна: Одночасне кодування категоріальної особливості з величезною кількістю значень може призвести до (1) високого споживання пам’яті та (2) випадку, коли не категоричні характеристики рідко використовуються моделлю. Ви можете розібратися з першим випадком, якщо використовуєте малі матриці. Другий випадок може статися, якщо ви будуєте дерево, використовуючи лише підмножину функцій. Наприклад, якщо у вас є 9 числових ознак і 1 категорія зі 100 унікальними значеннями, і ви запечатали цю категоричну функцію однозначно, ви отримаєте 109 ознак. Якщо дерево побудовано лише з підмножиною функцій, початкові 9 числових ознак рідко будуть використовуватися. У цьому випадку ви можете збільшити розмір контролю цього параметра. У xgboost це називається colsample_bytree, у sklearn's Random Forest max_features.
Якщо ви хочете продовжувати роботу з OHE, як @ AN6U5 запропонував, ви можете комбінувати PCA з OHE.
Розглянемо, коли застосовувати OHE та кодування міток під час побудови недеревних моделей.
Щоб застосувати кодування міток, залежність між функцією та ціллю повинна бути лінійною, щоб ефективно використовувати кодування міток.
Аналогічно, якщо залежність нелінійна, ви можете використовувати OHE для того ж.
Примітка. Деякі пояснення посилаються на тему " Як перемогти у змаганнях з наукових даних" від Coursera.