Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære OrdinalEncoder | Forbehandling av Data med Scikit-learn
Introduksjon til maskinlæring med Python

OrdinalEncoder

Sveip for å vise menyen

Det neste temaet er kategoriske data. Det finnes to hovedtyper av kategoriske variabler.

Typer av kategoriske data

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
Ordinal koding

OrdinalEncoder brukes på samme måte som andre transformatorer. Den største utfordringen er å angi argumentet categories korrekt.

For eksempel, vurder et datasett (ikke penguins-datasettet) som inneholder en 'education'-kolonne. Første steg er å sjekke unike verdier i denne kolonnen.

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())

En ordnet liste over kategoriske verdier må opprettes, fra 'HS-grad' til 'Doctorate'.

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'])

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 verdiene?

question mark

Hvilken påstand beskriver best bruken av OrdinalEncoder for håndtering av kategoriske data i et datasett?

Velg det helt riktige svaret

question mark

Anta at du har en kategorisk kolonne kalt 'Color'. Ville det vært hensiktsmessig å bruke OrdinalEncoder for å kode verdiene?

Velg det helt riktige svaret

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 5

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Seksjon 2. Kapittel 5
some-alt