Skip to main content

Théorie de l'Extraction de Features

L'extraction de features (feature engineering) est l'étape fondatrice du pipeline AstroSpectro. Elle consiste à transformer un signal spectral complexe de haute dimension — un spectre de 3 921 canaux de flux — en un vecteur compact de 183 descripteurs numériques que les algorithmes de machine learning peuvent exploiter de manière interprétable et scientifiquement valide.

Résultat clé

La validation SHAP sur le modèle spectro_only=True confirme que 97,9 % des 30 descripteurs les plus importants sont des features spectrales physiques. Le modèle a appris à classifier les étoiles exactement comme le font les astrophysiciens.


Notre philosophie : Physics-Informed Machine Learning

Plutôt qu'une approche "boîte noire" (donner les spectres bruts à un réseau de neurones), AstroSpectro adopte une approche hybride et interprétable en trois étapes :

  1. Informer par la physique — identifier les régions spectralement significatives (raies d'absorption, continuum, bandes moléculaires) à partir de la connaissance astrophysique
  2. Quantifier l'information — mesurer précisément les propriétés physiques de chaque raie (force, largeur, profil) plutôt que de simplement savoir qu'elle existe
  3. Apprendre les relations — donner ce vecteur riche et compact à XGBoost pour qu'il découvre les frontières de décision optimales entre types spectraux
Boîte Noire (Deep Learning brut)
Non retenu pour AstroSpectro
Exemple concret
CNN sur les 3921 canaux de flux bruts
✓ Avantages
Aucune connaissance préalable requise
Peut capturer des patterns non connus
✗ Limites
Millions de paramètres à entraîner
Nécessite ~10⁵–10⁶ spectres annotés
Résultats difficiles à valider physiquement
Sensible au bruit instrumental non modélisé
"Pourquoi ce type A ?" — pas de réponse
RETENU
Physics-Informed + ML classique
Approche retenue — AstroSpectro V2
Exemple concret
XGBoost sur 183 descripteurs (W(Hα), Ca II prominence…)
✓ Avantages
183 descripteurs physiques interprétables
SHAP valide les décisions physiquement
43 019 spectres suffisent — pas besoin de millions
Robuste au bruit (features locales, pas pixels)
Chaque décision expliquée en termes astrophysiques
87 % balanced accuracy en ~5 min d'entraînement
✗ Limites
Expertise astrophysique requise pour définir les raies
Peut manquer des patterns non connus

Les 6 familles de descripteurs V2

Le pipeline V2 construit une matrice X ∈ ℝ^(43019 × 183) en combinant six familles de descripteurs complémentaires, chacune encodant un aspect distinct de la physique stellaire.

Raies de Balmer
Hα – Hθ
~35
Série de l'hydrogène en absorption. Indicateur thermique primaire : force maximale vers 10 000 K (type A), s'affaiblit vers M et vers O.
Hα 6563 Å · Hβ 4861 Å · Hγ 4341 Å · Hδ 4102 Å · Hθ 3798 Å
→ PCA :PC1 (Balmer : 31.5%)
Ca II H&K + triplet IR
H 3968 · K 3933 · IR 8498–8662
~20
Calcium ionisé en absorption. Sensible à la fois à la métallicité ([Ca/H]) et à l'activité magnétique stellaire (remplissage en émission).
Ca II H 3968 Å · Ca II K 3933 Å · IR triplet 8498, 8542, 8662 Å
→ PCA :PC1 (Ca : 22.4%) · SHAP top-3
Magnésium & indices α
Mg b · Mg I 5184 · Mg II
~15
Triplet Mg b et raies du magnésium. Traceurs de l'enrichissement en éléments α — discrimine les populations du halo et du disque galactique.
Mg b 5167–5183 Å · Mg I 5184 Å · Mg II 4481 Å
→ PCA :PC1 (W(Mgb) = −0.171)
Fer & métaux du pic
Fe, Cr, V, Ni, Ba, Sr...
~30
Raies des métaux du pic du fer. Mesure directe de l'abondance en fer et des métaux lourds. Dominantes dans PC2.
Fe I 5270, 5335 Å · Cr I · V I · Ni I · Ba II · Sr II
→ PCA :PC2 ([Fe/H]proxy : 0.205)
Indices Lick / SDSS / CaH
Indices Lick IDS · CaH · TiO
~18
Indices spectroscopiques standardisés. Combinaisons de bandes larges calibrées pour mesurer âge et métallicité des populations stellaires.
Indices Lick IDS · CaH1, CaH2 · TiO1, TiO2 · SDSS composites
→ PCA :PC2 (Idxmétal : 0.198)
Continuum · pentes · couleurs
Ratios de flux · indices photom.
~65
Forme globale du continu spectral. Plus grande famille en nombre. Encode la température via la pente de corps noir et la luminosité via les sauts spectraux.
fbleu/frouge · B−V synthétique · pentes locales · indices photométriques
→ PCA :PC1 (continuum : fbleu/frouge = 0.161)
183 descripteurs · 6 familles spectroscopiques · catalogue exhaustif →

Extraction concrète — du spectre au vecteur

Raies spectrales : prominence, FWHM, largeur équivalente

Pour chaque raie d'absorption définie dans le dictionnaire de raies (feature_engineering.py), trois métriques fondamentales sont extraites :

from specutils.analysis import equivalent_width, gaussian_fwhm

# Exemple pour Hα (6562.8 Å)
window = SpectralRegion(6540 * u.AA, 6580 * u.AA)

prominence_ha = continuum - flux_minimum # force de la raie
fwhm_ha = gaussian_fwhm(spectrum, window) # largeur à mi-hauteur
ew_ha = equivalent_width(spectrum, window) # largeur équivalente W(Hα)

Interprétation physique :

  • Prominence : profondeur de la raie → force de la transition atomique dans l'atmosphère
  • FWHM : largeur → pression atmosphérique, gravité de surface, vitesse thermique
  • EW — W(raie) : largeur équivalente → abondance de l'espèce ionique, température

Ratios de raies — proxies physiques composites

Les ratios entre raies sont calculés car ils ont une signification physique directe :

# Ca II K / Hβ — proxy de température (varie avec Teff)
feature_ratio_CaK_Hbeta = prominence_CaII_K / prominence_Hbeta

# W(Mg b) / W(Na D) — sensible à [Mg/Fe] et à la gravité
feature_ratio_EW_MgB_NaD = ew_mgb / ew_nad

# Indice de Balmer — gradient de température le long de la série
feature_balmer_temperature_index = (ratio_gamma_beta + ratio_delta_gamma) / 2

Pourquoi les ratios plutôt que les valeurs absolues ? Les ratios sont invariants aux variations instrumentales (normalisation du flux, seeing) et encodent des différences entre populations plutôt que des niveaux absolus.

Continuum — morphologie globale du spectre

La forme du continuum encode la température (pente de corps noir) et la classe de luminosité (sauts spectraux) :

# Pentes locales (sigma-clippées, σ = 2,5 — robuste aux raies)
feature_slope_blue = fit_slope(flux, 3800, 4200) # UV → bleu
feature_slope_red = fit_slope(flux, 5500, 6500) # visible rouge
feature_slope_deep_red = fit_slope(flux, 6500, 7500) # proche IR

# Asymétrie bleue/rouge — proxy direct de Teff
feature_continuum_asymmetry = (f_blue - f_red) / (f_blue + f_red)

# Saut D4000 — indicateur d'âge et de métallicité
feature_break_4000A_strength = flux_4050_4250 / flux_3750_3950

Mode spectro_only=True — L'essentiel scientifique

Le mode spectro_only=True est la condition requise pour des résultats scientifiquement rigoureux. Il exclut toutes les variables non spectrales du vecteur de features.

Variables exclues et pourquoi

VariableTypeRaison d'exclusion
ra, decCoordonnées angulairesEncodent le spectre a été observé, non la physique de l'étoile
redshiftMétadonnée LAMOSTCorrélé avec les programmes d'observation ciblés par type spectral
seeing, snr_*Conditions instrumentalesLiés à la qualité de la nuit, pas à la physique stellaire
parallax, teff_gspphotColonnes GaiaFuite de données — ce sont des cibles/validations, pas des features
Feature leakage

Sans spectro_only=True, ra et dec peuvent artificiellement augmenter la précision apparente : les programmes d'observation de LAMOST ciblent certaines régions du ciel selon le type spectral attendu. Un modèle apprend alors à classifier par position dans le ciel plutôt que par physique stellaire, ce qui ne généralise pas.

Implémentation dans le pipeline

from src.pipeline.classifier import SpectralClassifier

clf = SpectralClassifier(
model_type="XGBoost",
prediction_target="main_class", # A / F / G / K / M
)

# spectro_only=True garantit que seules les 183 features spectrales sont utilisées
clf.train_and_evaluate(features_df, spectro_only=True)

# Résultat : 87 % balanced accuracy · ROC-AUC ~0,964

Validation SHAP — La physique confirmée

L'analyse SHAP (SHapley Additive exPlanations) sur le modèle entraîné permet de vérifier a posteriori que les features utilisées sont bien physiques.

Résultat central

MétriqueValeur
Features spectrales physiques dans top-3097,9 %
Features non physiques dans top-302,1 %
Rang 1–5 SHAPCa II K prominence, EW, FWHM, Ca II H prominence, EW

La découverte : Ca II > Balmer

Les raies Ca II H&K dominent les décisions du classifieur, surpassant les raies de Balmer. Ce résultat en apparence surprenant est physiquement cohérent :

  • PCA cherche la direction de variance maximale → Balmer varie davantage au sein de toute la population → PC1 thermique
  • XGBoost cherche la frontière de décision optimale → Ca II varie davantage entre classes → meilleure séparation A/F/G/K/M
PCA : Quelle feature varie le plus au total ? → Balmer (T_eff)
XGBoost : Quelle feature sépare le mieux les classes ? → Ca II ([Fe/H])

Ces deux résultats sont cohérents et complémentaires — ils répondent à des questions différentes sur la même physique.

Top features SHAP par classe spectrale

ClasseFeatures SHAP dominantesInterprétation
AHα EW↓, Hβ FWHM↑, W(Hγ) fortBalmer très larges — étoiles chaudes > 7 500 K
FHα modéré, Ca II K naissantTransition Balmer → Ca II (6 000–7 500 K)
GCa II K+H forts, Mg b, W(Hα)Étoile solaire — métallicité + T_eff intermédiaire
KCa II K très fort, TiO naissantFroides riches en métaux (3 700–5 200 K)
MTiO, VO, CaH bands, Balmer↓Bandes moléculaires caractéristiques < 3 700 K

Connexion avec les résultats PHY-3500

Le jeu de 183 descripteurs est exactement celui utilisé dans le rapport Baker, Caillat & Jean (28 avril 2026). Les mêmes features alimentent simultanément :

MéthodeUsage des 183 featuresRésultat
PCAMatrice de covariance 183×183PC1 = axe thermique (ρ(Teff) = +0,831)
UMAP + t-SNEProjection 183D → 91 PCA → 2DSéquence Harvard émergente
HDBSCANClustering dans espace UMAP20 clusters · distinction naines/géantes
XGBoost183 features → frontières de décision87 % balanced accuracy
SHAPAttribution par featureValidation scientifique : 97,9 % physiques