Maison >développement back-end >Tutoriel Python >Comment One Hot Encoding traite-t-il les variables catégorielles en Python ?

Comment One Hot Encoding traite-t-il les variables catégorielles en Python ?

DDD
DDDoriginal
2024-11-11 12:38:03354parcourir

How does One Hot Encoding address categorical variables in Python?

Un codage à chaud en Python : traitement des variables catégorielles

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn