Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Kategoristen Muuttujien Koodaus | Datan Muunnostekniikat
Datan Esikäsittely ja Ominaisuuksien Rakentaminen

bookKategoristen Muuttujien Koodaus

Kategoriset muuttujat ovat tietosi ominaisuuksia, jotka edustavat luokkia eivätkä numeerisia arvoja. Esimerkkejä ovat värit kuten "red", "green" ja "blue" tai tunnisteet kuten "yes" ja "no". Koneoppimisalgoritmit vaativat syötteenä numeerista dataa, joten nämä kategoriset muuttujat täytyy muuntaa numeeriseen muotoon ennen mallien käyttöä. Tätä prosessia kutsutaan koodaukseksi (encoding), ja se varmistaa, että algoritmit pystyvät tulkitsemaan ja oppimaan datasta tehokkaasti.

Note
Määritelmä

One-hot-koodaus luo uuden binäärisen sarakkeen jokaiselle kategorisen muuttujan luokalle. Jokainen havainto saa arvon 1 sarakkeeseen, joka vastaa sen luokkaa, ja 0 muihin sarakkeisiin.

12345678910111213
import seaborn as sns import pandas as pd # Load Titanic dataset data = sns.load_dataset("titanic") # One-hot encode the 'embarked' column embarked_encoded = pd.get_dummies(data["embarked"], prefix="embarked") # Concatenate with original dataset data = pd.concat([data, embarked_encoded], axis=1) print(data[["embarked", "embarked_C", "embarked_Q", "embarked_S"]].head())
copy
Note
Määritelmä

Label encoding antaa jokaiselle muuttujan yksilölliselle luokalle kokonaislukuarvon, muuntaen tekstimuotoiset luokat numeroiksi.

123456789101112
import seaborn as sns import pandas as pd from sklearn.preprocessing import LabelEncoder # Load Titanic dataset data = sns.load_dataset("titanic") # Label encode the 'sex' column encoder = LabelEncoder() data["sex_encoded"] = encoder.fit_transform(data["sex"]) print(data[["sex", "sex_encoded"]].head())
copy
Note
Määritelmä

Order encoding antaa järjestetyt kokonaislukuarvot luokille niiden luonnollisen järjestyksen perusteella. Tämä menetelmä säilyttää järjestysluonteisten kategoristen muuttujien sisäisen järjestyksen, kuten koulutustasot ("high school", "bachelor", "master", "doctorate").

123456789101112131415161718
import seaborn as sns import pandas as pd # Load Titanic dataset data = sns.load_dataset("titanic") # Define the order of passenger classes: First < Second < Third class_order = ["First", "Second", "Third"] # Apply ordered categorical encoding data["class_encoded"] = pd.Categorical( data["class"], categories=class_order, ordered=True ).codes + 1 # +1 to make classes start from 1 instead of 0 # Display sample output print(data[["class", "class_encoded"]].head())
copy
Note
Huomio

Ole varovainen kategoristen muuttujien koodauksessa. One-hot-koodaus voi aiheuttaa dummy-muuttujaloukun – tilanteen, jossa piirteet ovat vahvasti korreloituneita, mikä voi hämmentää joitakin malleja. Tämän välttämiseksi voit jättää yhden dummy-sarakkeen pois. Label encoding eli nimikekoodaus asettaa järjestyssuhteen kategorioiden välille, mikä ei välttämättä sovi nimellisdatalle.

question mark

Mikä koodausmenetelmä sopii parhaiten kategoriselle muuttujalle, jolla ei ole sisäistä järjestystä, kuten "Color"?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 2

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Awesome!

Completion rate improved to 8.33

bookKategoristen Muuttujien Koodaus

Pyyhkäise näyttääksesi valikon

Kategoriset muuttujat ovat tietosi ominaisuuksia, jotka edustavat luokkia eivätkä numeerisia arvoja. Esimerkkejä ovat värit kuten "red", "green" ja "blue" tai tunnisteet kuten "yes" ja "no". Koneoppimisalgoritmit vaativat syötteenä numeerista dataa, joten nämä kategoriset muuttujat täytyy muuntaa numeeriseen muotoon ennen mallien käyttöä. Tätä prosessia kutsutaan koodaukseksi (encoding), ja se varmistaa, että algoritmit pystyvät tulkitsemaan ja oppimaan datasta tehokkaasti.

Note
Määritelmä

One-hot-koodaus luo uuden binäärisen sarakkeen jokaiselle kategorisen muuttujan luokalle. Jokainen havainto saa arvon 1 sarakkeeseen, joka vastaa sen luokkaa, ja 0 muihin sarakkeisiin.

12345678910111213
import seaborn as sns import pandas as pd # Load Titanic dataset data = sns.load_dataset("titanic") # One-hot encode the 'embarked' column embarked_encoded = pd.get_dummies(data["embarked"], prefix="embarked") # Concatenate with original dataset data = pd.concat([data, embarked_encoded], axis=1) print(data[["embarked", "embarked_C", "embarked_Q", "embarked_S"]].head())
copy
Note
Määritelmä

Label encoding antaa jokaiselle muuttujan yksilölliselle luokalle kokonaislukuarvon, muuntaen tekstimuotoiset luokat numeroiksi.

123456789101112
import seaborn as sns import pandas as pd from sklearn.preprocessing import LabelEncoder # Load Titanic dataset data = sns.load_dataset("titanic") # Label encode the 'sex' column encoder = LabelEncoder() data["sex_encoded"] = encoder.fit_transform(data["sex"]) print(data[["sex", "sex_encoded"]].head())
copy
Note
Määritelmä

Order encoding antaa järjestetyt kokonaislukuarvot luokille niiden luonnollisen järjestyksen perusteella. Tämä menetelmä säilyttää järjestysluonteisten kategoristen muuttujien sisäisen järjestyksen, kuten koulutustasot ("high school", "bachelor", "master", "doctorate").

123456789101112131415161718
import seaborn as sns import pandas as pd # Load Titanic dataset data = sns.load_dataset("titanic") # Define the order of passenger classes: First < Second < Third class_order = ["First", "Second", "Third"] # Apply ordered categorical encoding data["class_encoded"] = pd.Categorical( data["class"], categories=class_order, ordered=True ).codes + 1 # +1 to make classes start from 1 instead of 0 # Display sample output print(data[["class", "class_encoded"]].head())
copy
Note
Huomio

Ole varovainen kategoristen muuttujien koodauksessa. One-hot-koodaus voi aiheuttaa dummy-muuttujaloukun – tilanteen, jossa piirteet ovat vahvasti korreloituneita, mikä voi hämmentää joitakin malleja. Tämän välttämiseksi voit jättää yhden dummy-sarakkeen pois. Label encoding eli nimikekoodaus asettaa järjestyssuhteen kategorioiden välille, mikä ei välttämättä sovi nimellisdatalle.

question mark

Mikä koodausmenetelmä sopii parhaiten kategoriselle muuttujalle, jolla ei ole sisäistä järjestystä, kuten "Color"?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 2
some-alt