Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Encodeur ordinal | Prétraitement des Données avec Scikit-learn
Introduction à l'Apprentissage Automatique avec Python

Encodeur ordinal

Glissez pour afficher le menu

La prochaine question à traiter concerne les données catégorielles. Il existe deux principaux types de variables catégorielles.

Types de données catégorielles

Les données ordinales possèdent un ordre naturel, tandis que les données nominales n'en ont pas. Grâce à cet ordre, les catégories peuvent être codées sous forme de nombres selon leur classement.

Par exemple, une colonne 'rate' avec les valeurs 'Terrible', 'Bad', 'OK', 'Good' et 'Great' peut être codée ainsi :

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

Pour encoder les données ordinales, on utilise le OrdinalEncoder. Il convertit les catégories en entiers à partir de 0.

Encodeur ordinal
Encodage ordinal

OrdinalEncoder s'applique de la même manière que les autres transformateurs. La principale difficulté réside dans la spécification correcte de l'argument categories.

Par exemple, considérer un jeu de données (différent du jeu de données penguins) contenant une colonne 'education'. La première étape consiste à vérifier ses valeurs uniques.

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

Une liste ordonnée de valeurs catégorielles doit être créée, allant de 'HS-grad' à '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'])

Lors de la transformation de plusieurs caractéristiques avec OrdinalEncoder, les catégories pour chaque colonne doivent être spécifiquement indiquées. Cela se fait via l'argument categories :

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

1. Quelle affirmation décrit le mieux l'utilisation de OrdinalEncoder pour traiter les données catégorielles dans un jeu de données ?

2. Supposons que vous ayez une colonne catégorielle nommée 'Color'. Serait-il approprié d'utiliser OrdinalEncoder pour encoder ses valeurs ?

question mark

Quelle affirmation décrit le mieux l'utilisation de OrdinalEncoder pour traiter les données catégorielles dans un jeu de données ?

Sélectionnez la réponse correcte

question mark

Supposons que vous ayez une colonne catégorielle nommée 'Color'. Serait-il approprié d'utiliser OrdinalEncoder pour encoder ses valeurs ?

Sélectionnez la réponse correcte

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 5

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Section 2. Chapitre 5
some-alt