Skip to main content

XGBoost — comparaison sur les mêmes 183 descripteurs

Cette page documente les résultats du classifieur supervisé XGBoost entraîné sur les mêmes 183 descripteurs spectroscopiques que ceux utilisés pour la réduction de dimension PCA/UMAP/t-SNE. Elle établit le lien entre l'approche non supervisée (structure émergente dans UMAP) et l'approche supervisée (classification avec étiquettes), démontrant que les deux convergent vers la même structure physique.

Résultats clés

BA
87%
Précision équilibrée
balanced accuracy · 5 classes
Sur les types A, F, G, K, M
P
96.3%
Confiance médiane
prédictions dans l'espace UMAP
Probabilité de classe prédite
AUC
~0.964
ROC-AUC macro
discriminabilité globale
Quasi-parfait · 1.000 = parfait

Contexte et motivation

La conclusion de l'article PHY-3500 (Baker, Caillat & Jean, 28 avril 2026) ouvre sur cette perspective :

«Un classifieur XGBoost entraîné sur les mêmes 183 descripteurs atteint une précision équilibrée de 87 % sur cinq types spectraux (A, F, G, K, M), avec une confiance médiane de 96,3 % pour ses prédictions projetées dans l'espace UMAP. La cohérence géographique des prédictions XGBoost dans la projection confirme que le classifieur supervisé et les méthodes non supervisées de réduction de dimension capturent la même structure physique : les projections ne sont pas seulement des outils de visualisation, mais aussi des espaces de validation qualitative pour les modèles supervisés.»

Ce résultat est central pour AstroSpectro : il démontre que les 183 descripteurs spectraux purs (sans Gaia, sans ra/dec/redshift) sont suffisants pour une classification de haute performance.


Configuration expérimentale

Mode spectro_only=True

Ce résultat est obtenu en mode spectro_only=True du SpectralClassifier — c'est-à-dire en utilisant uniquement les descripteurs spectraux, sans aucune métadonnée observationnelle ni feature Gaia.

