Guide : Entraînement du Modèle
Une fois que vous disposez d'un jeu de données avec des features extraites (généré à l'étape précédente), vous pouvez entraîner un modèle de Machine Learning pour la classification spectrale.
Toute la logique d'entraînement, d'optimisation et d'évaluation est encapsulée dans la classe
SpectralClassifier.
Le Processus d'Entraînement
Le processus, orchestré dans le notebook 00_master_pipeline.ipynb, est un pipeline scikit-learn complet et robuste.
1. Préparation des Données
Avant l'entraînement, la classe SpectralClassifier prépare automatiquement les données :
- Chargement : Le DataFrame
pandascontenant les features est pris en entrée. - Nettoyage : Les entrées sans label (
subclass) valide et les classes spectrales trop rares (moins de 10 exemples) sont retirées pour garantir un apprentissage stable. - Sélection des Features : Les colonnes pertinentes (celles commençant par
feature_et les métadonnées clés commeredshift,snr_*) sont automatiquement sélectionnées. - Séparation : Les données sont divisées en une matrice de features
Xet un vecteur de labelsy.
2. Entraînement, Validation et Tuning
C'est ici que la magie opère. Au lieu d'un simple entraînement, le SpectralClassifier exécute un processus rigoureux :
-
Pipeline Intégré : Un
Pipelinescikit-learnest utilisé pour enchaîner plusieurs étapes de manière sécurisée :- Imputation : Remplacement des valeurs manquantes (
NaN) par zéro. - Mise à l'échelle (Scaling) : Standardisation des features pour qu'elles aient une moyenne de 0 et un écart-type de 1.
- Sur-échantillonnage (SMOTE) : Création d'échantillons synthétiques pour les classes minoritaires afin de rééquilibrer le jeu de données.
- Classification : Entraînement du modèle final (
RandomForestouXGBoost).
- Imputation : Remplacement des valeurs manquantes (
-
Tuning d'Hyperparamètres (
GridSearchCV) : Le pipeline ne se contente pas d'entraîner un seul modèle. Il teste systématiquement de multiples combinaisons d'hyperparamètres (ex:max_depth,n_estimators) en utilisant une validation croisée stratifiée pour trouver la configuration la plus performante. -
Évaluation Finale : Le meilleur modèle trouvé est ensuite évalué sur un jeu de test mis de côté au préalable, garantissant une mesure honnête de sa capacité à généraliser sur de nouvelles données.
Depuis la version v1.0.0, le pipeline AstroSpectro supporte deux modèles de pointe : RandomForest et XGBoost. L'interface interactive du notebook de production permet de choisir quel modèle entraîner, facilitant ainsi la comparaison et l'expérimentation. Nos résultats montrent que XGBoost offre actuellement les meilleures performances sur notre jeu de features.
Sauvegarde du Modèle et Reporting
Une fois l'entraînement terminé, le pipeline automatise les dernières étapes cruciales pour la reproductibilité :
- Sauvegarde du Modèle : Le
SpectralClassifierentraîné (qui contient le pipeline complet avec le scaler et le meilleur modèle) est sauvegardé dans un fichier.pkldansdata/models/. Le nom du fichier inclut le type de modèle et la date pour une traçabilité facile. - Mise à jour du Journal : Les spectres utilisés pour cet entraînement sont ajoutés au log
data/catalog/trained_spectra.csv. - Rapport de Session : Un fichier JSON détaillé est créé dans
data/reports/, contenant toutes les informations de la session : les hyperparamètres finaux, le rapport de classification complet, la matrice de confusion, et le hash du modèle.