Aller au contenu principal

Guide : Extraction des Features

Cette étape est le cœur de l'approche "hybride" (physique + ML) du pipeline AstroSpectro. Au lieu de donner le spectre brut à un modèle, nous extrayons des informations physiquement pertinentes qui permettent d'atteindre une haute performance de classification.

Ce processus est géré par deux classes principales : PeakDetector et FeatureEngineer.

Étape 1 : Détection et Mesure des Raies

Le module PeakDetector identifie les minima locaux (raies d'absorption) et les associe à une liste de raies astrophysiques connues.

  1. Détection avec SciPy : La fonction scipy.signal.find_peaks est utilisée sur le flux inversé pour localiser tous les pics qui dépassent un seuil de prominence. Ce paramètre, tuné de manière interactive grâce à nos outils de visualisation, est crucial pour ne garder que les raies significatives.
  2. Matching avec les Raies Connues : Les pics détectés sont comparés à un dictionnaire de raies cibles (, , CaII K&H, Mg_b, Na_D). Le pic le plus proéminent à l'intérieur d'une fenêtre de tolérance est associé à la raie.
  3. Retour des Propriétés : Le PeakDetector ne retourne plus seulement la position, mais un dictionnaire contenant un tuple (longueur_d_onde, prominence) pour chaque raie trouvée.
Exemple de sortie du PeakDetector
matched_lines = {
"Hα": (6564.1, 0.281),
"Hβ": (4861.2, 0.485),
"CaII K": (3927.0, 2.344),
"CaII H": None, # Raie non détectée
"Mg_b": (5185.6, 0.996),
"Na_D": (5895.1, 0.528)
}

Étape 2 : Construction du Vecteur de Features

Le dictionnaire de raies est ensuite passé au FeatureEngineer, qui le transforme en un vecteur numérique riche pour le modèle. Notre approche combine trois familles de features.

1. Features Physiques des Raies

Pour chaque raie détectée, nous calculons des mesures physiques qui décrivent sa forme et sa force.

  • Force (Prominence) : La profondeur de la raie, directement issue du PeakDetector.
  • Largeur (FWHM) : La "Largeur à Mi-Hauteur", calculée avec specutils sur une version lissée (Savitzky-Golay) de la raie. C'est un excellent indicateur de la classe de luminosité.

2. Features de Ratio

Les ratios entre les features sont souvent plus discriminants que les features elles-mêmes.

  • Ratios de Force : Nous calculons des ratios entre les prominences de différentes raies (ex: CaII K / Hβ). Ces ratios sont des proxies robustes de la température de l'étoile.
  • Indice de Couleur : Nous calculons un indice de couleur simple (ratio du flux bleu sur le flux rouge) à partir du continuum du spectre.

3. Features Contextuelles (Métadonnées)

L'analyse de l'importance des features a révélé que le contexte de l'observation est crucial. Nous incluons donc directement des métadonnées du header FITS :

  • redshift
  • seeing
  • Rapport Signal/Bruit (snr_g, snr_r, snr_i)
Résultat : Un Vecteur de Features Riche

Au final, chaque spectre est transformé en un vecteur de plus de 20 features, combinant des informations sur la forme des raies, la température globale et la qualité de l'observation. C'est cet enrichissement qui a permis de faire passer la performance du modèle de 32% à plus de 80%.