Narzedzia AI
Narzedzia AI · 4 min czytania · 27 grudnia 2025

AI: 3 sposoby na kodowanie kategorii w danych

Jak przygotować dane dla AI? 3 sposoby na kodowanie kategorii

Źródło: Link

Darmowy webinar — AI od zera

90 minut praktyki na żywo. Pokazuję krok po kroku, jak zacząć z AI bez kodowania.

Zapisz się →

Masz bazę klientów. Kolumna "Miasto": Warszawa, Kraków, Gdańsk. Albo "Wykształcenie": podstawowe, średnie, wyższe.

Problem? Algorytmy nie czytają słów. Liczą.

I tu zaczyna się zabawa — bo sposób, w jaki przekształcisz te kategorie, zadecyduje, czy Twój model zadziała, czy padnie.

Czemu AI ma problem ze słowami

Uczysz kogoś matematyki, ale zamiast cyfr dostajesz: "trochę", "sporo", "masa". Jak to dodać?

Modele ML mnożą, dodają, porównują. Słowo "Warszawa" dla nich to pusty dźwięk. Zero sensu.

Dlatego potrzebujemy kodowania — zamiany kategorii (płeć, miasto, kolor) na liczby. Ale nie byle jakie.

Bo jeśli zakodujemy miasta jako: Warszawa = 1, Kraków = 2, Gdańsk = 3, model pomyśli, że Gdańsk jest "3 razy większy" od Warszawy. Co brzmi absurdalnie.

Metoda 1: Label Encoding — proste numerowanie

Najprostsza metoda. Każdej kategorii dajesz kolejną liczbę.

Przykład: Kolumna "Rozmiar koszulki" z wartościami S, M, L, XL. Kodujesz: S = 1, M = 2, L = 3, XL = 4.

Kiedy to działa? Gdy kategorie mają naturalny porządek — są ordinalne. Wykształcenie: podstawowe < średnie < wyższe. Oceny: słabo < średnio < dobrze.

Tu relacja "większe od" ma sens. Model zrozumie hierarchię i użyje jej.

Kiedy to NIE zadziała

Kolumna "Kolor samochodu": czerwony, niebieski, zielony. Kodujesz: czerwony = 1, niebieski = 2, zielony = 3.

Model pomyśli: zielony (3) jest "bardziej" niż czerwony (1). Że niebieski to coś pomiędzy. Nonsens — kolory nie mają hierarchii.

Efekt? Model znajdzie fałszywe zależności. Będzie myślał, że czerwone auta są "mniejsze". Twoje prognozy pójdą w las.

Metoda 2: One-Hot Encoding — każda kategoria dostaje swoją kolumnę

Najbezpieczniejsza metoda dla kategorii bez porządku (nominalnych).

Jak działa? Zamiast jednej kolumny "Miasto" tworzysz trzy:

  • Miasto_Warszawa (1 jeśli Warszawa, 0 jeśli nie)
  • Miasto_Kraków (1 jeśli Kraków, 0 jeśli nie)
  • Miasto_Gdańsk (1 jeśli Gdańsk, 0 jeśli nie)

Klient z Warszawy: [1, 0, 0]. Z Krakowa: [0, 1, 0].

Teraz model nie widzi żadnej hierarchii. Warszawa nie jest "mniejsza" od Gdańska — to po prostu różne opcje.

Pułapka: eksplozja kolumn

Kolumna "Kod pocztowy" z 10 000 unikalnymi wartościami. One-Hot Encoding stworzy 10 000 nowych kolumn.

Tabela eksploduje. Obliczenia zwolnią do granic absurdu. Model utonie.

Zasada? One-Hot sprawdza się, gdy masz mało kategorii — powiedzmy do 10-20. Płeć, województwo, typ produktu? Okej. Kod pocztowy, ID użytkownika? Już nie.

Metoda 3: Target Encoding — kodowanie przez cel

Najbardziej zaawansowana. I najbardziej ryzykowna.

Zamiast losowych liczb, kodujesz kategorię na podstawie tego, co chcesz przewidzieć (target).

