Многие алгоритмы обучения либо изучают один вес для каждой функции, либо используют расстояния между выборками. Первое относится к линейным моделям, таким как логистическая регрессия, которые легко объяснить.
Предположим, у вас есть набор данных, содержащий только одну категориальную характеристику «национальность» со значениями «Великобритания», «Французский» и «США». Предположим, без потери общности, что они закодированы как 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, где все x являются логическими. В этом пространстве такая линейная функция может выражать любую сумму / дизъюнкцию возможностей (например, «Великобритания или США», что может быть предиктором для говорящего по-английски).
Точно так же любой учащийся, основанный на стандартных показателях расстояния (например, k-ближайших соседей) между выборками, запутается без однократного кодирования. При наивном кодировании и евклидовом расстоянии расстояние между французским и американским языками равно 1. Расстояние между США и Великобританией равно 2. Но при однократном кодировании попарные расстояния между [1, 0, 0], [0, 1 , 0] и [0, 0, 1] все равны √2.
Это верно не для всех алгоритмов обучения; деревья решений и производные модели, такие как случайные леса, если достаточно глубокие, могут обрабатывать категориальные переменные без однократного кодирования.