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

bookOrdinalenkoder

Neste tema som må tas opp 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 argumentet categories korrekt.

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

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

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

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ære 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?

Select the correct answer

question mark

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

Select the correct answer

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

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

bookOrdinalenkoder

Sveip for å vise menyen

Neste tema som må tas opp 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 argumentet categories korrekt.

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

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

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

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ære 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?

Select the correct answer

question mark

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

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 5
some-alt