0Pricing
Data Science Academy · Lekcja

Kodowanie kolumn kategorialnych

Podstawy kodowania one-hot i etykietowego

Kodowanie kolumn kategorialnych to bezpłatna lekcja Data Science Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Data Science Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Data Science Academy zawiera 4 lekcji w sumie.

Dlaczego kodowanie ma znaczenie

Większość modeli rozumie tylko liczby, podczas gdy dane pełne są słów, takich jak czerwony czy niebieski. Kodowanie zamienia te etykiety na liczby, z których model może się uczyć. 🔢

Nominalne a porządkowe

Niektóre kategorie mają określoną kolejność, na przykład mały, średni i duży. Inne, takie jak nazwy miast, jej nie mają. To właśnie ta kolejność decyduje, które kodowanie będzie uczciwe.

Kodowanie etykiet

Kodowanie etykiet przypisuje każdej kategorii liczbę całkowitą: czerwony staje się 0, a niebieski 1. To proste rozwiązanie, ale tworzy kolejność, która może nie istnieć w rzeczywistości.

from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
codes = le.fit_transform(df['color'])

Pułapka fałszywej kolejności

Jeśli niebieski ma wartość 1, a zielony 2, model może uznać, że zielony jest większy od niebieskiego. W przypadku danych nominalnych taki fałszywy ranking może obniżyć dokładność.

Kodowanie one-hot

Kodowanie one-hot tworzy nową kolumnę dla każdej kategorii i oznacza ją wartością 1 lub 0. Bez sztucznego porządku — tylko przejrzyste flagi tak lub nie.

get_dummies w pandas

Najszybszym sposobem kodowania one-hot w pandas jest get_dummies. Wystarczy przekazać mu kolumnę, a każda kategoria zostanie rozwinięta do osobnej kolumny z wartościami 0/1.

dummies = pd.get_dummies(df['color'])

Unikaj pułapki zmiennych zero-jedynkowych

Kolumny są ze sobą doskonale skorelowane, dlatego należy usunąć jedną z nich za pomocą drop_first. Dzięki temu modele liniowe pozostają stabilne i nie zawierają nadmiarowych informacji.

pd.get_dummies(df['color'], drop_first=True)

OneHotEncoder w potokach

W przypadku modeli warto używać OneHotEncoder z biblioteki scikit-learn. Zapamiętuje on poznane kategorie, dzięki czemu dane treningowe i testowe pozostają idealnie zgodne.

from sklearn.preprocessing import OneHotEncoder
enc = OneHotEncoder(handle_unknown='ignore')

Koduj porządek celowo

Gdy kolejność ma rzeczywiste znaczenie, należy zmapować ją samodzielnie, tak aby wartości od najmniejszej do największej stały się wartościami od 1 do 3. Mapowanie ordinal zachowuje pierwotne znaczenie.

order = {'small': 1, 'medium': 2, 'large': 3}
df['size_num'] = df['size'].map(order)

Uważaj na dużą liczność kategorii

Zastosowanie kodowania one-hot do kolumny zawierającej tysiące wartości spowoduje powstanie tysięcy kolumn. W przypadku dużej cardinality rozważ wcześniejsze połączenie rzadkich wartości.

Obsługa nieznanych kategorii

Nowe dane mogą zawierać etykiety, których koder nigdy wcześniej nie widział. Należy to uwzględnić, aby kategoria unseen nie powodowała awarii podczas predykcji.

Szybkie sprawdzenie

Kolumna z kolorami nie ma naturalnego porządku. Które kodowanie pozwala uniknąć tworzenia fałszywego rankingu?

Podsumowanie: kodowanie

Zamienili Państwo słowa na liczby: kodowanie one-hot dla kategorii bez uporządkowania, mapowanie ordinal dla rzeczywistej kolejności oraz kodowanie etykiet tylko wtedy, gdy kolejność nie ma znaczenia. 🎉

Często zadawane pytania

Czy lekcja „Kodowanie kolumn kategorialnych” jest bezpłatna?

Tak — pełny tekst „Kodowanie kolumn kategorialnych” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Data Science Academy, przejdź na CoddyKit PRO. Kurs Data Science Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Kodowanie kolumn kategorialnych”?

Podstawy kodowania one-hot i etykietowego Ćwiczysz Data Science Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Data Science Academy?

Nie wymagamy żadnego doświadczenia. Data Science Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.

Ile czasu zajmuje lekcja „Kodowanie kolumn kategorialnych”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Data Science Academy?

Tak. Każda lekcja Data Science Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Przekształcanie liczb w kategorie
  2. Kodowanie kolumn kategorialnych
  3. Skalowanie i normalizacja liczb
  4. Tworzenie cech z dat i tekstu
← Powrót do Data Science Academy