Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Codificatore Ordinale | Preprocessing Dei Dati con Scikit-learn
Introduzione al ML con Scikit-Learn

bookCodificatore Ordinale

Il prossimo problema da affrontare riguarda i dati categorici. Esistono due principali tipi di variabili categoriche.

I dati ordinali hanno un ordine naturale, mentre i dati nominali non lo hanno. Grazie a questo ordine, le categorie possono essere codificate come numeri secondo la loro posizione.

Ad esempio, una colonna 'rate' con i valori 'Terrible', 'Bad', 'OK', 'Good' e 'Great' può essere codificata come:

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

Per codificare i dati ordinali, si utilizza OrdinalEncoder. Questo trasforma le categorie in numeri interi a partire da 0.

OrdinalEncoder viene applicato nello stesso modo degli altri trasformatori. La principale difficoltà consiste nello specificare correttamente l'argomento categories.

Ad esempio, si consideri un dataset (diverso dal dataset penguins) che contiene una colonna 'education'. Il primo passo è verificare i suoi valori unici.

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

È necessario creare un elenco ordinato di valori categorici, che va da 'HS-grad' a '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

Quando si trasformano più caratteristiche con OrdinalEncoder, le categorie per ogni colonna devono essere specificate esplicitamente. Questo viene fatto tramite l'argomento categories:

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

1. Quale affermazione descrive meglio l'utilizzo di OrdinalEncoder per la gestione dei dati categorici in un dataset?

2. Supponiamo di avere una colonna categorica chiamata 'Color'. Sarebbe appropriato utilizzare OrdinalEncoder per codificarne i valori?

question mark

Quale affermazione descrive meglio l'utilizzo di OrdinalEncoder per la gestione dei dati categorici in un dataset?

Select the correct answer

question mark

Supponiamo di avere una colonna categorica chiamata 'Color'. Sarebbe appropriato utilizzare OrdinalEncoder per codificarne i valori?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 5

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Awesome!

Completion rate improved to 3.13

bookCodificatore Ordinale

Scorri per mostrare il menu

Il prossimo problema da affrontare riguarda i dati categorici. Esistono due principali tipi di variabili categoriche.

I dati ordinali hanno un ordine naturale, mentre i dati nominali non lo hanno. Grazie a questo ordine, le categorie possono essere codificate come numeri secondo la loro posizione.

Ad esempio, una colonna 'rate' con i valori 'Terrible', 'Bad', 'OK', 'Good' e 'Great' può essere codificata come:

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

Per codificare i dati ordinali, si utilizza OrdinalEncoder. Questo trasforma le categorie in numeri interi a partire da 0.

OrdinalEncoder viene applicato nello stesso modo degli altri trasformatori. La principale difficoltà consiste nello specificare correttamente l'argomento categories.

Ad esempio, si consideri un dataset (diverso dal dataset penguins) che contiene una colonna 'education'. Il primo passo è verificare i suoi valori unici.

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

È necessario creare un elenco ordinato di valori categorici, che va da 'HS-grad' a '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

Quando si trasformano più caratteristiche con OrdinalEncoder, le categorie per ogni colonna devono essere specificate esplicitamente. Questo viene fatto tramite l'argomento categories:

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

1. Quale affermazione descrive meglio l'utilizzo di OrdinalEncoder per la gestione dei dati categorici in un dataset?

2. Supponiamo di avere una colonna categorica chiamata 'Color'. Sarebbe appropriato utilizzare OrdinalEncoder per codificarne i valori?

question mark

Quale affermazione descrive meglio l'utilizzo di OrdinalEncoder per la gestione dei dati categorici in un dataset?

Select the correct answer

question mark

Supponiamo di avere una colonna categorica chiamata 'Color'. Sarebbe appropriato utilizzare OrdinalEncoder per codificarne i valori?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 5
some-alt