Kodierung Kategorialer Merkmale
Clustering-Algorithmen wie K-means benötigen numerische Daten. Kategorische Merkmale müssen durch Kodierung in numerische Form umgewandelt werden. Sie lernen ordinale und One-Hot-Kodierung kennen.
Ordinale Kodierung
Ordinale Kodierung wandelt geordnete Kategorien in numerische Werte um und erhält dabei deren Rangfolge. Zum Beispiel transformiert die ordinale Kodierung der Spalte 'education_level'
deren Werte von "High School"
, "Bachelor's"
, "Master's"
, 'PhD'
zu 0
, 1
, 2
, 3
.
Dies setzt einen bedeutungsvollen numerischen Unterschied zwischen den kodierten Werten voraus, was jedoch nicht immer zutreffend ist.
from sklearn.preprocessing import OrdinalEncoder
education_levels = [['High School',
"Bachelor's",
"Master's",
"PhD"]]
encoder = OrdinalEncoder(categories=education_levels)
df[['education_encoded']] = encoder.fit_transform(df[['education_level']])
One-Hot-Kodierung
One-Hot-Kodierung wandelt nominale (ungeordnete) Kategorien in binäre Spalten um, wobei jede Kategorie zu einer neuen Spalte wird. Für ein Merkmal mit n
Kategorien entstehen typischerweise n
Spalten — eine Spalte ist für die entsprechende Kategorie 1
, die anderen sind 0
. Tatsächlich werden jedoch nur n-1
Spalten benötigt, um die Information ohne Redundanz darzustellen.
Beispielsweise kann eine Spalte 'color'
mit den Werten 'red'
, 'blue'
und 'green'
mit nur zwei Spalten kodiert werden: 'color_red'
und 'color_blue'
. Wenn eine Zeile in beiden Spalten 0
hat, bedeutet dies, dass die Farbe 'green'
ist. Durch das Entfernen einer Spalte wird Redundanz vermieden.
Das Entfernen der redundanten Spalte wird über drop='first'
angegeben:
from sklearn.preprocessing import OneHotEncoder
encoder = OneHotEncoder(drop='first', sparse=False)
encoded = encoder.fit_transform(df[['color']])
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 2.94
Kodierung Kategorialer Merkmale
Swipe um das Menü anzuzeigen
Clustering-Algorithmen wie K-means benötigen numerische Daten. Kategorische Merkmale müssen durch Kodierung in numerische Form umgewandelt werden. Sie lernen ordinale und One-Hot-Kodierung kennen.
Ordinale Kodierung
Ordinale Kodierung wandelt geordnete Kategorien in numerische Werte um und erhält dabei deren Rangfolge. Zum Beispiel transformiert die ordinale Kodierung der Spalte 'education_level'
deren Werte von "High School"
, "Bachelor's"
, "Master's"
, 'PhD'
zu 0
, 1
, 2
, 3
.
Dies setzt einen bedeutungsvollen numerischen Unterschied zwischen den kodierten Werten voraus, was jedoch nicht immer zutreffend ist.
from sklearn.preprocessing import OrdinalEncoder
education_levels = [['High School',
"Bachelor's",
"Master's",
"PhD"]]
encoder = OrdinalEncoder(categories=education_levels)
df[['education_encoded']] = encoder.fit_transform(df[['education_level']])
One-Hot-Kodierung
One-Hot-Kodierung wandelt nominale (ungeordnete) Kategorien in binäre Spalten um, wobei jede Kategorie zu einer neuen Spalte wird. Für ein Merkmal mit n
Kategorien entstehen typischerweise n
Spalten — eine Spalte ist für die entsprechende Kategorie 1
, die anderen sind 0
. Tatsächlich werden jedoch nur n-1
Spalten benötigt, um die Information ohne Redundanz darzustellen.
Beispielsweise kann eine Spalte 'color'
mit den Werten 'red'
, 'blue'
und 'green'
mit nur zwei Spalten kodiert werden: 'color_red'
und 'color_blue'
. Wenn eine Zeile in beiden Spalten 0
hat, bedeutet dies, dass die Farbe 'green'
ist. Durch das Entfernen einer Spalte wird Redundanz vermieden.
Das Entfernen der redundanten Spalte wird über drop='first'
angegeben:
from sklearn.preprocessing import OneHotEncoder
encoder = OneHotEncoder(drop='first', sparse=False)
encoded = encoder.fit_transform(df[['color']])
Danke für Ihr Feedback!