Coursera Learner working on a presentation with Coursera logo and
Coursera Learner working on a presentation with Coursera logo and

L’encodage catégorique est une technique permettant d’encoder des données catégoriques. Gardez à l’esprit que les données catégorielles sont les ensembles de variables qui contiennent des variables d’étiquette au lieu de valeurs numériques. De nombreux algorithmes d’apprentissage automatique sont incapables de traiter les variables catégorielles. Il est donc important de coder les données sous une forme appropriée afin de pouvoir prétraiter ces variables. Comme vous devez ajuster et évaluer votre modèle, vous devez coder les données catégorielles et convertir toutes les variables d’entrée et de sortie en valeurs numériques. Ainsi, le modèle sera en mesure de comprendre et d’extraire les informations générant le résultat souhaité. Un ensemble différent de données varie en fonction du nombre de valeurs possibles.

La plupart des variables catégorielles sont nominales. Ces variables permettent de catégoriser et d’étiqueter les attributs. Les variables contiennent différentes valeurs, et chaque valeur représente une catégorie distincte. Par exemple, la couleur est une variable, et elle comprend différentes valeurs telles que bleu, vert, jaune. De même, un animal de compagnie est une variable, mais les chats et les chiens sont des valeurs distinctes représentant des catégories différentes. Dans un autre exemple, un lieu est une variable, mais le premier, le deuxième et le troisième sont des valeurs. Ces catégories peuvent avoir ou non une relation naturelle entre elles. Dans l’exemple ci-dessus d’un lieu, vous pouvez voir que le lieu est une variable et que ses catégories sont dans l’ordre naturel. Vous pouvez vous référer à ces types de variables comme à une variable ordinale.

Convertir des données d’étiquettes en données numériques

Il existe deux étapes pour convertir des données d’étiquettes ou des données catégorielles en données numériques :

1. Codage des nombres entiers

Dans cette première étape, vous attribuez une valeur entière à chaque valeur de catégorie. Par exemple, le bleu est égal à 1, le vert à 2 et le jaune à 3. Vous pouvez facilement inverser ce type d’encodage. Vous pouvez également appeler l’encodage des nombres entiers l’encodage des étiquettes. Pour de nombreuses variables, cette étape est suffisante pour traiter le modèle. Il existe une relation ordonnée naturelle entre les différentes valeurs entières. Vous pouvez relier cette relation à l’aide d’un algorithme d’apprentissage automatique. Par exemple, si vous considérez les variables ordinales telles que le lieu, les catégories sont déjà en ordre. Par conséquent, il n’est pas nécessaire de trouver la relation entre les variables. L’encodage des étiquettes est donc suffisant.

2. Encodage à un coup

Les variables catégorielles ne comportent pas de relation entre les variables comme les variables ordinales. Par conséquent, vous devez porter le processus d’encodage à un autre niveau. Pour ces types de données, l’encodage en nombres entiers ne suffit pas. Même si vous encodez les données sans ordre naturel, les catégories ne s’aligneront pas ensemble. En raison de la mauvaise performance, le résultat sera inattendu.

Par la suite, l’encodage à un coup est une technique à appliquer à la représentation en nombres entiers. Lors de l’encodage des données à l’aide de cette étape, le modèle va supprimer les variables entières. Ensuite, il inclut une nouvelle variable binaire pour chaque valeur entière unique. Par exemple, si nous considérons la variable de couleur, vous devez encoder 3 catégories. Pour obtenir ce résultat, vous placerez la valeur “1” pour la variable binaire de couleur et “0” pour l’autre.

Comment coder un codage à chaud

Vous pouvez comprendre le processus de codage avec l’exemple suivant. Afin de rendre les tâches simples et rapides, vous devez utiliser des bibliothèques. Les bibliothèques sont des codes pré-écrits qui permettent d’optimiser vos tâches. Sans l’utilisation de bibliothèques pertinentes, vos tâches deviendront fastidieuses. Commencez par inclure trois bibliothèques courantes dans votre projet. Ces bibliothèques sont sklearn, NumPy et pandas.

