Aller au contenu

Données catégorielles

Le prétraitement des données est une étape cruciale dans tout projet d'apprentissage automatique. Il consiste à nettoyer et à transformer les données brutes en un format pouvant être facilement analysé par les algorithmes d'apprentissage automatique. Python offre une vaste gamme de techniques de prétraitement qui peuvent aider à affiner la qualité des données et les performances du modèle. Ce chapitre couvre les étapes fondamentales de prétraitement, en mettant principalement l'accent sur la préparation des données pour la gestion des variables catégorielles.

Importation des données

La première étape de toute tâche de prétraitement des données est l'importation des données. La bibliothèque pandas de Python offre un moyen simple de lire des données à partir de différents formats de fichiers. La fonction read_csv() peut être utilisée pour lire des données à partir d'un fichier CSV.

python
import pandas as pd
df = pd.read_csv('data.csv')

Nettoyage des données

Le nettoyage des données est un aspect essentiel du prétraitement des données. Il consiste à identifier et à gérer les données manquantes, les valeurs aberrantes et les anomalies. La bibliothèque Pandas fournit plusieurs méthodes de nettoyage des données, telles que fillna(), dropna() et replace().

python
# Fill missing values with a default
df['column'] = df['column'].fillna(0)

# Drop rows with any missing values
df = df.dropna()

# Replace specific values
df['column'] = df['column'].replace('old_value', 'new_value')

Transformation des données

La transformation des données est le processus de conversion des données brutes en un format adapté à l'analyse. Certaines des techniques de transformation des données couramment utilisées sont la mise à l'échelle, l'encodage et la normalisation.

Mise à l'échelle

La mise à l'échelle est utilisée pour ramener les caractéristiques d'un jeu de données à une échelle similaire. Cette technique est utile lorsque les caractéristiques ont des plages de valeurs différentes. Les techniques de mise à l'échelle les plus couramment utilisées sont StandardScaler et MinMaxScaler.

Encodage

L'encodage est le processus de conversion des variables catégorielles en valeurs numériques. Les techniques d'encodage les plus couramment utilisées sont l'encodage ordinal et l'encodage one-hot.

python
from sklearn.preprocessing import OrdinalEncoder, OneHotEncoder
import pandas as pd

# Ordinal Encoding (for ordered categories)
encoder = OrdinalEncoder()
df['category'] = encoder.fit_transform(df[['category']])

# One-Hot Encoding (for unordered categories)
ohe = OneHotEncoder(sparse_output=False, handle_unknown='ignore')
encoded_array = ohe.fit_transform(df[['category']])
# Convert the numpy array back to a DataFrame with proper column names
encoded_df = pd.DataFrame(encoded_array, columns=ohe.get_feature_names_out(['category']))

Note sur la fuite de données : Toujours ajuster les encodeurs uniquement sur les données d'entraînement, puis transformer les données d'entraînement et de test. Cela empêche les informations de l'ensemble de test d'influencer le modèle.

Gestion des catégories non vues : Utilisez handle_unknown='ignore' dans OneHotEncoder pour éviter les erreurs lorsque l'ensemble de test contient des catégories non vues pendant l'entraînement.

Normalisation

La normalisation est le processus de mise à l'échelle des caractéristiques numériques sur une plage fixe, généralement [0, 1]. La standardisation, en revanche, transforme les caractéristiques pour qu'elles aient une moyenne de zéro et un écart type de un. Cette technique est utile lorsque les caractéristiques ont différentes unités de mesure ou lorsque les algorithmes supposent des données normalement distribuées.

Sélection des caractéristiques

La sélection des caractéristiques est le processus de sélection des caractéristiques les plus pertinentes pour un modèle d'apprentissage automatique. Elle consiste à identifier les prédicteurs les plus significatifs et à supprimer les moins importants. La technique de sélection des caractéristiques la plus couramment utilisée est SelectKBest.

python
# Prepare features (X) and target (y) from the dataframe
X = df.drop('target', axis=1)
y = df['target']

from sklearn.feature_selection import SelectKBest, f_classif

# Select the top 3 features based on ANOVA F-value
selector = SelectKBest(score_func=f_classif, k=3)
X_new = selector.fit_transform(X, y)

Conclusion

Ce chapitre a présenté les étapes clés du prétraitement, y compris le nettoyage des données, la transformation et la sélection des caractéristiques. En appliquant ces techniques, vous pouvez améliorer la qualité des données et optimiser les performances du modèle, en particulier lors de la préparation de jeux de données pour l'analyse des variables catégorielles. Une gestion appropriée des données catégorielles avec un encodage adapté et l'évitement des fuites de données garantissent des pipelines d'apprentissage automatique robustes et reproductibles.

Trouvez-vous cela utile?

Aperçu dual-run — comparez avec les routes Symfony en production.