stringtranslate.com

Один-горячий

В цифровых схемах и машинном обучении one -hot — это группа битов , среди которых допустимыми комбинациями значений являются только те, у которых есть один старший (1) бит и все остальные младшие (0). [1] Аналогичная реализация, в которой все биты равны «1», кроме одного «0», иногда называется one-cold . [2] В статистике фиктивные переменные представляют собой аналогичный метод представления категориальных данных .

Приложения

Цифровая схема

Горячее кодирование часто используется для указания состояния конечного автомата . При использовании двоичного кода для определения состояния необходим декодер . Однако автомату с одним горячим состоянием не нужен декодер, поскольку автомат находится в n -м состоянии тогда и только тогда, когда n- й бит имеет высокий уровень.

Кольцевой счетчик с 15 последовательно упорядоченными состояниями является примером конечного автомата. В «горячей» реализации будет 15 триггеров , соединенных последовательно, причем выход Q каждого триггера подключен к входу D следующего, а вход D первого триггера подключен к выходу Q 15-го триггера. . Первый триггер в цепочке представляет первое состояние, второй — второе состояние и так далее до 15-го триггера, который представляет последнее состояние. После сброса конечного автомата все триггеры сбрасываются в «0», кроме первого в цепочке, который установлен в «1». Следующий фронт тактовой частоты, достигающий триггеров, перемещает один «горячий» бит на второй триггер. Таким образом, «горячий» бит перемещается до 15-го состояния, после чего конечный автомат возвращается в первое состояние.

Декодер адреса преобразует двоичное представление в горячее. Приоритетный кодер преобразует горячее представление в двоичное.

Сравнение с другими методами кодирования

Преимущества
Недостатки

Обработка естественного языка

В обработке естественного языка горячий вектор — это матрица (вектор) размером 1 ×  N , используемая для различения каждого слова в словаре от любого другого слова в словаре. [5] Вектор состоит из 0 во всех ячейках, за исключением одной 1 в ячейке, которая используется уникально для идентификации слова. Горячее кодирование гарантирует, что машинное обучение не предполагает, что более высокие числа являются более важными. Например, значение «8» больше, чем значение «1», но это не делает «8» более важным, чем «1». То же самое справедливо и для слов: значение «смех» не более важно, чем «смех».

Машинное обучение и статистика

В машинном обучении горячее кодирование — это часто используемый метод работы с категориальными данными. Поскольку во многих моделях машинного обучения входные переменные должны быть числовыми, категориальные переменные необходимо преобразовать на этапе предварительной обработки. [6]

Категориальные данные могут быть как номинальными, так и порядковыми. [7] Порядковые данные имеют ранжированный порядок значений и поэтому могут быть преобразованы в числовые данные посредством порядкового кодирования. [8] Примером порядковых данных могут быть рейтинги теста в диапазоне от A до F, которые можно ранжировать с помощью чисел от 6 до 1. Поскольку между отдельными значениями номинальных переменных нет количественной связи, использование порядкового кодирования потенциально может создать в данных вымышленную порядковую связь. [9] Поэтому к номинальным переменным часто применяется горячее кодирование, чтобы улучшить производительность алгоритма.

Для каждого уникального значения в исходном категориальном столбце в этом методе создается новый столбец. Эти фиктивные переменные затем заполняются нулями и единицами (1 означает ИСТИНА, 0 означает ЛОЖЬ). [10]

Поскольку этот процесс создает множество новых переменных, он склонен к созданию проблемы «большого p» (слишком много предикторов), если в исходном столбце много уникальных значений. Еще одним недостатком горячего кодирования является то, что оно вызывает мультиколлинеарность между отдельными переменными, что потенциально снижает точность модели. [11]

Кроме того, если категориальная переменная является выходной переменной, вам может потребоваться преобразовать значения обратно в категориальную форму, чтобы представить их в вашем приложении. [12]

На практике это преобразование часто выполняется непосредственно функцией, которая принимает категориальные данные в качестве входных данных и выводит соответствующие фиктивные переменные. Примером может служить функция dummyVars библиотеки Caret в R. [13]

Смотрите также

Рекомендации

  1. ^ Харрис, Дэвид и Харрис, Сара (07 августа 2012 г.). Цифровой дизайн и компьютерная архитектура (2-е изд.). Сан-Франциско, Калифорния: Морган Кауфманн. п. 129. ИСБН 978-0-12-394424-5.{{cite book}}: CS1 maint: несколько имен: список авторов ( ссылка )
  2. ^ Харраг, Фузи; Гелиани, Сельмене (2020). «Извлечение событий на основе глубокого изучения арабских текстов о пищевых опасностях». arXiv : 2008.05014 . {{cite journal}}: Требуется цитировать журнал |journal=( помощь )
  3. ^ Ксилинкс. «Руководство по проектированию HDL-синтеза для FPGA». раздел 3.13: «Кодирование конечных автоматов». Приложение A: «Ускорение макросов FPGA с помощью One-Hot подхода». 1995.
  4. ^ Коэн, Бен (2002). Реальное проектирование и проверка микросхем с использованием Verilog и VHDL . Полуостров Палос-Вердес, Калифорния, США: VhdlCohen Publishing. п. 48. ИСБН 0-9705394-2-8.
  5. ^ Арно, Эмильен; Эльбатта, Махмуд; Гиньон, Максим; Декен, Жиль (август 2021 г.). Прогнозирование медицинских специальностей на основе НЛП при поступлении в больницу с использованием записей сортировки. 2021 г. 9-я Международная конференция IEEE по информатике здравоохранения (ICHI). Виктория, Британская Колумбия . стр. 548–553. дои : 10.1109/ICHI52183.2021.00103 . Проверено 22 мая 2022 г.
  6. ^ Браунли, Джейсон. (2017). «Почему горячее кодирование данных в машинном обучении?». Мастерство машинного обучения. https://machinelearningmastery.com/why-one-hot-encode-data-in-machine-learning/
  7. ^ Стивенс, СС (1946). «К теории шкал измерения». Science, New Series, 103.2684, стр. 677–680. http://www.jstor.org/stable/1671815.
  8. ^ Браунли, Джейсон. (2020). «Порядковое и горячее кодирование категориальных данных». Мастерство машинного обучения. https://machinelearningmastery.com/one-hot-encoding-for-categorical-data//
  9. ^ Браунли, Джейсон. (2020). «Порядковое и горячее кодирование категориальных данных». Мастерство машинного обучения. https://machinelearningmastery.com/one-hot-encoding-for-categorical-data//
  10. ^ Динеш, Ядав. (2019). «Категорическое кодирование с использованием Label-Encoding и One-Hot-Encoder». На пути к науке о данных. https://towardsdatascience.com/categorical-encoding-using-label-encoding-and-one-hot-encoder-911ef77fb5bd
  11. ^ Андре, Й. (2020). «Прекратите горячее кодирование категориальных переменных». На пути к науке о данных. https://towardsdatascience.com/stop-one-hot-encoding-your-categorical-variables-bbb0fba89809
  12. ^ Браунли, Джейсон. (2017). «Почему горячее кодирование данных в машинном обучении?». Мастерство машинного обучения. https://machinelearningmastery.com/why-one-hot-encode-data-in-machine-learning/
  13. ^ Кун, Макс. «пустышкаВарс». Документация. https://www.rdocumentation.org/packages/caret/versions/6.0-86/topics/dummyVars