Aller au contenu principal

classifier.py

Ce module contient la classe SpectralClassifier, qui est le "cerveau" du pipeline. Elle encapsule un pipeline de Machine Learning complet pour réaliser la classification à partir des features extraites.

Workflow de la Classification

Le workflow géré par la classe est beaucoup plus qu'un simple entraînement. Il s'agit d'un processus rigoureux de préparation, d'optimisation et d'évaluation.

Classe SpectralClassifier

Cette classe fournit une interface de haut niveau pour entraîner, optimiser, évaluer et gérer la persistance d'un modèle de classification.

Détails sur l'instanciation et la configuration
  • Description : Crée une instance du classifieur.
  • Arguments :
  • model_type (str, défaut: 'RandomForest') : Le type de modèle à utiliser. Peut être 'RandomForest' ou 'XGBoost'.
  • random_state (int, défaut: 42) : Pour garantir la reproductibilité des résultats.

Bonnes Pratiques & Points Clés

💡Ce qui est Inclus
  • Pipeline Intégré : L'utilisation d'un Pipeline garantit que le scaling et l'imputation sont appris uniquement sur les données d'entraînement, évitant les fuites de données.
  • Validation Croisée : GridSearchCV utilise une validation croisée stratifiée pour une évaluation robuste et un choix de paramètres fiable.
  • Gestion du Déséquilibre : L'étape SMOTE est appliquée à la volée pendant l'entraînement pour corriger le déséquilibre des classes sans polluer le jeu de test.
☢️Ce qui est Géré
  • Données Manquantes : Les NaN dans les features (ex: FWHM non calculable) sont automatiquement remplacés par zéro grâce à SimpleImputer.
  • Labels Invalides : Les spectres sans subclass valide sont automatiquement exclus.
  • Classes Rares : Les classes avec moins de 10 échantillons sont retirées pour garantir la stabilité de l'entraînement et de l'évaluation.

Questions Fréquentes (FAQ)

Comment puis-je utiliser un modèle déjà entraîné pour prédire sur de nouvelles données ?

Le workflow est simple :

  1. Chargez l'objet classifieur complet avec loaded_clf = SpectralClassifier.load_model("path/to/model.pkl").
  2. Préparez vos nouvelles données sous forme d'un DataFrame pandas contenant les mêmes colonnes de features que lors de l'entraînement.
  3. Faites la prédiction avec predictions = loaded_clf.model_pipeline.predict(X_new). Le model_pipeline s'occupera automatiquement du scaling et de l'imputation.