Przykład: Przewidujesz, czy klient kupi produkt (tak/nie). Kolumna "Miasto".

  • W Warszawie kupiło 60% klientów → Warszawa = 0.6
  • W Krakowie 45% → Kraków = 0.45
  • W Gdańsku 75% → Gdańsk = 0.75

Każde miasto ma teraz liczbę pokazującą "siłę kupowania". Model dostaje gotową podpowiedź.

Ryzyko: overfitting

Overfitting to sytuacja, gdy model "zakuwa na pamięć" dane treningowe, zamiast uczyć się ogólnych zasad.

Target Encoding daje modelowi zbyt łatwe życie. Widzi, że Gdańsk = 0.75, więc automatycznie: "Gdańsk = kupią". A co, jeśli Twoja próbka z Gdańska była przypadkowo pełna entuzjastów? Model nie zadziała na nowych danych.

Zabezpieczenie? Cross-validation — dzielisz dane na części i kodujesz każdą osobno. Albo dodajesz smoothing — wygładzanie, które łagodzi ekstremalne wartości.

To techniki dla osób z lekkim doświadczeniem. Dopiero zaczynasz? Trzymaj się One-Hot Encoding.

Która metoda dla Ciebie?

Zależy od typu danych:

  • Kategorie z porządkiem (oceny, rozmiary, poziomy) → Label Encoding
  • Kategorie bez porządku, mało wartości (płeć, województwo, typ) → One-Hot Encoding
  • Kategorie bez porządku, dużo wartości (kody pocztowe, marki) → Target Encoding (ostrożnie!)

Nie ma jednej złotej reguły. Czasem trzeba przetestować kilka metod i sprawdzić, która daje lepsze wyniki.

Jedno jest pewne: jeśli zignorujesz kodowanie i wrzucisz surowe słowa do modelu, dostaniesz błąd. Albo — co gorsze — model się nauczy kompletnie nie tego, co chciałeś.

Praktyczny przykład w Pythonie

Nie musisz kodować ręcznie. Biblioteka scikit-learn (najpopularniejsze narzędzie do ML w Pythonie) robi to za Ciebie.

Label Encoding:

from sklearn.preprocessing import LabelEncoder
Le = LabelEncoder()
Df['Rozmiar_zakodowany'] = le.fit_transform(df['Rozmiar'])

One-Hot Encoding:

df = pd.get_dummies(df, columns=['Miasto'])

Jedna linijka — i masz gotowe dane dla modelu.

Target Encoding wymaga dodatkowej biblioteki (category_encoders), ale zasada ta sama. Kilka linijek kodu i działa.

Co zapamiętać

Dane z prawdziwego świata to nie arkusz Excela z liczbami. To chaos: słowa, kategorie, błędy.

Kodowanie to most między tym chaosem a modelem AI. Zrobisz to źle — model nauczy się bzdur. Zrobisz dobrze — dostaniesz prognozy, które działają.

Zacznij od One-Hot Encoding dla kategorii nominalnych. To bezpieczna stawka. Potem eksperymentuj.

Źródła

Informacje o artykule

Podoba Ci się ten artykuł?

Co piątek wysyłam podsumowanie najlepszych artykułów tygodnia. Zapisz się!

Ten temat omawiam szerzej na webinarze

90 minut praktycznej wiedzy o AI. Pokaze Ci krok po kroku, jak zaczac oszczedzac 10 godzin tygodniowo dzieki sztucznej inteligencji.

Zapisz sie na webinar
Udostępnij:
Jan Gajos

Ekspert AI & Founder, AI Evolution

Pasjonat sztucznej inteligencji, który od ponad 15 lat działa z sukcesem biznesowo i szkoleniowo. Wprowadzam AI do swoich firm oraz codziennego życia. Fascynują mnie nowe technologie, gry wideo i składanie klocków Lego – tam też widzę logikę i kreatywność, które AI potrafi wzmacniać. Wierzę, że dobrze użyta sztuczna inteligencja to nie ogłupiające ułatwienie, lecz prawdziwy przełom w sposobie, w jaki myślimy, tworzymy i pracujemy.