Kodning af Kategoriske Variabler
Kategoriske variabler er egenskaber i dine data, der repræsenterer kategorier i stedet for numeriske værdier. Eksempler inkluderer farver som "red", "green" og "blue", eller etiketter som "yes" og "no". Maskinlæringsalgoritmer kræver, at inputdata er numeriske, så du skal konvertere disse kategoriske variabler til et numerisk format, før de kan anvendes i modeller. Denne proces kaldes kodning, og den sikrer, at dine algoritmer kan fortolke og lære effektivt af dataene.
One-hot encoding opretter en ny binær kolonne for hver kategori af en kategorisk variabel. Hver observation får en 1 i kolonnen, der svarer til dens kategori, og 0 i de øvrige.
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())
Label encoding tildeler hver unik kategori i en variabel en heltalsværdi, hvilket omdanner tekstetiketter til tal.
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())
Order encoding tildeler ordnede heltalsværdier til kategorier baseret på deres naturlige rangering. Denne metode bevarer den iboende rækkefølge i ordinale kategoriske variabler, såsom uddannelsesniveauer ("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 opmærksom ved kodning af kategoriske variabler. One-hot encoding kan introducere dummyvariabel-fælden – en situation hvor funktioner er stærkt korrelerede, hvilket kan forvirre nogle modeller. For at undgå dette kan du udelade en af dummy-kolonnerne. Label encoding pålægger et ordnet forhold mellem kategorier, hvilket muligvis ikke er passende for nominelle data.
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Awesome!
Completion rate improved to 8.33
Kodning af Kategoriske Variabler
Stryg for at vise menuen
Kategoriske variabler er egenskaber i dine data, der repræsenterer kategorier i stedet for numeriske værdier. Eksempler inkluderer farver som "red", "green" og "blue", eller etiketter som "yes" og "no". Maskinlæringsalgoritmer kræver, at inputdata er numeriske, så du skal konvertere disse kategoriske variabler til et numerisk format, før de kan anvendes i modeller. Denne proces kaldes kodning, og den sikrer, at dine algoritmer kan fortolke og lære effektivt af dataene.
One-hot encoding opretter en ny binær kolonne for hver kategori af en kategorisk variabel. Hver observation får en 1 i kolonnen, der svarer til dens kategori, og 0 i de øvrige.
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())
Label encoding tildeler hver unik kategori i en variabel en heltalsværdi, hvilket omdanner tekstetiketter til tal.
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())
Order encoding tildeler ordnede heltalsværdier til kategorier baseret på deres naturlige rangering. Denne metode bevarer den iboende rækkefølge i ordinale kategoriske variabler, såsom uddannelsesniveauer ("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 opmærksom ved kodning af kategoriske variabler. One-hot encoding kan introducere dummyvariabel-fælden – en situation hvor funktioner er stærkt korrelerede, hvilket kan forvirre nogle modeller. For at undgå dette kan du udelade en af dummy-kolonnerne. Label encoding pålægger et ordnet forhold mellem kategorier, hvilket muligvis ikke er passende for nominelle data.
Tak for dine kommentarer!