Classifier model card
Classifier performance
A neural network with 23 fine classes rolled up into 9 broad families, plus a second, phenomenological head over 6 labels (eclipsing, pulsating, periodic, eruptive, irregular, constant). Trained on light curves from all 6 surveys.
Baseline: a LightGBM model on the same stars' tabular features (5,011,312 training stars); fine class only.
Evaluation
Release criteria
Two criteria, fixed on 2026-09-18, before the evaluation. ASAS-SN: match the previous single-survey model. OGLE: match a LightGBM baseline on OGLE's own labels, within a 3σ binomial margin (the bound). Both are checked on all labeled test stars and on stars whose period was found independently of VSX. Contact and non-contact eclipsers (ECL_C + ECL_NC) are judged as a pair, since their recalls trade off.
Passes all 18 checks: all labeled test stars (631,098 stars).
ASAS-SN criterion
Stars with an ASAS-SN light curve (209,531).
| check | measured | threshold | bound | stars | verdict |
|---|---|---|---|---|---|
| ASAS-SN fine accuracy | 97.55% | ≥ 93.00% | ≥ 93.00% | 209,531 | pass |
| ASAS-SN broad accuracy | 99.02% | ≥ 96.60% | ≥ 96.60% | 209,531 | pass |
OGLE criterion
OGLE catalog classes as labels (68,242 stars).
| check | measured | threshold | bound | stars | verdict |
|---|---|---|---|---|---|
| OGLE wrong-family rate | 0.45% | ≤ 1.23% | ≤ 1.36% | 68,242 | pass |
| OGLE in-family accuracy | 91.95% | ≥ 62.55% | ≥ 62.00% | 68,242 | pass |
| contact eclipsers + non-contact eclipsers (ECL_C + ECL_NC) · balanced accuracymember recalls ECL_C 87.3% · ECL_NC 89.3% · stars = the smaller member | 88.29% | ≥ 65.54% | ≥ 65.16% | 8,952 | pass |
| contact eclipsers + non-contact eclipsers (ECL_C + ECL_NC) · recall into EA/EB/EWeither member landing in any member's family | 99.87% | ≥ 99.53% | ≥ 99.44% | 44,760 | pass |
OGLE recall, class by class (18 classes)
| check | measured | threshold | bound | stars | verdict |
|---|---|---|---|---|---|
| contact eclipsers (ECL_C) → EWjudged as the pair ECL_C + ECL_NC | 87.29% | ≥ 99.55% | ≥ 99.34% | 8,952 | reported |
| non-contact eclipsers (ECL_NC) → EA/EBjudged as the pair ECL_C + ECL_NC | 89.29% | ≥ 31.53% | ≥ 30.79% | 35,808 | reported |
| ELL → ROT | 97.16% | ≥ 94.92% | ≥ 93.64% | 2,638 | pass |
| RRAB → RRAB | 99.48% | ≥ 99.17% | ≥ 98.88% | 8,575 | pass |
| RRC → RRC | 99.15% | ≥ 98.23% | ≥ 97.53% | 3,171 | pass |
| RRD → RRD | 19.09% | ≥ 8.18% | ≥ 2.64% | 220 | pass |
| CEP_F → DCEP | 95.99% | ≥ 95.81% | ≥ 93.30% | 573 | pass |
| CEP_1O → DCEPS | 93.12% | ≥ 84.39% | ≥ 78.79% | 378 | pass |
| CEP_MULTI → DCEP/DCEPS | 93.90% | ≥ 57.32% | ≥ 40.93% | 82 | pass |
| ACEP_F → DCEP | 61.90% | ≥ 52.38% | ≥ 19.69% | 21 | reported |
| ACEP_1O → DCEPS | 61.54% | ≥ 30.77% | ≥ 0.00% | 13 | reported |
| T2CEP_BLHER → CWB | 83.33% | ≥ 87.88% | ≥ 75.83% | 66 | pass |
| T2CEP_WVIR → CWA/CWB | 94.81% | ≥ 89.61% | ≥ 79.18% | 77 | pass |
| T2CEP_RVTAU → CWA | 72.97% | ≥ 70.27% | ≥ 47.73% | 37 | reported |
| DSCT → DSCT/HADS | 95.18% | ≥ 70.36% | ≥ 65.61% | 830 | pass |
| MIRA → M | 99.86% | ≥ 99.25% | ≥ 98.93% | 6,634 | pass |
| ROT → ROT | 67.47% | ≥ 56.63% | ≥ 45.09% | 166 | pass |
| heartbeat stars (HB) → ROT | 0.00% | ≥ 0.00% | ≥ 0.00% | 1 | reported |
Passes all 18 checks: periods found without VSX (604,592 stars).
ASAS-SN criterion
Stars with an ASAS-SN light curve (200,622).
| check | measured | threshold | bound | stars | verdict |
|---|---|---|---|---|---|
| ASAS-SN fine accuracy | 97.52% | ≥ 93.00% | ≥ 93.00% | 200,622 | pass |
| ASAS-SN broad accuracy | 99.03% | ≥ 96.60% | ≥ 96.60% | 200,622 | pass |
OGLE criterion
OGLE catalog classes as labels (67,316 stars).
| check | measured | threshold | bound | stars | verdict |
|---|---|---|---|---|---|
| OGLE wrong-family rate | 0.45% | ≤ 1.20% | ≤ 1.33% | 67,316 | pass |
| OGLE in-family accuracy | 91.85% | ≥ 62.13% | ≥ 61.57% | 67,316 | pass |
| contact eclipsers + non-contact eclipsers (ECL_C + ECL_NC) · balanced accuracymember recalls ECL_C 87.3% · ECL_NC 89.2% · stars = the smaller member | 88.26% | ≥ 65.35% | ≥ 64.97% | 8,951 | pass |
| contact eclipsers + non-contact eclipsers (ECL_C + ECL_NC) · recall into EA/EB/EWeither member landing in any member's family | 99.88% | ≥ 99.58% | ≥ 99.49% | 44,493 | pass |
OGLE recall, class by class (18 classes)
| check | measured | threshold | bound | stars | verdict |
|---|---|---|---|---|---|
| contact eclipsers (ECL_C) → EWjudged as the pair ECL_C + ECL_NC | 87.30% | ≥ 99.55% | ≥ 99.34% | 8,951 | reported |
| non-contact eclipsers (ECL_NC) → EA/EBjudged as the pair ECL_C + ECL_NC | 89.21% | ≥ 31.15% | ≥ 30.41% | 35,542 | reported |
| ELL → ROT | 97.15% | ≥ 94.95% | ≥ 93.68% | 2,636 | pass |
| RRAB → RRAB | 99.48% | ≥ 99.17% | ≥ 98.88% | 8,452 | pass |
| RRC → RRC | 99.14% | ≥ 98.23% | ≥ 97.52% | 3,156 | pass |
| RRD → RRD | 19.27% | ≥ 8.26% | ≥ 2.66% | 218 | pass |
| CEP_F → DCEP | 95.97% | ≥ 95.80% | ≥ 93.28% | 571 | pass |
| CEP_1O → DCEPS | 93.12% | ≥ 84.39% | ≥ 78.79% | 378 | pass |
| CEP_MULTI → DCEP/DCEPS | 93.90% | ≥ 57.32% | ≥ 40.93% | 82 | pass |
| ACEP_F → DCEP | 61.90% | ≥ 52.38% | ≥ 19.69% | 21 | reported |
| ACEP_1O → DCEPS | 61.54% | ≥ 30.77% | ≥ 0.00% | 13 | reported |
| T2CEP_BLHER → CWB | 83.33% | ≥ 87.88% | ≥ 75.83% | 66 | pass |
| T2CEP_WVIR → CWA/CWB | 94.81% | ≥ 89.61% | ≥ 79.18% | 77 | pass |
| T2CEP_RVTAU → CWA | 72.97% | ≥ 70.27% | ≥ 47.73% | 37 | reported |
| DSCT → DSCT/HADS | 95.17% | ≥ 70.45% | ≥ 65.69% | 829 | pass |
| MIRA → M | 99.89% | ≥ 99.28% | ≥ 98.96% | 6,127 | pass |
| ROT → ROT | 67.30% | ≥ 57.86% | ≥ 46.11% | 159 | pass |
| heartbeat stars (HB) → ROT | 0.00% | ≥ 0.00% | ≥ 0.00% | 1 | reported |
Classes with fewer than 50 test stars are reported, not held to a threshold.
Uncertainty
Prediction sets and abstention
Each star gets a conformal set of classes that contains the true class 90% of the time (calibrated on 618,839 stars). The model abstains when the set spans more than one family or more than 4 classes; the top class is still published.
The sets are conservative. The model abstains on more than half of all stars; treat their top class as a best guess.
Set size, whole archive
Archive
Classification status
The status of all 10,304,684 stars the archive holds, including the few VSX has since removed; only classified stars have a class.
| clf_status | meaning | stars | share |
|---|---|---|---|
| classified | scored on at least one light curve | 10,010,465 | 97.1% |
| no_view | no light curve with enough detections | 294,219 | 2.9% |
| below_floor | flat within noise; published as CONST | 0 | 0.0% |
| unknown_band | no light curve in a supported band | 0 | 0.0% |
Phenomenological head
Broad family (top class)
Predicted shares, including the 51.5% of stars where the model abstains.
Errors
Confusion matrix
Rows are true classes; cells show the share predicted as each column. Hover for counts.
Per class
Precision, recall & F1
Follows the matrix toggle above.
Broad · 9 families
| class | precision | recall | F1 | support |
|---|---|---|---|---|
| Eclipsing | 0.996 | 0.996 | 0.996 | 59,943 |
| RR Lyrae | 0.978 | 0.986 | 0.982 | 28,091 |
| Cepheid | 0.930 | 0.913 | 0.921 | 1,391 |
| δ Scuti | 0.892 | 0.936 | 0.913 | 2,785 |
| Long-period | 0.991 | 0.997 | 0.994 | 201,951 |
| Rotational | 0.997 | 0.992 | 0.994 | 326,995 |
| Eruptive / CV | 0.924 | 0.940 | 0.932 | 9,465 |
| Other | 0.683 | 0.782 | 0.729 | 377 |
| Constant | 0.289 | 0.240 | 0.262 | 100 |
Fine · 23 classes
| class | precision | recall | F1 | baseline F1 | set coverage | support |
|---|---|---|---|---|---|---|
| EW | 0.989 | 0.964 | 0.976 | 0.986 | 97.9% | 47,893 |
| EA | 0.886 | 0.966 | 0.924 | 0.948 | 99.0% | 10,408 |
| EB | 0.613 | 0.713 | 0.659 | 0.706 | 92.1% | 1,642 |
| RRAB | 0.955 | 0.925 | 0.940 | 0.931 | 98.0% | 18,186 |
| RRC | 0.848 | 0.917 | 0.881 | 0.869 | 97.2% | 9,726 |
| RRD | 0.486 | 0.492 | 0.489 | 0.536 | 65.4% | 179 |
| DCEP | 0.897 | 0.895 | 0.896 | 0.902 | 93.1% | 785 |
| DCEPS | 0.868 | 0.837 | 0.852 | 0.866 | 89.3% | 337 |
| CWA | 0.720 | 0.715 | 0.718 | 0.760 | 76.4% | 144 |
| CWB | 0.728 | 0.664 | 0.695 | 0.712 | 78.4% | 125 |
| DSCT | 0.838 | 0.870 | 0.854 | 0.807 | 92.5% | 1,604 |
| HADS | 0.861 | 0.922 | 0.890 | 0.885 | 95.6% | 1,058 |
| GDOR | 0.336 | 0.342 | 0.339 | 0.353 | 48.8% | 123 |
| M | 0.972 | 0.984 | 0.978 | 0.968 | 99.6% | 8,083 |
| SR | 0.930 | 0.977 | 0.953 | 0.895 | 99.7% | 35,023 |
| L | 0.990 | 0.986 | 0.988 | 0.974 | 99.9% | 158,845 |
| ROT | 0.997 | 0.992 | 0.994 | 0.990 | 99.9% | 326,995 |
| YSO | 0.926 | 0.947 | 0.936 | 0.896 | 98.5% | 8,408 |
| GCAS | 0.722 | 0.685 | 0.703 | 0.703 | 83.0% | 159 |
| CV | 0.889 | 0.875 | 0.882 | 0.880 | 91.9% | 898 |
| AGN | 0.515 | 0.567 | 0.540 | 0.478 | 73.3% | 30 |
| Other | 0.689 | 0.792 | 0.737 | 0.764 | 86.5% | 347 |
| CONST | 0.289 | 0.240 | 0.262 | 0.179 | 40.0% | 100 |
Subsets
Slices & diagnostics
By label source
Labels are weighted by source reliability. Accuracy on Gaia DR3 imports partly reflects agreement with Gaia.
| label source | accuracy | macro-F1 | stars | share |
|---|---|---|---|---|
| Gaia DR3 imports | 99.2% | 0.575 | 470,652 | 74.6% |
| ZTF catalog types | 98.0% | 0.604 | 61,337 | 9.7% |
| OGLE catalog types | 95.9% | 0.733 | 40,586 | 6.4% |
| ASAS-SN catalog types | 90.5% | 0.569 | 29,263 | 4.6% |
| curated VSX types | 90.5% | 0.695 | 29,260 | 4.6% |
Ambiguous families, one by one
| VSX type | counts as right | accuracy | stars |
|---|---|---|---|
| CEP | DCEP / DCEPS / CWA / CWB | 41.2% | 119 |
| E | EW / EA / EB | 62.1% | 195,197 |
| LPV | M / SR / L | 89.2% | 213 |
| RR | RRAB / RRC / RRD | 88.6% | 2,111 |
Training
Training data
Each light curve the model reads is tagged with how it was matched to its VSX star and where its period came from. Uncertain and suspected VSX types are not used as labels.
Test light curves by survey
How each light curve was matched to its star
Where the period came from
VSX-matched and second-search periods can carry VSX's answer, so the release criteria are also checked without them.
Architecture
Model architecture
Up to 8 views per star (one light curve per survey and band). Each view is encoded from its fold, periodogram, features and band; the views are pooled into one embedding, and two heads classify it.
View inputs
Fold: 64 phase bins at P and 2P, each with median magnitude, scatter and log count. Phase 0 is the adopted epoch (minimum for eclipsers, maximum otherwise).
Periodogram: 256 points, log-frequency, 2.7×10⁻⁴ to 80 d⁻¹.
Features: 57 scalars (33 photometry, 12 Gaia, 12 provenance), each with a presence bit so missing values are distinct from zeros.
Details
Views: each carries its band as a token. Beyond 8, the lowest-scoring light curves are dropped; empty slots are masked out of pooling.
Heads: fine (23 classes) and phenomenological (6 shapes, trained as a partial-label problem so vague VSX types still contribute).