Нейрокомпьютинг и его применения в экономике и бизнесе

          

Кодирование категориальных переменных


В принципе, категориальные переменные также можно закодировать описанным выше способом, пронумеровав их произвольным образом. Однако, такое навязывание несуществующей упорядоченности только затруднит решение задачи. Оптимальное кодирование не должно искажать структуры соотношений между классами. Если классы не упорядоченны, такова же должна быть и схема кодирования.

Наиболее естественной выглядит и чаще всего используется на практике двоичное кодирование типа

Кодирование категориальных переменных
, когда имена
Кодирование категориальных переменных
категорий кодируются значениями
Кодирование категориальных переменных
бинарных нейронов, причем первая категория кодируется как
Кодирование категориальных переменных
, вторая, соответственно -
Кодирование категориальных переменных
и т.д. вплоть до
Кодирование категориальных переменных
-ной:
Кодирование категориальных переменных
. (Можно использовать биполярную кодировку, в которой нули заменяются на
Кодирование категориальных переменных
). Легко убедиться, что в такой симметричной кодировке расстояния между всеми векторами-категориями равны.

Такое кодирование, однако, неоптимально в случае, когда классы представлены существенно различающимся числом примеров. В этом случае, функция распределения значений переменной крайне неоднородна, что существенно снижает информативность этой переменной. Тогда имеет смысл использовать более компактный, но симметричный код

Кодирование категориальных переменных
, когда имена
Кодирование категориальных переменных
классов кодируются
Кодирование категориальных переменных
-битным двоичным кодом. Причем, в новой кодировке активность кодирующих нейронов должна быть равномерна: иметь приблизительно одинаковое среднее по примерам значение активации. Это гарантирует одинаковую значимость весов, соответствующих различным нейронам.

В качестве примера рассмотрим ситуацию, когда один из четырех классов (например, класс

Кодирование категориальных переменных
) некой категориальной переменной представлен гораздо большим числом примеров, чем остальные:
Кодирование категориальных переменных
. Простое кодирование
Кодирование категориальных переменных
привело бы к тому, что первый нейрон активировался бы гораздо чаще остальных. Соответственно, веса оставшихся нейронов имели бы меньше возможностей для обучения. Этой ситуации можно избежать, закодировав четыре класса двумя бинарными нейронами следующим образом:
Кодирование категориальных переменных
, обеспечивающим равномерную "загрузку" кодирующих нейронов.



Содержание раздела