Kodierung Kategorialer Variablen
Kategorische Variablen sind Merkmale in Ihren Daten, die Kategorien anstelle von numerischen Werten darstellen. Beispiele hierfür sind Farben wie "red", "green" und "blue" oder Bezeichnungen wie "yes" und "no". Da Machine-Learning-Algorithmen numerische Eingabedaten benötigen, müssen diese kategorialen Variablen vor der Verwendung in Modellen in ein numerisches Format umgewandelt werden. Dieser Vorgang wird als Kodierung bezeichnet und stellt sicher, dass Algorithmen die Daten korrekt interpretieren und daraus lernen können.
One-hot-Encoding erstellt für jede Kategorie einer kategorialen Variablen eine neue binäre Spalte. Jede Beobachtung erhält eine 1 in der Spalte, die ihrer Kategorie entspricht, und 0 in allen anderen Spalten.
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 weist jeder eindeutigen Kategorie in einer Variablen einen ganzzahligen Wert zu und wandelt Textbezeichnungen in Zahlen um.
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 weist den Kategorien basierend auf ihrer natürlichen Reihenfolge geordnete Ganzzahlen zu. Diese Methode bewahrt die inhärente Reihenfolge in ordinalen kategorialen Variablen, wie zum Beispiel Bildungsabschlüssen ("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())
Seien Sie vorsichtig beim Kodieren kategorialer Variablen. One-hot-Encoding kann zur Dummy-Variablen-Falle führen – einer Situation, in der Merkmale stark korreliert sind, was einige Modelle verwirren kann. Um dies zu vermeiden, kann eine der Dummy-Spalten entfernt werden. Label-Encoding erzwingt eine ordinale Beziehung zwischen den Kategorien, was für nominale Daten möglicherweise nicht geeignet ist.
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Awesome!
Completion rate improved to 8.33
Kodierung Kategorialer Variablen
Swipe um das Menü anzuzeigen
Kategorische Variablen sind Merkmale in Ihren Daten, die Kategorien anstelle von numerischen Werten darstellen. Beispiele hierfür sind Farben wie "red", "green" und "blue" oder Bezeichnungen wie "yes" und "no". Da Machine-Learning-Algorithmen numerische Eingabedaten benötigen, müssen diese kategorialen Variablen vor der Verwendung in Modellen in ein numerisches Format umgewandelt werden. Dieser Vorgang wird als Kodierung bezeichnet und stellt sicher, dass Algorithmen die Daten korrekt interpretieren und daraus lernen können.
One-hot-Encoding erstellt für jede Kategorie einer kategorialen Variablen eine neue binäre Spalte. Jede Beobachtung erhält eine 1 in der Spalte, die ihrer Kategorie entspricht, und 0 in allen anderen Spalten.
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 weist jeder eindeutigen Kategorie in einer Variablen einen ganzzahligen Wert zu und wandelt Textbezeichnungen in Zahlen um.
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 weist den Kategorien basierend auf ihrer natürlichen Reihenfolge geordnete Ganzzahlen zu. Diese Methode bewahrt die inhärente Reihenfolge in ordinalen kategorialen Variablen, wie zum Beispiel Bildungsabschlüssen ("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())
Seien Sie vorsichtig beim Kodieren kategorialer Variablen. One-hot-Encoding kann zur Dummy-Variablen-Falle führen – einer Situation, in der Merkmale stark korreliert sind, was einige Modelle verwirren kann. Um dies zu vermeiden, kann eine der Dummy-Spalten entfernt werden. Label-Encoding erzwingt eine ordinale Beziehung zwischen den Kategorien, was für nominale Daten möglicherweise nicht geeignet ist.
Danke für Ihr Feedback!