Kodning av Kategoriska Variabler
Kategoriska variabler är egenskaper i dina data som representerar kategorier snarare än numeriska värden. Exempel inkluderar färger som "red", "green" och "blue", eller etiketter som "yes" och "no". Maskininlärningsalgoritmer kräver att indata är numeriska, så du måste konvertera dessa kategoriska variabler till ett numeriskt format innan de används i modeller. Denna process kallas kodning och säkerställer att algoritmerna kan tolka och lära sig från data på ett effektivt sätt.
One-hot-kodning skapar en ny binär kolumn för varje kategori av en kategorisk variabel. Varje observation får en 1 i kolumnen som motsvarar dess kategori och 0 i övriga kolumner.
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())
Etikettkodning tilldelar varje unikt kategori i en variabel ett heltalsvärde, vilket omvandlar textetiketter till siffror.
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())
Ordningkodning tilldelar ordnade heltalsvärden till kategorier baserat på deras naturliga rangordning. Denna metod bevarar den inneboende ordningen i ordnade kategoriska variabler, såsom utbildningsnivå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())
Var försiktig vid kodning av kategoriska variabler. One-hot-kodning kan introducera dummyvariabel-fällan – en situation där funktioner är starkt korrelerade, vilket kan förvirra vissa modeller. För att undvika detta kan du ta bort en av dummy-kolumnerna. Etikettkodning inför en ordningsrelation mellan kategorier, vilket kanske inte är lämpligt för nominella data.
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
Can you explain the difference between one-hot encoding and label encoding?
When should I use ordered categorical encoding instead of one-hot or label encoding?
Can you show more examples of encoding categorical variables?
Awesome!
Completion rate improved to 8.33
Kodning av Kategoriska Variabler
Svep för att visa menyn
Kategoriska variabler är egenskaper i dina data som representerar kategorier snarare än numeriska värden. Exempel inkluderar färger som "red", "green" och "blue", eller etiketter som "yes" och "no". Maskininlärningsalgoritmer kräver att indata är numeriska, så du måste konvertera dessa kategoriska variabler till ett numeriskt format innan de används i modeller. Denna process kallas kodning och säkerställer att algoritmerna kan tolka och lära sig från data på ett effektivt sätt.
One-hot-kodning skapar en ny binär kolumn för varje kategori av en kategorisk variabel. Varje observation får en 1 i kolumnen som motsvarar dess kategori och 0 i övriga kolumner.
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())
Etikettkodning tilldelar varje unikt kategori i en variabel ett heltalsvärde, vilket omvandlar textetiketter till siffror.
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())
Ordningkodning tilldelar ordnade heltalsvärden till kategorier baserat på deras naturliga rangordning. Denna metod bevarar den inneboende ordningen i ordnade kategoriska variabler, såsom utbildningsnivå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())
Var försiktig vid kodning av kategoriska variabler. One-hot-kodning kan introducera dummyvariabel-fällan – en situation där funktioner är starkt korrelerade, vilket kan förvirra vissa modeller. För att undvika detta kan du ta bort en av dummy-kolumnerna. Etikettkodning inför en ordningsrelation mellan kategorier, vilket kanske inte är lämpligt för nominella data.
Tack för dina kommentarer!