Création et sélection de caractéristiques

Apprentissage Machine de bout en bout

Joshua Stapleton

Machine Learning Engineer

Ingénierie des caractéristiques

Création de caractéristiques

  • Simplifie le problème
  • Améliore l'efficacité du modèle

Techniques

  • Modifier des caractéristiques existantes
  • Concevoir de nouvelles caractéristiques

Avantages

  • Déploiement, maintenance et entraînement facilités
  • Gain d'interprétabilité

Étape actuelle du cycle de vie en apprentissage automatique : ingénierie des caractéristiques

Apprentissage Machine de bout en bout

Normalisation

  • Met à l'échelle les caractéristiques numériques vers [0, 1]
  • Utile quand les caractéristiques ont des échelles/plages différentes
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import Normalizer

# Split the data
X_train, X_test = train_test_split(df, test_size=0.2, random_state=42)
# Createnormalizer object, fit on training data, normalize, and transform test set
norm = Normalizer()
X_train_norm = norm.fit_transform(X_train)
X_test_norm = norm.transform(X_test)
Apprentissage Machine de bout en bout

Standardisation

  • Met les données à moyenne = 0 et variance = 1
  • Utile pour les algorithmes qui supposent des moyennes et variances semblables
from sklearn.preprocessing import StandardScaler

# Split the data
X_train, X_test = train_test_split(df, test_size=0.2, random_state=42)
# Create a scaler object and fit training data to standardize it
sc = StandardScaler()
X_train_stzd = sc.fit_transform(X_train)
# Only standardize the test data
X_test_stzd = sc.transform(X_test)
Apprentissage Machine de bout en bout

Qu'est-ce qu'une bonne caractéristique ?

  • Utiliser des caractéristiques pertinentes
  • La météo le jour du rendez-vous ne devrait pas influer sur le diagnostic

 

Image de temps orageux illustrant la pertinence des caractéristiques dans la sélection

  • Utiliser des caractéristiques dissemblables (orthogonales)
  • Deux caractéristiques « âge en mois » et « âge en années » n'aident pas

 

Diagramme illustrant le principe d'orthogonalité en sélection de caractéristiques

Apprentissage Machine de bout en bout

sklearn.feature_selection

 

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

# Splitting data into train and test subsets first to avoid data leakage X_train, X_test, y_train, y_test = train_test_split( heart_disease_df_X, heart_disease_df_y, test_size=0.2, random_state=42)
Apprentissage Machine de bout en bout

sklearn.feature_selection (suite)

 

# Define and fit the random forest model
rf = RandomForestClassifier(n_jobs=-1, class_weight='balanced', max_depth=5)
rf.fit(X_train, y_train)

# Define and run feature selection model = SelectFromModel(rf, prefit=True) features_bool = model.get_support() features = heart_disease_df.columns[features_bool]
Apprentissage Machine de bout en bout

Passons à la pratique !

Apprentissage Machine de bout en bout

Preparing Video For Download...