Чому одне гаряче кодування покращує продуктивність машинного навчання?

Я помітив, що коли кодування One Hot використовується для певного набору даних (матриці) та використовується як навчальні дані для вивчення алгоритмів, це дає значно кращі результати щодо точності прогнозування порівняно з використанням самої оригінальної матриці як навчальних даних. Як відбувається це підвищення продуктивності?

видобуток

3 відповіді 3

Багато алгоритмів навчання або вивчають одну вагу на функцію, або використовують відстань між зразками. Перше стосується лінійних моделей, таких як логістична регресія, які легко пояснити.

Припустимо, у вас є набір даних, що має лише одну категоричну ознаку "національність" зі значеннями "Великобританія", "французька" та "США". Припустимо, без обмеження загальності, що вони кодуються як 0, 1 і 2. Тоді ви отримаєте вагу w для цієї функції в лінійному класифікаторі, який прийме якесь рішення на основі обмеження w × x + b> 0, або еквівалентно w × x

Щодо збільшення функцій за допомогою гарячого кодування, можна використовувати хешування функцій. Коли ви виконуєте хешування, ви можете вказати кількість сегментів набагато менше, ніж кількість нещодавно введених функцій.

Коли потрібно передбачити категорії, потрібно передбачити елементи набору. Не використання одноразового кодування схоже на те, щоб дозволити категоріям мати сусідні категорії (наприклад: якщо ви зробили регресію з цілими числами категорій), організованих певним чином і в певному порядку.

Тепер, що станеться, якщо ви призначите категорію 0 до 0, категорію 1 до 1 і категорію 2 до 2 без одноразового кодування, і що прогноз вашого алгоритму не впевнений, чи слід йому вибирати 0 або 2: чи повинен він передбачити 1, незважаючи на він вважає, що це 0 або 2?

Ви бачите, куди це йде. Те саме стосується ваших входів даних: якщо вони не повинні бути сусідами, то не показуйте їх своєму алгоритму як сусідів.