
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_czerwony | Kolor_niebieski | Kolor_zielony |
---|---|---|
1 | 0 | 0 |
0 | 1 | 0 |
0 | 0 | 1 |
1 | 0 | 0 |
0 | 0 | 1 |
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 zastosowaniaOpanuj analizę danych w Pythonie z moim kursem!
Opanujesz podstawy programowania w Pythonie, w tym typy danych, zmienne, listy, słowniki, funkcje oraz obsługę błędów. Nauczysz się korzystać z biblioteki pandas do zaawansowanej analizy danych i pracy z różnymi rodzajami danych. Zrozumiesz proces analizy, eksploracji (EDA) i wizualizacji. Tworzenie własnych funkcji przygotuje Cię do rozmów kwalifikacyjnych i rozwiązywania rzeczywistych problemów biznesowych.
Zostań analitykiem danych – dołącz do KajoDataSpace!
Najlepsza ścieżka do zawodu analityka danych. Dostęp do pełnych wersji kursów online z Excela, SQLa, Tableau i Pythona z certyfikatami + specjalistycznych webinarów z PowerBI.
Ekskluzywana ale pomagająca sobie społeczność.
Ponad 61 godzin materiałów video.
Spotkania LIVE co miesiąc.
Mój osobisty mentoring.