Modul pandas v Pythonu poskytuje širokou škálu nástrojů pro práci s daty. Jedním z těchto nástrojů je funkce `pd.get_dummies`)', který umožňuje převést kategorické proměnné na číselné.
V reálném světě data často obsahují kategorické proměnné, které nelze přímo použít algoritmy strojového učení. Ale pomocí funkce ' pd.get_dummies ()` lze tyto proměnné převést na numerické, což je nezbytné pro mnoho algoritmů.
Jak to funguje? Funkce ' pd.get_dummies () ' vytváří nové sloupce v původní sadě dat pro každou jedinečnou hodnotu kategorické proměnné. Pro každý řádek je pak v původních datech nastavena hodnota 1 v příslušném novém sloupci, pokud se hodnota kategorické proměnné shoduje. Pokud se hodnota kategorické proměnné neshoduje, je nastavena hodnota 0.
Výhody použití funkce ' pd.get_dummies`) ' je, že umožňuje pracovat s kategorickými proměnnými bez nutnosti ručního kódování. To je užitečné a šetří čas při analýze dat a konstrukci modelů strojového učení.
Co je pd.get_dummies v pandas?
One-hot encoding je proces, při kterém je každá hodnota kategorického znaku nahrazena novým binárním znakem. Nový znak bude roven 1, pokud původní znak přijme danou hodnotu, a 0 jinak. One-hot encoding tak umožňuje kategorická data používat v algoritmech strojového učení, které vyžadují číselné vstupy.
pd.get_dummies přijímá DataFrame nebo sloupec Series jako vstup a vrací nový DataFrame s binárními znaky. Automaticky identifikuje kategorické znaky na základě jejich typu dat a aplikuje one-hot encoding pouze na ně.
Při použití pd.get_dummies je třeba vzít v úvahu, že může vést ke zvýšení velikosti dat, protože každá hodnota kategorického znaku je nahrazena novým binárním znakem. To může být nežádoucí, pokud jsou v datech známky s mnoha jedinečnými hodnotami.
Navzdory tomu pd.get_dummies je užitečný nástroj pro zpracování kategorických dat v pandas, který může být užitečný v různých úlohách analýzy dat a strojového učení.
| Původní sloupec | Nový sloupec_místo1 | Nový sloupec_místo2 | Nový sloupec_místo3 |
|---|---|---|---|
| význam1 | 1 | 0 | 0 |
| význam2 | 0 | 1 | 0 |
| významy3 | 0 | 0 | 1 |
Princip fungování funkce pd.get_dummies v knihovně pandas
Když použijeme funkci pd.get_dummies ke sloupci s kategorickými hodnotami, rozdělí každou jedinečnou kategorii do samostatného sloupce a přiřadí mu hodnotu 1, pokud odpovídá dané kategorii, a 0 v opačném případě. Každý řádek v původním sloupci je tedy převeden na sadu binárních hodnot.
Pro příklad zvažte sloupec 'Color', který obsahuje hodnoty:' Red',' Green','Blue'. Pokud použijeme funkci pd.get_dummies do tohoto sloupce, dostaneme tři nové sloupce:' Color_Red',' Color_Green','Color_Blue'. Pokud se hodnota' Color 'v původní tabulce rovná' Red', sloupec' Color_Red 'bude mít hodnotu 1 a sloupce' Color_Green 'a' Color_Blue ' budou mít hodnotu 0 a naopak.
| Color | Color_Red | Color_Green | Color_Blue |
|---|---|---|---|
| Red | 1 | 0 | 0 |
| Green | 0 | 1 | 0 |
| Blue | 0 | 0 | 1 |
Funkce pd.get_dummies umožňuje převést kategorická data na druh, který lze použít k učení algoritmů strojového učení. Usnadňuje práci s kategorickými proměnnými a umožňuje jejich použití jako vstup pro modely strojového učení.
Jak používat pd.get_dummies v pandas pro vytváření fiktivních proměnných?
Metoda pd.get_dummies () v knihovně pandas umožňuje převést kategorické proměnné na fiktivní proměnné. Fiktivní proměnná neboli "Dammi-proměnná" je proměnná, která bere hodnotu 1, pokud prvek patří do určité kategorie, a 0 v opačném případě. Převod kategorických proměnných na fiktivní proměnné je nezbytný pro práci s algoritmy strojového učení a statistickými modely, které nemohou pracovat s textovými daty.
Proces vytváření fiktivních proměnných pomocí pd.get_dummies () v pandas je velmi jednoduchý. Stačí předat sloupec nebo seznam sloupců s kategorickými proměnnými jako argument funkce a vrátí nový DataFrame s fiktivními proměnnými.
import pandas as pd
data = 'Velikost': ['Malý', 'Střední', 'Velký', 'Velký','Malý'],
'Cena': [10, 15, 20, 25, 30]>
df = pd.DataFrame(data)
dummies = pd.get_dummies(df['Barva'])
df_with_dummies = pd.concat([df, dummies], axis=1)
V tomto příkladu máme zdrojová data obsahující sloupec "barva" s kategorickými proměnnými. Používáme pd.get_dummies () převést tento sloupec na fiktivní proměnné a uložit výsledek do nového DataFrame dummies . Původní DataFrame pak zkombinujeme s novým DataFrame fiktivních proměnných pomocí metody pd.concat() .
Výsledek bude vypadat následovně:
| Barva | Velikost | Hodnota | Červený | Zelený | Modrý | |
|---|---|---|---|---|---|---|
| 0 | Červený | Malý | 10 | 1 | 0 | 0 |
| 1 | Zelený | Střední | 15 | 0 | 1 | 0 |
| 2 | Modrý | Velký | 20 | 0 | 0 | 1 |
| 3 | Zelený | Velký | 25 | 0 | 1 | 0 |
| 4 | Červený | Malý | 30 | 1 | 0 | 0 |
Nyní máme sloupce "červená", "zelená" a "modrá", což jsou fiktivní proměnné představující hodnoty z původního sloupce "Barva". Řádky odpovídající hodnotám " Červená "mají hodnotu 1 ve sloupci" červená " a 0 ve zbývajících sloupcích fiktivních proměnných. Podobně pro hodnoty "zelená"a " modrá".
Nyní můžete tento nový DataFrame pomocí fiktivních proměnných dále analyzovat nebo modelovat data. pd.get_dummies () je výkonný nástroj pro práci s kategorickými proměnnými v pandas, který usnadňuje proces vytváření fiktivních proměnných a usnadňuje jejich interpretaci pro algoritmy strojového učení.
Výhody používání pd.get_dummies v pandas
1. Snadné použití: pd.get_dummies se velmi snadno používá a umožňuje snadno převést kategorické proměnné na číselné. Není třeba psát složité cykly nebo podmínky, stačí použít metodu na požadovaný sloupec dataframu a získat nové číselné sloupce s převedenými hodnotami.
2. Flexibilita: pd.get_dummies umožňuje nastavit různé možnosti pro konverzi kategorických proměnných. Můžete například zadat předponu pro vytváření nových sloupců nebo nastavit sloupec-indikátor chybějících hodnot. To umožňuje přizpůsobit transformaci konkrétním potřebám projektu.
3. Přidání informací: pd.get_dummies vytváří nové sloupce s číselnými hodnotami pro každou jedinečnou hodnotu kategorické proměnné. To vám umožní uložit všechny informace o kategoriích, místo abyste je ztratili při konverzi.
4. Podpora různých typů proměnných: pd.get_dummies umožňuje převod nejen řádků, ale i celočíselných hodnot nebo dokonce časových řad. Díky tomu je metoda užitečná pro práci s různými typy dat.
5. Snadné sdílení s jinými nástroji: pd.get_dummies se dobře integruje s dalšími nástroji a metodami knihovny pandas. Tuto metodu lze například snadno kombinovat s metodami pro předběžné zpracování dat nebo rozdělit dataset na výukový a testovací vzorek.
Použití pd.get_dummies v pandas umožňuje efektivní práci s kategorickými daty a jejich přípravu pro učení modelů strojového učení. Tato metoda výrazně zjednodušuje proces převodu kategorických proměnných na číselné a umožňuje uložit všechny informace o kategoriích, což je velmi důležité pro získání přesných modelů.
Omezení a funkce pd.get_dummies v pandas
Je třeba vzít v úvahu některá omezení a vlastnosti funkce pd.get_dummies () při práci s daty v pandas. Podívejme se na ně podrobněji:
1. Chybějící hodnoty
Funkce pd.get_dummies () nefunguje s chybějícími hodnotami ve zdrojových datech. Pokud jsou v původním datasetu přítomny vynechané hodnoty, je nutné je předem zpracovat vyplněním nebo odstraněním.
2. Sloupce kategorií a sloupce s chybějícími hodnotami
Při použití funkce pd.get_dummies () vytvářejí nové sloupce pro každou kategorii z původního sloupce. Pokud jsou ve zdrojových datech sloupce s chybějícími hodnotami, vytvoří se odpovídající nové sloupce pro každou kategorii a sloupec pro vynechané hodnoty.
3. Vytváření binárních proměnných
Funkce pd.get_dummies () vytváří binární proměnné, to znamená, že nové sloupce budou obsahovat pouze hodnoty 0 nebo 1. Ve výchozím nastavení prochází první kategorie dummy coding. Pokud se tomu chcete vyhnout, musíte použít možnost Drop_first=True.
4. Kódování více sloupců
Funkce pd.get_dummies () umožňuje kódovat nejen jeden sloupec, ale také více sloupců najednou. V tomto případě budou nové sloupce vytvořeny pro každou jedinečnou hodnotu ve všech přenesených sloupcích.
5. Přejmenování sloupců
Ve výchozím nastavení jsou sloupce vytvořené funkcí pd.get_dummies (), mají názvy typu "pojmenování_schodný_stolbca_smysl_kategorie". Pokud chcete přejmenovat sloupce, můžete použít možnost prefix.
Vzhledem ke všem těmto vlastnostem je funkce pd.get_dummies () je výkonný nástroj pro práci s kategorickými daty v pandas, což umožňuje snadno a efektivně vytvářet nové reprezentace dat a začlenit je do analýzy.