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

bookOrdinalencoder

Det næste problem, der skal håndteres, er kategoriske data. Der findes to hovedtyper af kategoriske variabler.

Ordinal data har en naturlig rækkefølge, mens nominal data ikke har det. På grund af denne rækkefølge kan kategorier kodes som tal i henhold til deres rangering.

For eksempel kan en 'rate'-kolonne med værdierne 'Terrible', 'Bad', 'OK', 'Good' og 'Great' kodes som:

  • 'Terrible' → 0
  • 'Bad' → 1
  • 'OK' → 2
  • 'Good' → 3
  • 'Great' → 4

Til kodning af ordinal data anvendes OrdinalEncoder. Den konverterer kategorier til heltal startende fra 0.

OrdinalEncoder anvendes på samme måde som andre transformere. Den største udfordring er at angive argumentet categories korrekt.

For eksempel, overvej et datasæt (ikke penguins datasættet), der indeholder en 'education'-kolonne. Første trin er at kontrollere dens unikke værdier.

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 af kategoriske værdier skal oprettes, der spænder 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 funktioner med OrdinalEncoder, skal kategorierne for hver kolonne angives eksplicit. Dette gøres via argumentet categories:

encoder = OrdinalEncoder(categories=[col1_categories, col2_categories, ...])

1. Hvilken erklæring beskriver bedst brugen af OrdinalEncoder til håndtering af kategoriske data i et datasæt?

2. Antag, at du har en kategorisk kolonne ved navn 'Color'. Ville det være passende at bruge OrdinalEncoder til at kode dens værdier?

question mark

Hvilken erklæring beskriver bedst brugen af OrdinalEncoder til håndtering af kategoriske data i et datasæt?

Select the correct answer

question mark

Antag, at du har en kategorisk kolonne ved navn 'Color'. Ville det være passende at bruge OrdinalEncoder til at kode dens værdier?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 5

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Awesome!

Completion rate improved to 3.13

bookOrdinalencoder

Stryg for at vise menuen

Det næste problem, der skal håndteres, er kategoriske data. Der findes to hovedtyper af kategoriske variabler.

Ordinal data har en naturlig rækkefølge, mens nominal data ikke har det. På grund af denne rækkefølge kan kategorier kodes som tal i henhold til deres rangering.

For eksempel kan en 'rate'-kolonne med værdierne 'Terrible', 'Bad', 'OK', 'Good' og 'Great' kodes som:

  • 'Terrible' → 0
  • 'Bad' → 1
  • 'OK' → 2
  • 'Good' → 3
  • 'Great' → 4

Til kodning af ordinal data anvendes OrdinalEncoder. Den konverterer kategorier til heltal startende fra 0.

OrdinalEncoder anvendes på samme måde som andre transformere. Den største udfordring er at angive argumentet categories korrekt.

For eksempel, overvej et datasæt (ikke penguins datasættet), der indeholder en 'education'-kolonne. Første trin er at kontrollere dens unikke værdier.

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 af kategoriske værdier skal oprettes, der spænder 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 funktioner med OrdinalEncoder, skal kategorierne for hver kolonne angives eksplicit. Dette gøres via argumentet categories:

encoder = OrdinalEncoder(categories=[col1_categories, col2_categories, ...])

1. Hvilken erklæring beskriver bedst brugen af OrdinalEncoder til håndtering af kategoriske data i et datasæt?

2. Antag, at du har en kategorisk kolonne ved navn 'Color'. Ville det være passende at bruge OrdinalEncoder til at kode dens værdier?

question mark

Hvilken erklæring beskriver bedst brugen af OrdinalEncoder til håndtering af kategoriske data i et datasæt?

Select the correct answer

question mark

Antag, at du har en kategorisk kolonne ved navn 'Color'. Ville det være passende at bruge OrdinalEncoder til at kode dens værdier?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 2. Kapitel 5
some-alt