Preprocessing et Feature Engineering: booster les performances d'un modèle IA

Auteur: Mohamed CHINY Durée necessaire pour le cours de Preprocessing et Feature Engineering: booster les performances d'un modèle IA Niveau recommandé pour le cours de Preprocessing et Feature Engineering: booster les performances d'un modèle IA Supports vidéo non disponibles pour ce cours Exercices de renforcement non disponibles pour ce cours Quiz non disponibles pour ce cours

Page 14: Feature Selection supervisée par ANOVA sur le dataset Breast Cancer

Toutes les pages

De la variance aux tests statistiques: vers une sélection supervisée des features

Approches statistiques pour la sélection supervisée des caractéristiques

Dans une démarche de sélection supervisée des variables, plusieurs méthodes statistiques peuvent être mobilisées selon la nature des données:
  • La corrélation de Pearson: permet de mesurer la force de la relation linéaire entre une variable continue et la cible, ce qui est utile pour repérer les attributs fortement corrélés mais reste limité aux dépendances linéaires.
  • Le test du Chi²: est adapté aux variables discrètes ou catégorielles. Ce test évalue l’indépendance entre les modalités d’une variable et les classes de la cible, mais nécessite souvent une discrétisation préalable des données continues.
  • Test d'ANOVA: vérifie si les moyennes des variables diffèrent significativement entre les classes, ce qui permet d’identifier les caractéristiques les plus discriminantes.

Contrairement à une sélection non supervisée par variance, ces approches exploitent directement l’information de la cible, et l’ANOVA en particulier garantit que les variables retenues sont statistiquement pertinentes pour la classification.

ANOVA comme approche privilégiée pour la sélection de caractéristiques continues en classification binaire

Dans le cadre du jeu de données Breast Cancer, l’ANOVA constitue une méthode particulièrement pertinente de sélection de variables. En effet, les caractéristiques disponibles sont des mesures continues issues d’examens médicaux (par exemple la texture, la compacité ou la symétrie des cellules), tandis que la cible est catégorielle, distinguant deux classes diagnostiques: tumeur bénigne ou maligne.

L’ANOVA permet de tester si les moyennes de chaque variable diffèrent significativement entre ces deux groupes, ce qui revient à identifier les attributs les plus discriminants pour la classification.

Cette approche exploite directement la relation entre les variables explicatives et la cible, contrairement à une sélection non supervisée par variance, et garantit que les features retenues sont statistiquement informatives pour améliorer la performance du modèle de prédiction.

Application du test ANOVA au jeu de données Breast Cancer

Je présente ici un code qui reprend la logique de l’exemple étudié avec la méthode de la variance:
from sklearn.datasets import load_breast_cancer
from sklearn.feature_selection import SelectKBest, f_classif
import pandas as pd

data = load_breast_cancer()
X = pd.DataFrame(data.data, columns=data.feature_names)
y = data.target

print("Dimensions initiales:", X.shape)

# Sélection avec ANOVA
# Garder les 10 meilleures features
selector = SelectKBest(score_func=f_classif, k=10)
X_reduced = selector.fit_transform(X, y)

print("Dimensions après sélection:", X_reduced.shape)

# Afficher les variables retenues
selected_features = X.columns[selector.get_support()]
print("Features retenues:")
print(selected_features)
Passons à l'explication des nouveautés introduites dans le code.

On commence par importer les modules nécessaires à l'applicaiton du test ANOVA:
from sklearn.feature_selection import SelectKBest, f_classif
SelectKBest est une classe de scikit-learn qui permet de sélectionner les k meilleures variables en fonction d’un critère statistique et f_classif est la fonction de scoring qui implémente le test F de l’ANOVA univariée, utilisé pour mesurer si les moyennes des variables explicatives continues diffèrent significativement entre les classes de la cible.
dans le code, le terme ANOVA n’apparaît pas explicitement. En réalité, la fonction f_classif de scikit-learn correspond au test F de l’ANOVA univariée, ce qui justifie que l’on parle de sélection par ANOVA même si le mot n’est pas écrit dans le script.
Ensuite, on applique une sélection supervisée de variables en utilisant le test F de l’ANOVA univariée (f_classif).
selector = SelectKBest(score_func=f_classif, k=10)
X_reduced = selector.fit_transform(X, y)
La classe SelectKBest évalue chaque feature en fonction de sa capacité à discriminer les deux classes de la cible (bénin vs malin) et conserve uniquement les 10 variables les plus pertinentes, ce qui réduit la dimensionnalité tout en gardant les caractéristiques les plus informatives pour la classification.

L'exécution du code complet produit ce résultat:
Dimensions initiales: (569, 30)

Dimensions après sélection: (569, 10)

Features retenues:
Index(['mean radius', 'mean perimeter', 'mean area', 'mean concavity',
'mean concave points', 'worst radius', 'worst perimeter', 'worst area',
'worst concavity', 'worst concave points'],
dtype='object')
Après application de la sélection supervisée par ANOVA au dataset Breast Cancer, les dimensions passent de (569, 30) à (569, 10), ce qui signifie que seules les dix variables les plus discriminantes ont été retenues.

Ces features correspondent principalement à des mesures liées à la taille (mean radius, mean perimeter, mean area, ainsi que leurs équivalents en valeurs extrêmes worst radius, worst perimeter, worst area) et à la forme des cellules (mean concavity, mean concave points, worst concavity, worst concave points).

Le fait que l’ANOVA ait sélectionné ces caractéristiques confirme leur importance statistique pour différencier les deux classes de la cible (tumeurs bénignes vs malignes) en montrant que les variations de taille et d’irrégularité des contours cellulaires sont des indicateurs clés dans la classification médicale.