from sklearn.preprocessing import LabelEncoder, OneHotEncoder
import NumPy as np
import pandas as pd

Une fois que vous vous êtes équipé des outils, vous pouvez commencer à encoder. Pour comprendre le concept, utilisez cet ensemble de données inventé. Utilisez la bibliothèque panda pour saisir le jeu de données. Vous utiliserez .read_csv et le nom du fichier pour ouvrir le fichier.

dataset = pd.read_csv(‘made_up_thing.csv’)

Jusqu’à présent, vous avez effectué des tâches auto-explicatives. Cependant, l’étape suivante sera un peu plus délicate. Lorsque vous considérez une feuille de calcul comme une entrée, vous vous souciez ou non de certaines colonnes. Pour simplifier le processus, acceptons toutes les colonnes sauf la dernière. Après avoir considéré les colonnes à inclure, ajoutez le .iloc. Il s’agit d’une fonctionnalité de la bibliothèque de pandas. Vous allez l’utiliser pour choisir les données d’une colonne spécifique.

X = dataset.iloc[ :, :-1].values

Après avoir sélectionné le segment, dans le code ci-dessus, nous allons inclure les valeurs en utilisant la fonction .values. Vous pouvez le comprendre comme la première partie de ce code va sélectionner les valeurs, et la deuxième partie va prendre en compte les valeurs dans cette section.

Dans cet exemple, vous incluez un encodeur d’étiquettes ainsi qu’un encodeur à chaud. Comme un encodeur à chaud convertit les nombres en binaire, et que vous incluez la catégorie comme donnée, vous devez d’abord convertir les catégories en nombres. Par conséquent, nous utiliserons un codeur d’étiquettes avant un encodeur à chaud. Maintenant, configurez le codeur d’étiquettes en utilisant le code suivant :

le = LabelEncoder()

Après avoir converti les catégories en nombres, utilisez la fonction .fit_transform de sklearn. Parce que sklearn est une bibliothèque d’encodage à un coup, elle va convertir ces nombres en binaire pour que le modèle puisse les comprendre. Utilisez le code suivant pour encoder les premières colonnes :

X[ :, 0] = le.fit_transform(X[ :, 0])

Maintenant, vous devez inclure un codeur pour compléter l’encodage.

ohe = OneHotEncoder(categorical_features = [0])
X = ohe.fit_transform(X).toarray()

Categorical_features est une fonction permettant de spécifier la colonne à encoder avec l’encodage à un coup. Comme nous encodons la première colonne, nous incluons [0]. Maintenant la fonction fit_transform va convertir les variables sélectionnées en binaire.

Nous avons terminé la conversion. Gardez à l’esprit que nous incluons 0 pour la première colonne. Si vous voulez inclure d’autres colonnes, vous devez ajouter le numéro de la colonne. Pour ajouter plus d’une colonne, vous devez ajouter une “boucle for” comme suit :

le = LabelEncoder()#pour 10 colonnes
pour i dans l’intervalle(10) :
X[ :,i] = le.fit_transform(X[ :,i])

Conclusion

Pour résumer, l’encodage catégoriel est une technique qui convertit les données catégoriques en données binaires. Comme le modèle d’apprentissage automatique ne peut pas traiter les données catégorielles, vous devez les convertir en données numériques ou binaires, selon l’algorithme. Il y a deux étapes pour convertir des données catégorielles ou d’étiquettes en données binaires. L’encodage d’étiquettes est la première technique d’encodage catégoriel. Elle transforme les données sous forme numérique. Utilisez l’encodage des étiquettes pour les données ordinales. Pour les données non ordinales, utilisez la technique d’encodage à un coup. Il s’agit d’une méthode efficace pour convertir vos données sous forme binaire.