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 aspetto da affrontare riguarda i dati categorici. Esistono due principali tipologie di variabili categoriche.

I dati ordinali presentano un ordine naturale, mentre i dati nominali ne sono privi. Grazie a questo ordine, le categorie possono essere codificate come numeri in base alla loro posizione nella classifica.

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 nel 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

Durante la trasformazione di più caratteristiche con OrdinalEncoder, è necessario specificare esplicitamente le categorie per ciascuna colonna. 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 codificare i suoi 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 codificare i suoi 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

Suggested prompts:

Can you explain the difference between ordinal and nominal data in more detail?

How do I determine the correct order for ordinal categories?

What happens if I don't specify the categories argument correctly in OrdinalEncoder?

Awesome!

Completion rate improved to 3.13

bookCodificatore Ordinale

Scorri per mostrare il menu

Il prossimo aspetto da affrontare riguarda i dati categorici. Esistono due principali tipologie di variabili categoriche.

I dati ordinali presentano un ordine naturale, mentre i dati nominali ne sono privi. Grazie a questo ordine, le categorie possono essere codificate come numeri in base alla loro posizione nella classifica.

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 nel 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

Durante la trasformazione di più caratteristiche con OrdinalEncoder, è necessario specificare esplicitamente le categorie per ciascuna colonna. 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 codificare i suoi 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 codificare i suoi valori?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 5
some-alt