Унитарный код (в англоязычной литературе unitary code, one-hot) — двоичный код фиксированной длины, содержащий только одну 1 — прямой унитарный код или только один 0 — обратный (инверсный) унитарный код. Длина кода определяется количеством кодируемых объектов, то есть каждому объекту соответствует отдельный разряд кода, а значение кода положением 1 или 0 в кодовом слове.
В цифровых схемах и машинном обучении унитарный код представляет собой группу битов, среди которых допустимыми комбинациями значений являются только те, которые имеют один старший (1) бит, а все остальные младшие (0). Аналогичную реализацию, в которой все биты равны '1', кроме одного '0', иногда называют однозарядным.
В машинном обучении унитарное кодирование часто используется для работы с категориальными данными. Поскольку многие модели машинного обучения требуют, чтобы входные переменные были числовыми, категориальные переменные необходимо преобразовывать на этапе предварительной обработкиBrownlee, Jason. (2017). «Why One-Hot Encode Data in Machine Learning?». Machinelearningmastery. https://machinelearningmastery.com/why-one-hot-encode-data-in-machine-learning/ .
Категориальные данные могут быть или порядковымиStevens, S. S. (1946). «On the Theory of Scales of Measurement». Science, New Series, 103.2684, pp. 677—680. http://www.jstor.org/stable/1671815 .. Порядковые данные имеют ранжированный порядок значений и, следовательно, могут быть преобразованы в числовые данные посредством порядкового кодированияBrownlee, Jason. (2020). «Ordinal and One-Hot Encodings for Categorical Data». Machinelearningmastery. https://machinelearningmastery.com/one-hot-encoding-for-categorical-data// . Примером порядковых данных могут служить оценки теста от A до F, которые могут быть ранжированы с использованием чисел от 6 до 1. Поскольку между индивидуальными значениями номинальных переменных нет количественной связи, использование порядкового кодирования потенциально может создать фиктивную порядковую связь в данных.
Пример Кодирование цифр 0-5. Цифра Прямой код Инверсный код 0 000001 111110 1 000010 111101 2 000100 111011 3 001000 110111 4 010000 101111 5 100000 011111
Унитарное кодирование используется в схемотехнике, теории автоматов, нейронных сетях и других областях науки и техники, занимающихся передачей и преобразованием информации.
Для преобразования унитарного кода в двоичный и обратно используется шифратор и дешифратор.
Примечания
Категория:Теория кодирования