Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Ordinal-Encoder | Datenvorverarbeitung mit Scikit-Learn
ML-Einführung Mit Scikit-Learn

bookOrdinal-Encoder

Das nächste zu behandelnde Thema sind kategoriale Daten. Es gibt zwei Haupttypen von kategorialen Variablen.

Ordinale Daten besitzen eine natürliche Reihenfolge, während nominale Daten keine solche Ordnung aufweisen. Aufgrund dieser Reihenfolge können Kategorien entsprechend ihrer Rangfolge als Zahlen codiert werden.

Beispielsweise kann eine 'rate'-Spalte mit den Werten 'Terrible', 'Bad', 'OK', 'Good' und 'Great' wie folgt codiert werden:

  • 'Terrible' → 0
  • 'Bad' → 1
  • 'OK' → 2
  • 'Good' → 3
  • 'Great' → 4

Zur Codierung von ordinalen Daten wird der OrdinalEncoder verwendet. Er wandelt Kategorien in Ganzzahlen beginnend bei 0 um.

OrdinalEncoder wird auf die gleiche Weise wie andere Transformer angewendet. Die Hauptschwierigkeit besteht darin, das Argument categories korrekt anzugeben.

Betrachten Sie beispielsweise einen Datensatz (nicht den penguins-Datensatz), der eine 'education'-Spalte enthält. Der erste Schritt besteht darin, die eindeutigen Werte zu überprüfen.

12345
import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/adult_edu.csv') print(df['education'].unique())
copy

Eine geordnete Liste kategorialer Werte muss erstellt werden, die von 'HS-grad' bis 'Doctorate' reicht.

1234567891011121314
import pandas as pd from sklearn.preprocessing import OrdinalEncoder # Load the data and assign X, y variables df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/adult_edu.csv') y = df['income'] # 'income' is a target in this dataset X = df.drop('income', axis=1) # Create a list of categories so HS-grad is encoded as 0 and Doctorate as 6 edu_categories = ['HS-grad', 'Some-college', 'Assoc', 'Bachelors', 'Masters', 'Prof-school', 'Doctorate'] # Initialize an OrdinalEncoder instance with the correct categories ord_enc = OrdinalEncoder(categories=[edu_categories]) # Transform the 'education' column and print it X['education'] = ord_enc.fit_transform(X[['education']]) print(X['education'])
copy

Beim Transformieren mehrerer Merkmale mit dem OrdinalEncoder müssen die Kategorien für jede Spalte explizit angegeben werden. Dies geschieht über das Argument categories:

encoder = OrdinalEncoder(categories=[col1_categories, col2_categories, ...])

1. Welche Aussage beschreibt am besten die Verwendung des OrdinalEncoder zur Verarbeitung kategorialer Daten in einem Datensatz?

2. Angenommen, Sie haben eine kategoriale Spalte mit dem Namen 'Color'. Wäre es angemessen, den OrdinalEncoder zu verwenden, um deren Werte zu kodieren?

question mark

Welche Aussage beschreibt am besten die Verwendung des OrdinalEncoder zur Verarbeitung kategorialer Daten in einem Datensatz?

Select the correct answer

question mark

Angenommen, Sie haben eine kategoriale Spalte mit dem Namen 'Color'. Wäre es angemessen, den OrdinalEncoder zu verwenden, um deren Werte zu kodieren?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 5

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

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

Suggested prompts:

Can you explain the difference between ordinal and nominal data in more detail?

How do I determine the correct order for ordinal categories?

What happens if I don't specify the categories argument correctly in OrdinalEncoder?

Awesome!

Completion rate improved to 3.13

bookOrdinal-Encoder

Swipe um das Menü anzuzeigen

Das nächste zu behandelnde Thema sind kategoriale Daten. Es gibt zwei Haupttypen von kategorialen Variablen.

Ordinale Daten besitzen eine natürliche Reihenfolge, während nominale Daten keine solche Ordnung aufweisen. Aufgrund dieser Reihenfolge können Kategorien entsprechend ihrer Rangfolge als Zahlen codiert werden.

Beispielsweise kann eine 'rate'-Spalte mit den Werten 'Terrible', 'Bad', 'OK', 'Good' und 'Great' wie folgt codiert werden:

  • 'Terrible' → 0
  • 'Bad' → 1
  • 'OK' → 2
  • 'Good' → 3
  • 'Great' → 4

Zur Codierung von ordinalen Daten wird der OrdinalEncoder verwendet. Er wandelt Kategorien in Ganzzahlen beginnend bei 0 um.

OrdinalEncoder wird auf die gleiche Weise wie andere Transformer angewendet. Die Hauptschwierigkeit besteht darin, das Argument categories korrekt anzugeben.

Betrachten Sie beispielsweise einen Datensatz (nicht den penguins-Datensatz), der eine 'education'-Spalte enthält. Der erste Schritt besteht darin, die eindeutigen Werte zu überprüfen.

12345
import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/adult_edu.csv') print(df['education'].unique())
copy

Eine geordnete Liste kategorialer Werte muss erstellt werden, die von 'HS-grad' bis 'Doctorate' reicht.

1234567891011121314
import pandas as pd from sklearn.preprocessing import OrdinalEncoder # Load the data and assign X, y variables df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/adult_edu.csv') y = df['income'] # 'income' is a target in this dataset X = df.drop('income', axis=1) # Create a list of categories so HS-grad is encoded as 0 and Doctorate as 6 edu_categories = ['HS-grad', 'Some-college', 'Assoc', 'Bachelors', 'Masters', 'Prof-school', 'Doctorate'] # Initialize an OrdinalEncoder instance with the correct categories ord_enc = OrdinalEncoder(categories=[edu_categories]) # Transform the 'education' column and print it X['education'] = ord_enc.fit_transform(X[['education']]) print(X['education'])
copy

Beim Transformieren mehrerer Merkmale mit dem OrdinalEncoder müssen die Kategorien für jede Spalte explizit angegeben werden. Dies geschieht über das Argument categories:

encoder = OrdinalEncoder(categories=[col1_categories, col2_categories, ...])

1. Welche Aussage beschreibt am besten die Verwendung des OrdinalEncoder zur Verarbeitung kategorialer Daten in einem Datensatz?

2. Angenommen, Sie haben eine kategoriale Spalte mit dem Namen 'Color'. Wäre es angemessen, den OrdinalEncoder zu verwenden, um deren Werte zu kodieren?

question mark

Welche Aussage beschreibt am besten die Verwendung des OrdinalEncoder zur Verarbeitung kategorialer Daten in einem Datensatz?

Select the correct answer

question mark

Angenommen, Sie haben eine kategoriale Spalte mit dem Namen 'Color'. Wäre es angemessen, den OrdinalEncoder zu verwenden, um deren Werte zu kodieren?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 5
some-alt