Personnaliser les préférences

Nous utilisons des cookies pour vous aider à naviguer efficacement et à exécuter certaines fonctions. Vous trouverez ci-dessous des informations détaillées sur tous les cookies sous chaque catégorie de consentement.

Les cookies classés comme « Nécessaires » sont stockés sur votre navigateur car ils sont essentiels pour activer les fonctionnalités de base du site.... 

Toujours actif

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

Aucun cookie à afficher.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

Aucun cookie à afficher.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

Aucun cookie à afficher.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

Aucun cookie à afficher.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

Aucun cookie à afficher.

Comment effectuer un encodage One-Hot en Python



L’encodage à chaud est utilisé pour convertir des variables catégorielles dans un format pouvant être facilement utilisé par les algorithmes d’apprentissage automatique .

L’idée de base du codage one-hot est de créer de nouvelles variables qui prennent les valeurs 0 et 1 pour représenter les valeurs catégorielles d’origine.

Par exemple, l’image suivante montre comment nous effectuerions un codage à chaud pour convertir une variable catégorielle contenant des noms d’équipe en de nouvelles variables contenant uniquement des valeurs 0 et 1 :

L’exemple étape par étape suivant montre comment effectuer un encodage à chaud pour cet ensemble de données exact en Python.

Étape 1 : Créer les données

Tout d’abord, créons le DataFrame pandas suivant :

import pandas as pd

#create DataFrame
df = pd.DataFrame({'team': ['A', 'A', 'B', 'B', 'B', 'B', 'C', 'C'],
                   'points': [25, 12, 15, 14, 19, 23, 25, 29]})

#view DataFrame
print(df)

  team  points
0    A      25
1    A      12
2    B      15
3    B      14
4    B      19
5    B      23
6    C      25
7    C      29

Étape 2 : Effectuer un encodage à chaud

Ensuite, importons la fonction OneHotEncoder() depuis la bibliothèque sklearn et utilisons-la pour effectuer un encodage à chaud sur la variable ‘team’ dans le DataFrame pandas :

from sklearn.preprocessing import OneHotEncoder

#creating instance of one-hot-encoder
encoder = OneHotEncoder(handle_unknown='ignore')

#perform one-hot encoding on 'team' column 
encoder_df = pd.DataFrame(encoder.fit_transform(df[['team']]).toarray())

#merge one-hot encoded columns back with original DataFrame
final_df = df.join(encoder_df)

#view final df
print(final_df)

  team  points    0    1    2
0    A      25  1.0  0.0  0.0
1    A      12  1.0  0.0  0.0
2    B      15  0.0  1.0  0.0
3    B      14  0.0  1.0  0.0
4    B      19  0.0  1.0  0.0
5    B      23  0.0  1.0  0.0
6    C      25  0.0  0.0  1.0
7    C      29  0.0  0.0  1.0

Notez que trois nouvelles colonnes ont été ajoutées au DataFrame puisque la colonne « équipe » d’origine contenait trois valeurs uniques.

Remarque : Vous pouvez trouver la documentation complète de la fonction OneHotEncoder() ici .

Étape 3 : Supprimez la variable catégorielle d’origine

Enfin, nous pouvons supprimer la variable ‘team’ d’origine du DataFrame puisque nous n’en avons plus besoin :

#drop 'team' column
final_df.drop('team', axis=1, inplace=True)

#view final df
print(final_df)

   points    0    1    2
0      25  1.0  0.0  0.0
1      12  1.0  0.0  0.0
2      15  0.0  1.0  0.0
3      14  0.0  1.0  0.0
4      19  0.0  1.0  0.0
5      23  0.0  1.0  0.0
6      25  0.0  0.0  1.0
7      29  0.0  0.0  1.0

Connexe : Comment supprimer des colonnes dans Pandas (4 méthodes)

On pourrait également renommer les colonnes du DataFrame final pour les rendre plus faciles à lire :

#rename columns
final_df.columns = ['points', 'teamA', 'teamB', 'teamC']

#view final df
print(final_df)

   points  teamA  teamB  teamC
0      25    1.0    0.0    0.0
1      12    1.0    0.0    0.0
2      15    0.0    1.0    0.0
3      14    0.0    1.0    0.0
4      19    0.0    1.0    0.0
5      23    0.0    1.0    0.0
6      25    0.0    0.0    1.0
7      29    0.0    0.0    1.0

L’encodage à chaud est terminé et nous pouvons maintenant insérer ce DataFrame pandas dans n’importe quel algorithme d’apprentissage automatique que nous souhaitons.

Ressources additionnelles

Comment calculer une moyenne tronquée en Python
Comment effectuer une régression linéaire en Python
Comment effectuer une régression logistique en Python

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *