Jak działa pandas get_dummies w języku Python? Przykład zastosowania

Jak działa pandas get_dummies w języku Python? Przykład zastosowania
„`html

Jeśli kiedykolwiek pracowałeś z danymi kategorycznymi w języku Python, na pewno zauważyłeś, że modele uczenia maszynowego nie radzą sobie z nimi najlepiej. Potrzebujemy więc sposobu na ich przekształcenie do formatu numerycznego. I tutaj na scenę wkracza funkcja pandas.get_dummies(). Pozwala ona w prosty sposób zamienić dane kategoryczne na zmienne zero-jedynkowe, czyli tzw. one-hot encoding. W tym artykule pokażę, jak działa ta funkcja i w jaki sposób można ją zastosować w praktyce.

Co to jest pandas.get_dummies()?

Funkcja pandas.get_dummies() to narzędzie, które umożliwia konwersję danych kategorycznych na postać numeryczną poprzez przekształcenie ich w kolumny binarne (0 i 1). Przydaje się to szczególnie w uczeniu maszynowym, gdzie większość algorytmów nie działa bezpośrednio na danych tekstowych.

Oto przykład, który zobrazuje działanie tej funkcji:


import pandas as pd

# Tworzymy przykładową ramkę danych
df = pd.DataFrame({'Kolor': ['czerwony', 'niebieski', 'zielony', 'czerwony', 'zielony']})
print(df)

Nasza ramka danych wygląda następująco:

Kolor
czerwony
niebieski
zielony
czerwony
zielony

Teraz użyjmy funkcji get_dummies(), aby zamienić kolumnę Kolor na postać numeryczną:


df_dummies = pd.get_dummies(df)
print(df_dummies)

Wynik wygląda tak:

Kolor_czerwonyKolor_niebieskiKolor_zielony
100
010
001
100
001

Jak widzisz, kolumna została podzielona na kilka binarnych kolumn, gdzie 1 oznacza, że dany kolor wystąpił w danym wierszu.

Jak działa pandas.get_dummies()? Kluczowe opcje

Funkcja get_dummies() oferuje różne opcje, które mogą pomóc nam w lepszym dostosowaniu danych do naszych potrzeb. Omówię kilka najważniejszych.

1. Wybór kolumn do zakodowania

Jeśli mamy więcej niż jedną kolumnę w DataFrame, możemy wybrać, które kolumny chcemy zakodować:


df = pd.DataFrame({
    'Kolor': ['czerwony', 'niebieski', 'zielony'],
    'Marka': ['Toyota', 'Ford', 'BMW']
})

df_dummies = pd.get_dummies(df, columns=['Kolor'])
print(df_dummies)

W tym przypadku zakodowana zostanie tylko kolumna Kolor, a Marka pozostanie bez zmian.

2. Usuwanie pierwszej kolumny (eliminacja pułapki wielokrotnej współliniowości)

Przy dużej ilości zmiennych kategorycznych, jedna kolumna może być liniowo zależna od pozostałych, co może prowadzić do problemów w algorytmach ML. Możemy usunąć jedną z kolumn, ustawiając parametr drop_first=True:


df_dummies = pd.get_dummies(df, drop_first=True)
print(df_dummies)

Dzięki temu unikniemy nadmiarowości w danych.

3. Obsługa prefiksów

Domyślnie nazwy nowych kolumn zawierają nazwę oryginalnej zmiennej. Możemy jednak ustawić własny prefiks dla nowych kolumn:


df_dummies = pd.get_dummies(df, prefix='Nowa_kolumna')
print(df_dummies)

W ten sposób możemy nadać bardziej zrozumiałe nazwy naszym zmiennym.

Kiedy stosować pandas.get_dummies()?

Funkcja get_dummies() jest niezwykle przydatna w kilku sytuacjach:

  • Przygotowując dane do modeli uczenia maszynowego, które wymagają danych liczbowych.
  • Podczas pracy z danymi kategorycznymi w analizie eksploracyjnej.
  • W sytuacjach, gdy chcemy wyeliminować tekst z analizy statystycznej.

Podsumowanie

Funkcja pandas.get_dummies() to potężne narzędzie do konwersji danych kategorycznych na formę liczbową. Dzięki niej możemy łatwo i szybko przekształcić kolumny tekstowe na zmienne binarne, co jest niezbędne w wielu zastosowaniach, od analizy danych po budowę modeli uczenia maszynowego.

Jeśli pracujesz z danymi zawierającymi zmienne kategoryczne, zdecydowanie warto zapoznać się z możliwościami, jakie oferuje ta funkcja.

„` Inny ciekawy artykuł: Jak działa pandas pivot w języku Python? Przykład zastosowania
KajoDataSpace