Les variables exclues par rapport au modèle complet :

  • ra, dec (coordonnées angulaires)
  • redshift, seeing (conditions d'observation LAMOST)
  • parallax, bp_rp, teff_gspphot, logg_gspphot et autres colonnes Gaia

Cette restriction garantit que le modèle apprend à classifier les étoiles à partir de leur physique intrinsèque uniquement — c'est la condition requise pour une publication scientifique rigoureuse et pour une application à des données sans cross-match Gaia.

Données d'entraînement

Configuration expérimentale
Jeu de données
LAMOST DR5 × Gaia DR3
N = 43 019 spectres
p
Descripteurs
183
mode spectro_only=True
Classes cibles
A · F · G · K · M
5 types spectraux stellaires
Métrique
balanced_accuracy
optimisation & évaluation
Split train/test
80 / 20
stratifié par classe
Hyperparamètres XGBoostrun 20260213T225019Z
n_estimators
600
max_depth
6
learning_rate
0.1
colsample_bytree
0.8
subsample
0.8
tree_method
"hist"
Tuning via GridSearchCV · tree_method hist = GPU/CPU
from src.pipeline.classifier import SpectralClassifier

clf = SpectralClassifier(
model_type="XGBoost",
prediction_target="main_class",
)
clf.train_and_evaluate(features_df, spectro_only=True)

Résultats de classification

Performance par classe — la séquence de Harvard

Séquence de Harvard — température effective (K)
A
F
G
K
M
7 500+ K →← < 3 700 K
A
Bonne
~2% du jeu
Étoiles chaudes
> 7 500 K
Raies de Balmer très fortes
Sirius, Véga, Altaïr
F
Bonne
~8% du jeu
Étoiles blanches-jaunes
6 000–7 500 K
Balmer modérées, Ca II faible
Procyon, Canopus
G
Bonne
~15% du jeu
Étoiles solaires
5 200–6 000 K
Ca II modérées, Balmer faibles
Soleil, Tau Ceti, Alpha Cen A
K
Très bonne
~35% du jeu
Étoiles orangées
3 700–5 200 K
Ca II fortes, Mg b visibles
Alpha Centauri B, Arcturus
M
Excellente
~40% du jeu
Étoiles rouges froides
< 3 700 K
Bandes moléculaires TiO, VO, CaH
Proxima Centauri, Bételgeuse
Classe M — Excellente : les bandes moléculaires TiO, VO et CaH sont absentes dans tous les types chauds — la classe M est spectralement inconfondable. Survole les cartes pour les notes de performance.

Confusion F/G — la frontière la plus délicate

La confusion principale du modèle se concentre à la frontière F-G (5 500–6 200 K). Ces étoiles partagent des largeurs de raies de Balmer et de Ca II similaires, et la distinction repose sur des descripteurs fins (asymétrie du continuum, indices Lick Mg b, Hβ). Cette ambiguïté est visible dans l'espace UMAP : les prédictions erronées F/G se concentrent dans la zone de transition entre les deux populations — ce n'est pas une erreur du classifieur, mais le reflet d'une continuité physique réelle dans la séquence spectrale.

Référence figure : umap_xgboost_FG_confusion.png


Cohérence géographique dans l'espace UMAP

Principe de la validation croisée supervisé/non supervisé

La projection UMAP des prédictions XGBoost permet une validation qualitative du modèle : si le classifieur supervisé a appris la même structure physique que UMAP (non supervisé), les prédictions doivent suivre la géographie de la projection.

Résultats

Chargement…
Prédictions XGBoost
Chaque point coloré par le type spectral prédit par XGBoost
Géographie des classes
A
Péninsule chaude
Supérieure gauche — étoiles A-F chaudes
> 7 500 K
F
Transition chaude
Zone intermédiaire haute
6 000–7 500 K
G
Masse centrale
Masse principale centrale
5 200–6 000 K
K
Périphérie froide
Bordure froide de la masse centrale
3 700–5 200 K
M
Extrémité froide
Branche inférieure — naines M
< 3 700 K
Confiance médiane 96,3 %
La géographie XGBoost dans UMAP est cohérente avec la structure non supervisée : supervisé et non supervisé capturent la même physique.

Cette correspondance directe entre la structure émergente de UMAP (sans étiquettes) et la classification XGBoost (avec étiquettes) démontre que les deux approches capturent la même structure physique sous-jacente : la séquence de température effective de la classification MK de Harvard.


Interprétabilité SHAP — quelles features décident ?

L'analyse SHAP (SHapley Additive exPlanations) sur le modèle spectro_only=True révèle l'importance réelle des descripteurs dans les décisions du classifieur.

Découverte clé — Ca II domine sur Balmer
Les 5 premiers descripteurs SHAP sont tous des raies Ca II H&K — la métallicité est plus discriminante que la température pour XGBoost. Contraste direct avec la PCA où la température (Balmer, PC1) domine.
Ca II (5 dans top-10)
Balmer (3 dans top-10)
Métaux (2 dans top-10)
Importance relative normalisée — run 20260213T225019Z
#
Descripteur
Importance SHAP
Famille
1
Ca II K prominence
0.98
Ca II
2
Ca II K EW
0.94
Ca II
3
Ca II K FWHM
0.91
Ca II
4
Ca II H prominence
0.87
Ca II
5
Ca II H EW
0.84
Ca II
6
Hα EW
0.76
Balmer
7
Hα prominence
0.73
Balmer
8
Mg b EW
0.68
Métaux
9
Mg b prominence
0.64
Métaux
10
Balmer temperature index
0.59
Balmer
97,9 % des 30 descripteurs les plus importants (top-30 SHAP) sont des features spectrales physiques — aucune feature non physique ne domine. Survole les barres pour voir l'interprétation de chaque descripteur.

PCA vs XGBoost — deux questions, deux réponses

Ces deux approches semblent contradictoires (PCA trouve la température, XGBoost trouve Ca II/métallicité) mais sont en réalité complémentaires :

PCA
Direction de variance maximale
Non supervisé
Feature dominante
Raies de Balmer
Hα, Hβ, Hγ… PC1 = 31.5%
Résultat physique
Température T_eff
ρ(PC1, Teff) = +0.831
Maximise la variance totale
Balmer domine → PC1 thermique
Température = source de variance #1
Aucune étiquette utilisée
XGBoost
Frontière de décision optimale
Supervisé
Feature dominante
Raies Ca II H&K
Ca K, Ca H (rangs 1-5 SHAP)
Résultat physique
Métallicité + gravité
Ca II domine top-5 SHAP
Minimise l'erreur de classification
Ca II domine → discriminabilité
Métallicité = meilleur séparateur
Étiquettes de type spectral utilisées
✓ Ces deux résultats sont cohérents et complémentaires — ils répondent à deux questions différentes. La PCA répond à : «quelle est la source de variance dominante ?» → la température. XGBoost répond à : «quelle information sépare le mieux les classes ?» → la métallicité via Ca II. Le fait que les deux approches, supervisée et non supervisée, convergent vers la même structure physique confirme la validité des 183 descripteurs.

Lien avec le pipeline AstroSpectro complet

Ce résultat s'inscrit dans une progression cohérente du projet AstroSpectro :

1
Baseline
32%
Random Forest
4 features binaires
Preuve de concept initiale
2
Features V1 + métadonnées
75–84%
RF / XGBoost
Avec ra, dec, Gaia
Amélioration mais fuite de données
ACTUEL
3
Features V2
87%
XGBoost
spectro_only=True
Physique intrinsèque uniquement
Contre-intuitif : passer de 84 % à 87 % en supprimant des features — ra, dec, redshift apportaient un signal corrélé via les biais observationnels de LAMOST (programmes d'observation ciblés par type spectral), pas via la physique réelle. Leur suppression force le modèle à apprendre de vrais indicateurs physiques → meilleure généralisation.

Utilisation du modèle

Charger et prédire

from src.pipeline.classifier import SpectralClassifier

# Chargement du modèle de référence
clf = SpectralClassifier.load_model(
"data/models/spectral_classifier_xgboost_20260213T225019Z.pkl"
)

# Prédire sur de nouveaux spectres (même format de features)
predictions = clf.model_pipeline.predict(X_new)
probabilities = clf.model_pipeline.predict_proba(X_new)

Métadonnées du run de référence

Le run de référence est documenté dans :

data/reports/20260213T225019Z/
├── spectral_classifier_xgboost_20260213T225019Z_meta.json
└── spectral_classifier_xgboost_20260213T225019Z.pkl

Le meta JSON contient les hyperparamètres finaux, la liste des 59 features sélectionnées, les labels de classes, et le fichier source d'entraînement (features_20251217T160120Z.csv).