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

Det neste problemet vi skal løse er kategoriske data. Husk at det finnes to typer kategoriske data.

Ordinal data følger en naturlig rekkefølge, mens nominal ikke gjør det. Siden det finnes en naturlig rekkefølge, kan vi kode kategoriene til tall i denne rekkefølgen.

For eksempel kan vi kode kolonnen 'rate' som inneholder verdiene 'Terrible', 'Bad', 'OK', 'Good' og 'Great' slik:

  • 'Terrible' – 0;
  • 'Bad' – 1;
  • 'OK' – 2;
  • 'Good' – 3;
  • 'Great' – 4.

For å kode ordinal data brukes OrdinalEncoder. Den koder bare kategoriene til 0, 1, 2, ... .

OrdinalEncoder er enkel å bruke, som alle andre transformere. Den eneste utfordringen er å angi argumentet categories korrekt.

La oss se på et eksempel. Vi har et datasett (ikke penguins-datasettet) med en kolonne kalt 'education'. Nå skal vi undersøke de unike verdiene.

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

Vi må lage en liste med ordnede kategoriske verdier, i dette tilfellet 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

Hvis du trenger å transformere flere funksjoner ved hjelp av OrdinalEncoder, er det viktig å spesifisere kategoriene for hver kolonne. Dette kan gjøres ved å bruke argumentet categories som vist nedenfor:

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?

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ært hensiktsmessig å bruke OrdinalEncoder for å kode dens verdier?

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

Awesome!

Completion rate improved to 3.13

bookOrdinalenkoder

Sveip for å vise menyen

Det neste problemet vi skal løse er kategoriske data. Husk at det finnes to typer kategoriske data.

Ordinal data følger en naturlig rekkefølge, mens nominal ikke gjør det. Siden det finnes en naturlig rekkefølge, kan vi kode kategoriene til tall i denne rekkefølgen.

For eksempel kan vi kode kolonnen 'rate' som inneholder verdiene 'Terrible', 'Bad', 'OK', 'Good' og 'Great' slik:

  • 'Terrible' – 0;
  • 'Bad' – 1;
  • 'OK' – 2;
  • 'Good' – 3;
  • 'Great' – 4.

For å kode ordinal data brukes OrdinalEncoder. Den koder bare kategoriene til 0, 1, 2, ... .

OrdinalEncoder er enkel å bruke, som alle andre transformere. Den eneste utfordringen er å angi argumentet categories korrekt.

La oss se på et eksempel. Vi har et datasett (ikke penguins-datasettet) med en kolonne kalt 'education'. Nå skal vi undersøke de unike verdiene.

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

Vi må lage en liste med ordnede kategoriske verdier, i dette tilfellet 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

Hvis du trenger å transformere flere funksjoner ved hjelp av OrdinalEncoder, er det viktig å spesifisere kategoriene for hver kolonne. Dette kan gjøres ved å bruke argumentet categories som vist nedenfor:

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?

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ært hensiktsmessig å bruke OrdinalEncoder for å kode dens verdier?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 2. Kapittel 5
some-alt