Aperçu du problème
Dans les problèmes de classification d'apprentissage automatique, une grande proportion de variables catégorielles pose un défi, nécessitant des techniques de codage spécifiques. L'une de ces techniques est l'encodage à chaud, couramment utilisé avant de transmettre des données aux classificateurs.
Approche 1 : Utiliser pd.get_dummies de Pandas
Une approche courante consiste à utiliser pd. get_dummies de Pandas. Il convertit les colonnes catégorielles en plusieurs colonnes factices, chacune représentant une catégorie différente.
Exemple :
import pandas as pd s = pd.Series(list('abca')) pd.get_dummies(s) Out[]: a b c 0 1.0 0.0 0.0 1 0.0 1.0 0.0 2 0.0 0.0 1.0 3 1.0 0.0 0.0
Vous pouvez également spécifier un préfixe pour créer plusieurs colonnes pour chaque factice :
df = pd.DataFrame({ 'A':['a','b','a'], 'B':['b','a','c'] }) df Out[]: A B 0 a b 1 b a 2 a c one_hot = pd.get_dummies(df['B'], prefix='B') df = df.drop('B',axis = 1) df = df.join(one_hot) df Out[]: A Ba Bb Bc 0 a 0 1 0 1 b 1 0 0 2 a 0 0 1
Approche 2 : Emploi Scikit-learn
OneHotEncoder de Scikit-learn fournit une approche robuste et flexible pour un encodage à chaud.
Exemple :
from sklearn.preprocessing import OneHotEncoder enc = OneHotEncoder() enc.fit([[0, 0, 3], [1, 1, 0], [0, 2, 1], [1, 0, 2]]) enc.transform([[0, 1, 1]]).toarray() array([[ 1., 0., 0., 1., 0., 0., 1., 0., 0.]])
L'extrait de code fourni illustre l'ajustement et la transformation d'échantillons de données, démontrant le fonctionnement binaire à chaud. encodage.
Assurez-vous d'examiner attentivement les ressources de calcul requises pour un encodage à chaud, en particulier pour les grands ensembles de données. Des techniques efficaces de traitement des données et de sélection des fonctionnalités sont cruciales pour optimiser les performances et obtenir des résultats de classification réussis.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!