Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Ordinalencoder | Osio
Koneoppimisen Perusteet

bookOrdinalencoder

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

Ordinaalisella datalla on luonnollinen järjestys, kun taas nominaalisella datalla ei ole. Tämän järjestyksen vuoksi kategoriat voidaan koodata numeroiksi niiden sijoituksen mukaan.

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

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

Ordinaalisen datan koodaamiseen käytetään OrdinalEncoder-muunninta. Se muuntaa kategoriat kokonaisluvuiksi alkaen nollasta.

OrdinalEncoder-muunninta käytetään samalla tavalla kuin muita muuntimia. Suurin haaste on määrittää categories-argumentti oikein.

Esimerkiksi, tarkastellaan datajoukkoa (ei penguins-dataa), 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())
copy

Järjestetty luettelo kategorisista arvoista tulee luoda, 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'])
copy

Kun useita ominaisuuksia muunnetaan OrdinalEncoder-muuntimella, 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-muuntimen käyttöä kategorisen datan käsittelyssä aineistossa?

2. Oletetaan, että sinulla on kategorinen sarake nimeltä 'Color'. Olisiko tarkoituksenmukaista käyttää OrdinalEncoder-muunninta sen arvojen koodaamiseen?

question mark

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

Select the correct answer

question mark

Oletetaan, että sinulla on kategorinen sarake nimeltä 'Color'. Olisiko tarkoituksenmukaista käyttää OrdinalEncoder-muunninta sen arvojen koodaamiseen?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 10

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

bookOrdinalencoder

Pyyhkäise näyttääksesi valikon

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

Ordinaalisella datalla on luonnollinen järjestys, kun taas nominaalisella datalla ei ole. Tämän järjestyksen vuoksi kategoriat voidaan koodata numeroiksi niiden sijoituksen mukaan.

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

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

Ordinaalisen datan koodaamiseen käytetään OrdinalEncoder-muunninta. Se muuntaa kategoriat kokonaisluvuiksi alkaen nollasta.

OrdinalEncoder-muunninta käytetään samalla tavalla kuin muita muuntimia. Suurin haaste on määrittää categories-argumentti oikein.

Esimerkiksi, tarkastellaan datajoukkoa (ei penguins-dataa), 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())
copy

Järjestetty luettelo kategorisista arvoista tulee luoda, 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'])
copy

Kun useita ominaisuuksia muunnetaan OrdinalEncoder-muuntimella, 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-muuntimen käyttöä kategorisen datan käsittelyssä aineistossa?

2. Oletetaan, että sinulla on kategorinen sarake nimeltä 'Color'. Olisiko tarkoituksenmukaista käyttää OrdinalEncoder-muunninta sen arvojen koodaamiseen?

question mark

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

Select the correct answer

question mark

Oletetaan, että sinulla on kategorinen sarake nimeltä 'Color'. Olisiko tarkoituksenmukaista käyttää OrdinalEncoder-muunninta sen arvojen koodaamiseen?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 10
some-alt