Ordinalenkoder
Neste problemstilling er kategoriske data. Det finnes to hovedtyper av kategoriske variabler.
Ordinal data har en naturlig rekkefølge, mens nominal data ikke har det. På grunn av denne rekkefølgen kan kategorier kodes som tall i henhold til deres rangering.
For eksempel kan en 'rate'-kolonne med verdiene 'Terrible', 'Bad', 'OK', 'Good' og 'Great' kodes som:
- 'Terrible' → 0
- 'Bad' → 1
- 'OK' → 2
- 'Good' → 3
- 'Great' → 4
For å kode ordinal data brukes OrdinalEncoder. Den konverterer kategorier til heltall som starter fra 0.
OrdinalEncoder brukes på samme måte som andre transformatorer. Den største utfordringen er å angi categories-argumentet korrekt.
For eksempel, vurder et datasett (ikke penguins-datasettet) som inneholder en 'education'-kolonne. Første steg er å sjekke dens unike verdier.
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 ordnet liste over kategoriske verdier må opprettes, fra 'HS-grad' til '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'])
Når du transformerer flere funksjoner med OrdinalEncoder, må kategoriene for hver kolonne spesifiseres eksplisitt. Dette gjøres gjennom argumentet categories:
encoder = OrdinalEncoder(categories=[col1_categories, col2_categories, ...])
1. Hvilken påstand beskriver best bruken av OrdinalEncoder for håndtering av kategoriske data i et datasett?
2. Anta at du har en kategorisk kolonne kalt 'Color'. Ville det vært hensiktsmessig å bruke OrdinalEncoder for å kode dens verdier?
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
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
Ordinalenkoder
Sveip for å vise menyen
Neste problemstilling er kategoriske data. Det finnes to hovedtyper av kategoriske variabler.
Ordinal data har en naturlig rekkefølge, mens nominal data ikke har det. På grunn av denne rekkefølgen kan kategorier kodes som tall i henhold til deres rangering.
For eksempel kan en 'rate'-kolonne med verdiene 'Terrible', 'Bad', 'OK', 'Good' og 'Great' kodes som:
- 'Terrible' → 0
- 'Bad' → 1
- 'OK' → 2
- 'Good' → 3
- 'Great' → 4
For å kode ordinal data brukes OrdinalEncoder. Den konverterer kategorier til heltall som starter fra 0.
OrdinalEncoder brukes på samme måte som andre transformatorer. Den største utfordringen er å angi categories-argumentet korrekt.
For eksempel, vurder et datasett (ikke penguins-datasettet) som inneholder en 'education'-kolonne. Første steg er å sjekke dens unike verdier.
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 ordnet liste over kategoriske verdier må opprettes, fra 'HS-grad' til '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'])
Når du transformerer flere funksjoner med OrdinalEncoder, må kategoriene for hver kolonne spesifiseres eksplisitt. Dette gjøres gjennom argumentet categories:
encoder = OrdinalEncoder(categories=[col1_categories, col2_categories, ...])
1. Hvilken påstand beskriver best bruken av OrdinalEncoder for håndtering av kategoriske data i et datasett?
2. Anta at du har en kategorisk kolonne kalt 'Color'. Ville det vært hensiktsmessig å bruke OrdinalEncoder for å kode dens verdier?
Takk for tilbakemeldingene dine!