Encodage d'étiquettes

Travailler avec des données catégorielles en Python

Kasey Jones

Research Data Scientist

Qu'est-ce que l'encodage d'étiquettes ?

L'essentiel :

  • Attribue à chaque catégorie un entier de 0 à n - 1, où n est le nombre de catégories
  • Le code -1 est réservé aux valeurs manquantes
  • Peut réduire l'utilisation de la mémoire
  • Souvent utilisé dans les sondages

La limite :

  • Pas la meilleure méthode pour le machine learning (voir la prochaine leçon)
Travailler avec des données catégorielles en Python

Créer des codes

Convertir en catégorie et trier par nom de fabricant

used_cars['manufacturer_name'] = used_cars['manufacturer_name'].astype("category")

Utiliser .cat.codes

used_cars['manufacturer_code'] = used_cars['manufacturer_name'].cat.codes
Travailler avec des données catégorielles en Python

Vérifier le résultat

print(used_cars[['manufacturer_name', 'manufacturer_code']])
      manufacturer_name  manufacturer_code
0                Subaru                 45
1                Subaru                 45
2                Subaru                 45
...                 ...                ...
38526          Chrysler                  8
38527          Chrysler                  8
Travailler avec des données catégorielles en Python

Dictionnaires de codes / dictionnaires de données

Exemple de dictionnaire de codes de l'American Housing Survey.

1 https://www.census.gov/data-tools/demo/codebook/ahs/ahsdict.html
Travailler avec des données catégorielles en Python

Créer un dictionnaire de codes

codes = used_cars['manufacturer_name'].cat.codes
categories = used_cars['manufacturer_name']
name_map = dict(zip(codes, categories))

print(name_map)
{45: 'Subaru',
 24: 'LADA',
 12: 'Dodge',
 ...
}
Travailler avec des données catégorielles en Python

Utiliser un dictionnaire de codes

Création des codes :

used_cars['manufacturer_code'] = used_cars['manufacturer_name'].cat.codes

Revenir aux valeurs d'origine :

used_cars['manufacturer_code'].map(name_map)
0        Acura
1        Acura
2        Acura
...
1 https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.map.html
Travailler avec des données catégorielles en Python

Codage booléen

Trouver tous les types de carrosserie contenant « van » :

# Code de la leçon précédente :
used_cars["body_type"].str.contains("van", regex=False)

Créer un codage booléen :

used_cars["van_code"] = np.where(
  used_cars["body_type"].str.contains("van", regex=False), 1, 0)

used_cars["van_code"].value_counts()
0    34115
1     4416
Name: van_code, dtype: int64
Travailler avec des données catégorielles en Python

Passons à la pratique !

Travailler avec des données catégorielles en Python

Preparing Video For Download...