Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele OrdinalEncoder | Datan Esikäsittely Scikit-learnilla
Johdatus koneoppimiseen Pythonilla

OrdinalEncoder

Pyyhkäise näyttääksesi valikon

Seuraava käsiteltävä asia on kategorinen data. Kategorisia muuttujia on kahta päätyyppiä.

Kategorisen datan tyypit

Järjestysasteikollisella (ordinaalisella) datalla on luonnollinen järjestys, kun taas nimellisellä (nominaalisella) datalla ei ole. Tämän järjestyksen ansiosta kategoriat voidaan koodata numeroiksi niiden järjestyksen mukaan.

Esimerkiksi 'rate'-sarakkeen arvot 'Terrible', 'Bad', 'OK', 'Good' ja 'Great' voidaan koodata seuraavasti:

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

Järjestysasteikollisen datan koodaamiseen käytetään OrdinalEncoder-luokkaa. Se muuntaa kategoriat kokonaisluvuiksi alkaen nollasta.

OrdinalEncoder
Järjestysenkoodaus

OrdinalEncoder-muuntajaa käytetään samalla tavalla kuin muita muuntajia. Suurin haaste liittyy categories-argumentin oikeaan määrittelyyn.

Esimerkiksi, tarkastellaan tietojoukkoa (ei penguins-tietojoukkoa), jossa on 'education'-sarake. Ensimmäinen vaihe on tarkistaa sen uniikit arvot.

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

Järjestetty luettelo kategorisista arvoista, alkaen 'HS-grad' ja päättyen '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'])

Kun useita ominaisuuksia muunnetaan OrdinalEncoder-luokan avulla, jokaisen sarakkeen kategoriat on määriteltävä yksiselitteisesti. Tämä tehdään categories-argumentilla:

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

1. Mikä väittämä kuvaa parhaiten OrdinalEncoder-luokan käyttöä kategorisen datan käsittelyssä aineistossa?

2. Oletetaan, että sinulla on kategorinen sarake nimeltä 'Color'. Olisiko sopivaa käyttää OrdinalEncoder-luokkaa sen arvojen koodaukseen?

question mark

Mikä väittämä kuvaa parhaiten OrdinalEncoder-luokan käyttöä kategorisen datan käsittelyssä aineistossa?

Valitse oikea vastaus

question mark

Oletetaan, että sinulla on kategorinen sarake nimeltä 'Color'. Olisiko sopivaa käyttää OrdinalEncoder-luokkaa sen arvojen koodaukseen?

Valitse oikea vastaus

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 5

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Osio 2. Luku 5
some-alt