Ordinal-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.
12345import 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())
Eine geordnete Liste kategorialer Werte muss erstellt werden, die von 'HS-grad'
bis 'Doctorate'
reicht.
1234567891011121314import 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'])
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?
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
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
Ordinal-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.
12345import 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())
Eine geordnete Liste kategorialer Werte muss erstellt werden, die von 'HS-grad'
bis 'Doctorate'
reicht.
1234567891011121314import 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'])
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?
Danke für Ihr Feedback!