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


127

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

Відповіді:


260

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

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

Зараз проблема полягає в тому, що вага w не може кодувати тристоронній вибір. Три можливі значення w × x - 0, w і 2 × w. Або всі ці троє призводять до одного і того ж рішення (вони всі <b або ≥b), або "Великобританія" і "Француз" призводять до одного і того ж рішення, або "Французький" і "США" дають одне і те ж рішення. Немає можливості для моделі дізнатися, що "Великобританія" та "США" повинні мати однакову марку, а "Французька" - непарна.

За допомогою гарячого кодування ви ефективно підіймете простір функцій до трьох функцій, кожен з яких отримає власну вагу, тому функція рішення тепер w [UK] x [UK] + w [FR] x [FR] + w [US] x [US] <b, де всі х є булевими. У цьому просторі така лінійна функція може виражати будь-яку суму / диз'юнкцію можливостей (наприклад, "Великобританія чи США", що може бути провісником для того, хто говорить англійською мовою).

Аналогічно, будь-який учень, що базується на стандартних показниках відстані (наприклад, k-найближчих сусідів) між зразками, заплутається без однокольорового кодування. При наївному кодуванні та евклідовій відстані відстань між французами та США дорівнює 1. Відстань між США та Великобританією 2. Але при однокольоровому кодуванні попарні відстані між [1, 0, 0], [0, 1 , 0] і [0, 0, 1] всі дорівнюють √2.

Це не стосується всіх алгоритмів навчання; дерева рішень та похідні моделі, такі як випадкові ліси, якщо досить глибокі, можуть обробляти категоричні змінні без однокольорового кодування.


4
Дякуємо за це Ларс, але коли ми робимо OneHotEncoding, який ефективно збільшує кількість функцій, нам не потрібно також збільшувати зразки, щоб переконатися, що вони не надто придатні.
Маной

@Manoj Порівняно з очевидним альтернативним поданням категоричних змінних, що кодують кожен рівень як окреме ціле число, я не думаю, що це має значення: вам потрібна достатня статистика.
Фред Фоо

7
Чи є література, на яку ви могли б вказати, щоб я міг прочитати далі про це? Дякую.
Dr.Knowitall

1
Чи є користь у використанні матриці менш повною мірою (що ви не зробили б при побудові звичайної статистичної моделі) при використанні методів машинного навчання, таких як підвищення?
Стів S

2
На мене це виглядає так, як статистик називав би "фіктивні змінні". Але, можливо, є певна економія місця для зберігання.
Солдальма

3

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


0

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

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

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.