Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Kodierung Kategorialer Merkmale | Kernkonzepte
Clusteranalyse

bookKodierung 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']]) 
question mark

Welche Kodierungsmethode eignet sich am besten für ein kategoriales Merkmal wie 'country' mit Werten wie "USA", "Canada" und "Germany", bei denen keine natürliche Reihenfolge besteht?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 2

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Awesome!

Completion rate improved to 2.94

bookKodierung 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']]) 
question mark

Welche Kodierungsmethode eignet sich am besten für ein kategoriales Merkmal wie 'country' mit Werten wie "USA", "Canada" und "Germany", bei denen keine natürliche Reihenfolge besteht?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 2
some-alt