0Pricing
Learn AI with Python · Leçon

Méthodes de sélection des caractéristiques

Méthodes par filtrage (variance, corrélation), par enveloppe (RFE) et intégrées (régularisation L1).

Méthodes de sélection des caractéristiques est une leçon Learn AI with Python gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Learn AI with Python, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Learn AI with Python comprend 4 leçons au total.

Pourquoi sélectionner des variables

La sélection de variables ne conserve que les colonnes les plus utiles. Un nombre réduit de variables accélère l’entraînement, limite le surapprentissage et facilite l’interprétation. Supprimer le bruit améliore souvent aussi l’exactitude.

Trois familles de méthodes

Les méthodes de sélection se répartissent en trois groupes :

  • Filtrage : classe les variables selon une statistique (rapide et indépendant du modèle)
  • Enveloppe : recherche des sous-ensembles en entraînant des modèles (lent, mais précis)
  • Intégrées : la sélection se fait pendant l’ajustement du modèle

VarianceThreshold

Le filtre le plus simple : VarianceThreshold élimine les variables dont la variance est inférieure à un seuil. Les colonnes presque constantes ne contiennent aucune information.

from sklearn.feature_selection import VarianceThreshold

sel = VarianceThreshold(threshold=0.01)
X_reduced = sel.fit_transform(X)
print("Kept:", X_reduced.shape[1], "of", X.shape[1])

SelectKBest avec f_classif

SelectKBest conserve les K variables obtenant les meilleurs résultats. Avec f_classif, il utilise un test F d’ANOVA qui mesure la force du lien entre chaque variable et l’étiquette de classe.

from sklearn.feature_selection import SelectKBest, f_classif

sel = SelectKBest(score_func=f_classif, k=10)
X_best = sel.fit_transform(X, y)
print(sel.get_support(indices=True))

Information mutuelle

mutual_info_classif mesure toute dépendance, y compris non linéaire, entre une variable et la cible. Contrairement au test F, il détecte les relations non linéaires que l’ANOVA ne repère pas.

from sklearn.feature_selection import SelectKBest, mutual_info_classif

sel = SelectKBest(score_func=mutual_info_classif, k=10)
X_mi = sel.fit_transform(X, y)

Comparaison entre f_classif et mutual_info

f_classif est rapide et détecte les relations linéaires ; mutual_info_classif est plus lent, mais détecte les relations non linéaires. Si vous soupçonnez des relations complexes, privilégiez l’information mutuelle.

import numpy as np
from sklearn.feature_selection import f_classif, mutual_info_classif

f_scores, _ = f_classif(X, y)
mi_scores = mutual_info_classif(X, y)
print("F-test top:", np.argsort(f_scores)[::-1][:5])
print("MI top:", np.argsort(mi_scores)[::-1][:5])

Élimination récursive de variables

RFE est une méthode par enveloppe : elle entraîne un modèle, supprime la variable la moins importante et recommence. Elle utilise le signal d’importance propre au modèle pour classer les variables.

from sklearn.feature_selection import RFE
from sklearn.linear_model import LogisticRegression

rfe = RFE(estimator=LogisticRegression(max_iter=1000), n_features_to_select=10)
rfe.fit(X, y)
print(rfe.support_)

RFECV : choisir automatiquement le nombre

RFECV ajoute une validation croisée à RFE afin de trouver le nombre optimal de variables selon le résultat de validation, plutôt que de le fixer arbitrairement.

from sklearn.feature_selection import RFECV
from sklearn.ensemble import RandomForestClassifier

rfecv = RFECV(
    estimator=RandomForestClassifier(),
    cv=5,
    scoring="accuracy",
)
rfecv.fit(X, y)
print("Optimal features:", rfecv.n_features_)

SelectFromModel avec Lasso

Sélection intégrée : Lasso (L1) ramène exactement à zéro les coefficients des variables peu importantes. SelectFromModel ne conserve ensuite que les coefficients non nuls.

from sklearn.feature_selection import SelectFromModel
from sklearn.linear_model import Lasso

sel = SelectFromModel(Lasso(alpha=0.01))
sel.fit(X, y)
X_lasso = sel.transform(X)
print("Kept:", X_lasso.shape[1])

SelectFromModel avec les importances des arbres

SelectFromModel fonctionne également avec tout estimateur fournissant feature_importances_, comme les forêts aléatoires. Définissez un threshold tel que "mean" ou "median".

from sklearn.feature_selection import SelectFromModel
from sklearn.ensemble import RandomForestClassifier

sel = SelectFromModel(
    RandomForestClassifier(n_estimators=200),
    threshold="median",
)
sel.fit(X, y)

Choisir une méthode

Commencez par des filtres peu coûteux (VarianceThreshold, SelectKBest) pour éliminer les variables manifestement inutiles. Utilisez SelectFromModel pour un bon équilibre. Réservez RFECV aux situations où l’exactitude est prioritaire et où les ressources de calcul le permettent.

Vérification rapide

Vérifiez vos connaissances sur la sélection de variables.

Récapitulatif

Récapitulatif : la sélection de variables comprend les méthodes par filtrage (VarianceThreshold, SelectKBest avec f_classif ou mutual_info_classif), par enveloppe (RFECV) et intégrées (SelectFromModel avec Lasso ou les importances des arbres). Les filtres sont les plus rapides ; RFECV est le plus précis. Utilisez l’information mutuelle pour les relations non linéaires.

Questions Fréquemment Posées

La leçon « Méthodes de sélection des caractéristiques » est-elle gratuite ?

Oui — le texte complet de « Méthodes de sélection des caractéristiques » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Learn AI with Python, passe à CoddyKit PRO. Le cours Learn AI with Python comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Méthodes de sélection des caractéristiques » ?

Méthodes par filtrage (variance, corrélation), par enveloppe (RFE) et intégrées (régularisation L1). Tu pratiques Learn AI with Python avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Learn AI with Python ?

Aucune expérience préalable n'est requise. Learn AI with Python sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.

Combien de temps prend la leçon « Méthodes de sélection des caractéristiques » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Learn AI with Python ?

Oui. Chaque leçon Learn AI with Python inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Méthodes de sélection des caractéristiques
  2. Créer des caractéristiques d’interaction et polynomiales
  3. Encodage de la cible et gestion avancée des catégories
  4. Ingénierie automatisée des caractéristiques avec Featuretools
← Retour à Learn AI with Python