Niech zbiór możliwych kategorii ma rozmiar K. Każdej kategorii przypisuje się unikalny indeks i ∈ {0, …, K−1}. Wartość kategoryczna jest następnie reprezentowana jako wektor v ∈ {0,1}^K, w którym v[i] = 1, a v[j] = 0 dla j ≠ i. W praktyce uzyskuje się to przez wybór i-tego wiersza macierzy jednostkowej I_K. W bibliotekach takich jak scikit-learn realizuje to OneHotEncoder, w pandas — get_dummies, a w PyTorch/TensorFlow — funkcje one_hot. Dla K bardzo dużych (np. słowników w NLP) one-hot często nie jest materializowany jawnie — operacja mnożenia macierzy wag W przez wektor one-hot redukuje się do indeksowania (embedding lookup), co jest podstawową optymalizacją w warstwach embedding.
Eliminuje fałszywą relację porządku i nierównych odległości, jaką wprowadza zakodowanie kategorii liczbami całkowitymi (np. „czerwony=0, zielony=1, niebieski=2" sugerowałoby, że niebieski jest dwa razy bardziej oddalony od czerwonego niż zielony). Pozwala modelom liniowym i sieciom neuronowym poprawnie traktować kategorie nominalne.
Dla słowników rzędu 10⁵–10⁶ (NLP) gęsta materializacja one-hot jest niepraktyczna pamięciowo i numerycznie.
Wszystkie wektory są równie odległe — model nie ma żadnej informacji a priori o podobieństwie kategorii.
Suma kolumn one-hot jest stale równa 1, co prowadzi do współliniowości z wyrazem wolnym (intercept) w regresji.
Kategoria występująca tylko w zbiorze testowym powoduje błąd lub cichy wektor zerowy, jeśli encoder nie był na nią uczony.
Złożoność czasowa: O(K) per sample. Złożoność przestrzenna: O(K) per sample (dense), O(1) (sparse / index).
Liczba unikalnych kategorii do zakodowania. Wpływa bezpośrednio na wymiarowość wektora wynikowego i koszt pamięciowy.
Strategia dla wartości spoza zbioru treningowego: ignore (wektor zerowy), error (wyjątek), infrequent_if_exist (mapowanie do specjalnej kategorii).
Czy usunąć jedną kolumnę dla uniknięcia współliniowości w modelach liniowych (dummy encoding).
Czy zwracać scipy.sparse zamiast gęstej macierzy — istotne przy dużym K.
Wektor wynikowy ma dokładnie jedną aktywną pozycję; idealny kandydat do reprezentacji rzadkiej.
Kodowanie każdej próbki jest niezależne i trywialnie zrównoleglalne.
Operacja jest trywialna obliczeniowo (indeksowanie / wpisanie 1 do wektora zer) i nie zyskuje na specjalizowanym hardware.