Ordinalencoder
Nästa fråga att ta itu med är kategoriska data. Det finns två huvudtyper av kategoriska variabler.
Ordinal data har en naturlig ordning, medan nominal data saknar detta. På grund av denna ordning kan kategorier kodas som siffror enligt deras rangordning.
Till exempel kan en 'rate'
-kolumn med värdena 'Terrible', 'Bad', 'OK', 'Good' och 'Great' kodas som:
- 'Terrible' → 0
- 'Bad' → 1
- 'OK' → 2
- 'Good' → 3
- 'Great' → 4
För att koda ordinal data används OrdinalEncoder
. Den omvandlar kategorier till heltal med start från 0.
OrdinalEncoder
används på samma sätt som andra transformatorer. Den största utmaningen är att ange argumentet categories
korrekt.
Tänk till exempel på en datamängd (inte penguins-datamängden) som innehåller en 'education'
-kolumn. Första steget är att kontrollera dess unika värden.
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())
En ordnad lista över kategoriska värden måste skapas, från 'HS-grad'
till 'Doctorate'
.
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'])
Vid transformering av flera funktioner med OrdinalEncoder
måste kategorierna för varje kolumn anges explicit. Detta görs via argumentet categories
:
encoder = OrdinalEncoder(categories=[col1_categories, col2_categories, ...])
1. Vilket påstående beskriver bäst användningen av OrdinalEncoder
för att hantera kategoriska data i en datamängd?
2. Antag att du har en kategorisk kolumn med namnet 'Color'
. Är det lämpligt att använda OrdinalEncoder
för att koda dess värden?
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
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
Ordinalencoder
Svep för att visa menyn
Nästa fråga att ta itu med är kategoriska data. Det finns två huvudtyper av kategoriska variabler.
Ordinal data har en naturlig ordning, medan nominal data saknar detta. På grund av denna ordning kan kategorier kodas som siffror enligt deras rangordning.
Till exempel kan en 'rate'
-kolumn med värdena 'Terrible', 'Bad', 'OK', 'Good' och 'Great' kodas som:
- 'Terrible' → 0
- 'Bad' → 1
- 'OK' → 2
- 'Good' → 3
- 'Great' → 4
För att koda ordinal data används OrdinalEncoder
. Den omvandlar kategorier till heltal med start från 0.
OrdinalEncoder
används på samma sätt som andra transformatorer. Den största utmaningen är att ange argumentet categories
korrekt.
Tänk till exempel på en datamängd (inte penguins-datamängden) som innehåller en 'education'
-kolumn. Första steget är att kontrollera dess unika värden.
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())
En ordnad lista över kategoriska värden måste skapas, från 'HS-grad'
till 'Doctorate'
.
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'])
Vid transformering av flera funktioner med OrdinalEncoder
måste kategorierna för varje kolumn anges explicit. Detta görs via argumentet categories
:
encoder = OrdinalEncoder(categories=[col1_categories, col2_categories, ...])
1. Vilket påstående beskriver bäst användningen av OrdinalEncoder
för att hantera kategoriska data i en datamängd?
2. Antag att du har en kategorisk kolumn med namnet 'Color'
. Är det lämpligt att använda OrdinalEncoder
för att koda dess värden?
Tack för dina kommentarer!