Koding av Kategoriske Variabler
Kategoriske variabler er egenskaper i datasettet ditt som representerer kategorier i stedet for numeriske verdier. Eksempler inkluderer farger som "red", "green" og "blue", eller etiketter som "yes" og "no". Maskinlæringsalgoritmer krever at inndata er numeriske, så du må konvertere disse kategoriske variablene til et numerisk format før de brukes i modeller. Denne prosessen kalles enkoding, og den sikrer at algoritmene dine kan tolke og lære effektivt fra dataene.
One-hot encoding oppretter en ny binær kolonne for hver kategori av en kategorisk variabel. Hver observasjon får en 1 i kolonnen som tilsvarer dens kategori og 0 ellers.
12345678910111213import 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())
Etikettkoding tildeler hver unik kategori i en variabel en heltallsverdi, og omformer tekstetiketter til tall.
123456789101112import 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())
Ordenkoding tildeler ordnede heltallsverdier til kategorier basert på deres naturlige rangering. Denne metoden bevarer den iboende rekkefølgen i ordinale kategoriske variabler, som utdanningsnivåer ("high school", "bachelor", "master", "doctorate").
123456789101112131415161718import 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())
Vær oppmerksom ved koding av kategoriske variabler. One-hot encoding kan føre til dummyvariabel-fellen – en situasjon der funksjoner er sterkt korrelerte, noe som kan forvirre enkelte modeller. For å unngå dette kan du fjerne én av dummy-kolonnene. Label encoding påfører et ordnet forhold mellom kategorier, noe som kanskje ikke er hensiktsmessig for nominelle data.
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Awesome!
Completion rate improved to 8.33
Koding av Kategoriske Variabler
Sveip for å vise menyen
Kategoriske variabler er egenskaper i datasettet ditt som representerer kategorier i stedet for numeriske verdier. Eksempler inkluderer farger som "red", "green" og "blue", eller etiketter som "yes" og "no". Maskinlæringsalgoritmer krever at inndata er numeriske, så du må konvertere disse kategoriske variablene til et numerisk format før de brukes i modeller. Denne prosessen kalles enkoding, og den sikrer at algoritmene dine kan tolke og lære effektivt fra dataene.
One-hot encoding oppretter en ny binær kolonne for hver kategori av en kategorisk variabel. Hver observasjon får en 1 i kolonnen som tilsvarer dens kategori og 0 ellers.
12345678910111213import 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())
Etikettkoding tildeler hver unik kategori i en variabel en heltallsverdi, og omformer tekstetiketter til tall.
123456789101112import 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())
Ordenkoding tildeler ordnede heltallsverdier til kategorier basert på deres naturlige rangering. Denne metoden bevarer den iboende rekkefølgen i ordinale kategoriske variabler, som utdanningsnivåer ("high school", "bachelor", "master", "doctorate").
123456789101112131415161718import 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())
Vær oppmerksom ved koding av kategoriske variabler. One-hot encoding kan føre til dummyvariabel-fellen – en situasjon der funksjoner er sterkt korrelerte, noe som kan forvirre enkelte modeller. For å unngå dette kan du fjerne én av dummy-kolonnene. Label encoding påfører et ordnet forhold mellom kategorier, noe som kanskje ikke er hensiktsmessig for nominelle data.
Takk for tilbakemeldingene dine!