L'apprentissage automatique rencontre souvent le défi de gérer les variables catégorielles (comme les couleurs, les types de produits ou les emplacements) en raison de la préférence des algorithmes pour l'entrée numérique. Le codage à un hot offre une solution robuste.
Le codage à un hot transforme les données catégorielles en vecteurs numériques. Chaque catégorie unique obtient sa propre colonne binaire; Un «1» signifie sa présence, et «0» son absence. Cet article explore le codage à un hot, ses avantages et la mise en œuvre pratique des python à l'aide de pandas et de scikit-learn. Intéressé par un programme structuré d'apprentissage automatique? Explorez ces principes d'apprentissage automatique de quatre plats avec piste Python.
Comprendre un codage à un hot
codage à un colocalité convertit les variables catégorielles en un format convivial pour l'apprentissage en machine, augmentant la précision de la prédiction. Il crée de nouvelles colonnes binaires pour chaque catégorie unique dans une fonctionnalité. Un «1» ou «0» indique la présence ou l'absence de la catégorie.
Considérons un ensemble de données avec une fonctionnalité «couleur» (rouge, vert, bleu). Un codage à un hot le transforme comme suit:
La colonne d'origine «couleur» est remplacée par trois colonnes binaires, une pour chaque couleur. Un «1» montre la présence de la couleur dans cette ligne.
Avantages du codage à un hot
Le codage d'un hot est crucial dans le prétraitement des données car il:
Implémentation de codage à un hot dans Python
pandas et scikit-learn simplifier un codage à un hot en python.
pandas get_dummies()
: Une méthode simple pour le codage simple.
import pandas as pd data = {'Color': ['Red', 'Green', 'Blue', 'Red']} df = pd.DataFrame(data) df_encoded = pd.get_dummies(df, dtype=int) print(df_encoded)
Scikit-Learn's OneHotEncoder
: offre plus de contrôle, en particulier pour les scénarios complexes.
from sklearn.preprocessing import OneHotEncoder import numpy as np enc = OneHotEncoder(handle_unknown='ignore') X = [['Red'], ['Green'], ['Blue']] enc.fit(X) result = enc.transform([['Red']]).toarray() print(result)
<code>[[1. 0. 0.]]</code>
Gestion des fonctionnalités de haute cardinalité
Les caractéristiques catégorielles de haute-cardinalité (de nombreuses valeurs uniques) présentent un défi ("malédiction de la dimensionnalité"). Les solutions incluent:
meilleures pratiques
OneHotEncoder
gère les catégories invisibles pendant le déploiement du modèle en utilisant handle_unknown='ignore'
. OneHotEncoder
vs get_dummies()
: Choisissez en fonction de la complexité; get_dummies()
pour la simplicité, OneHotEncoder
pour plus de contrôle. Conclusion
Le codage à un hot est une technique vitale pour préparer des données catégoriques pour l'apprentissage automatique. Il améliore la précision et l'efficacité du modèle. Les bibliothèques Python comme Pandas et Scikit-Learn fournissent une implémentation efficace. N'oubliez pas de considérer la dimensionnalité et les catégories inconnues. Pour un apprentissage plus approfondi, explorez ce prétraitement pour l'apprentissage automatique dans Python Course.
faqs
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!