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.

Fine accuracy
98.1%
23 classes · 631,098 stars · baseline 97.2%
Fine macro-F1
0.786
unweighted over classes · baseline 0.782
Broad accuracy
99.2%
9 families
Broad macro-F1
0.858
balanced accuracy 0.865
clf-v2026.09.20 held-out test split · 631,098 labeled catalog v2026.09.25

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).

checkmeasuredthresholdboundstarsverdict
ASAS-SN fine accuracy97.55%≥ 93.00%≥ 93.00%209,531pass
ASAS-SN broad accuracy99.02%≥ 96.60%≥ 96.60%209,531pass

OGLE criterion

OGLE catalog classes as labels (68,242 stars).

checkmeasuredthresholdboundstarsverdict
OGLE wrong-family rate0.45%≤ 1.23%≤ 1.36%68,242pass
OGLE in-family accuracy91.95%≥ 62.55%≥ 62.00%68,242pass
contact eclipsers + non-contact eclipsers (ECL_C + ECL_NC) · balanced accuracymember recalls ECL_C 87.3% · ECL_NC 89.3% · stars = the smaller member88.29%≥ 65.54%≥ 65.16%8,952pass
contact eclipsers + non-contact eclipsers (ECL_C + ECL_NC) · recall into EA/EB/EWeither member landing in any member's family99.87%≥ 99.53%≥ 99.44%44,760pass
OGLE recall, class by class (18 classes)
checkmeasuredthresholdboundstarsverdict
contact eclipsers (ECL_C) → EWjudged as the pair ECL_C + ECL_NC87.29%≥ 99.55%≥ 99.34%8,952reported
non-contact eclipsers (ECL_NC) → EA/EBjudged as the pair ECL_C + ECL_NC89.29%≥ 31.53%≥ 30.79%35,808reported
ELL → ROT97.16%≥ 94.92%≥ 93.64%2,638pass
RRAB → RRAB99.48%≥ 99.17%≥ 98.88%8,575pass
RRC → RRC99.15%≥ 98.23%≥ 97.53%3,171pass
RRD → RRD19.09%≥ 8.18%≥ 2.64%220pass
CEP_F → DCEP95.99%≥ 95.81%≥ 93.30%573pass
CEP_1O → DCEPS93.12%≥ 84.39%≥ 78.79%378pass
CEP_MULTI → DCEP/DCEPS93.90%≥ 57.32%≥ 40.93%82pass
ACEP_F → DCEP61.90%≥ 52.38%≥ 19.69%21reported
ACEP_1O → DCEPS61.54%≥ 30.77%≥ 0.00%13reported
T2CEP_BLHER → CWB83.33%≥ 87.88%≥ 75.83%66pass
T2CEP_WVIR → CWA/CWB94.81%≥ 89.61%≥ 79.18%77pass
T2CEP_RVTAU → CWA72.97%≥ 70.27%≥ 47.73%37reported
DSCT → DSCT/HADS95.18%≥ 70.36%≥ 65.61%830pass
MIRA → M99.86%≥ 99.25%≥ 98.93%6,634pass
ROT → ROT67.47%≥ 56.63%≥ 45.09%166pass
heartbeat stars (HB) → ROT0.00%≥ 0.00%≥ 0.00%1reported

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.

Coverage
99.4%
target 90% · holds
Mean set size
1.664
on 631,098 labeled test stars
Abstains
53.6%
of labeled test stars
Abstains, whole archive
51.5%
5,158,287 of 10,010,465 classified stars
Stars with an ASAS-SN light curve
99.4%
sets 1.660 wide · abstains 55.7% · 209,531 stars
Periods found without VSX
99.5%
sets 1.665 wide · abstains 53.8% · 604,592 stars

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

  • 1 class3,465,05234.6%
  • 2 classes5,887,59258.8%
  • 3 classes368,9573.7%
  • 4 classes153,0631.5%
  • 5 classes68,2510.7%
  • 6 classes36,3910.4%
  • 7 classes18,9530.2%
  • 8 classes8,5900.1%
  • 9 classes2,8290.0%
  • 10 classes6960.0%
  • 11 classes800.0%
  • 12 classes110.0%

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_statusmeaningstarsshare
classifiedscored on at least one light curve10,010,46597.1%
no_viewno light curve with enough detections294,2192.9%
below_floorflat within noise; published as CONST00.0%
unknown_bandno light curve in a supported band00.0%

Phenomenological head

  • periodic4,026,02640.2%
  • eclipsing2,208,39322.1%
  • irregular2,156,45421.5%
  • pulsating1,412,64414.1%
  • eruptive201,6812.0%
  • constant5,2670.1%

Broad family (top class)

  • Rotational4,064,74640.6%
  • Long-period2,706,60127.0%
  • Eclipsing1,896,63018.9%
  • RR Lyrae689,7146.9%
  • δ Scuti324,6283.2%
  • Eruptive / CV185,4621.9%
  • Other103,7591.0%
  • Cepheid32,8090.3%
  • Constant6,1160.1%

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.

0.1110100
% of the true class (row), log scaleshares ≥ 0.5% printed · diagonal = correct

Per class

Precision, recall & F1

Follows the matrix toggle above.

Broad · 9 families

classprecisionrecallF1support
Eclipsing0.9960.9960.99659,943
RR Lyrae0.9780.9860.98228,091
Cepheid0.9300.9130.9211,391
δ Scuti0.8920.9360.9132,785
Long-period0.9910.9970.994201,951
Rotational0.9970.9920.994326,995
Eruptive / CV0.9240.9400.9329,465
Other0.6830.7820.729377
Constant0.2890.2400.262100

Subsets

Slices & diagnostics

ASAS-SN discoveries
90.6%
macro-F1 0.600 · 29,846 stars
VSX-native types
98.4%
macro-F1 0.792 · 601,252 stars
Blazhko anomaly AUC
0.570
169 Blazhko vs 18,186 RRab (0.5 = chance)
Ambiguous-family accuracy
62.4%
197,640 stars with generic VSX types (E, RR, CEP, LPV)

By label source

Labels are weighted by source reliability. Accuracy on Gaia DR3 imports partly reflects agreement with Gaia.

label sourceaccuracymacro-F1starsshare
Gaia DR3 imports99.2%0.575470,65274.6%
ZTF catalog types98.0%0.60461,3379.7%
OGLE catalog types95.9%0.73340,5866.4%
ASAS-SN catalog types90.5%0.56929,2634.6%
curated VSX types90.5%0.69529,2604.6%
Ambiguous families, one by one
VSX typecounts as rightaccuracystars
CEPDCEP / DCEPS / CWA / CWB41.2%119
EEW / EA / EB62.1%195,197
LPVM / SR / L89.2%213
RRRRAB / RRC / RRD88.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.

Training stars
5,306,844
5,011,312 with a fine label · 295,532 with only an OGLE family
Schedule
30 passes
over the data · cosine learning rate, peak 0.0003 · best at pass 23 · trained from scratch
Validation macro-F1
0.795
the checkpoint kept
Probability calibration
T = 0.637
temperature scaling, fit on the validation split

Test light curves by survey

  • ASAS-SN599,92213.4%
  • Gaia2,584,65657.9%
  • OGLE139,3483.1%
  • ZTF1,133,72525.4%
  • ASAS-35,0690.1%
  • MASCARA3680.0%

How each light curve was matched to its star

  • name only2,950,58066.1%
  • position only1,485,72133.3%
  • verified26,7870.6%

Where the period came from

  • independent2,127,56247.7%
  • none1,955,18943.8%
  • VSX-matched284,8516.4%
  • second search95,4862.1%

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.

The classifier's architecture, left to rightA star supplies up to 8 views. Each view becomes four tensors — a 6 by 64 fold image, a 1 by 256 periodogram, 57 scalar features with a 57-wide presence mask, and a band identifier. Branch encoders turn those into 6 tokens — the fold, the periodogram, the band, and the scalar features read as 3 blocks (photometry, Gaia, provenance) — which a two-block transformer fuses into one view vector. Masked attention pools the view vectors into a 96-dimensional star embedding, and two heads read it: 23 fine classes and 6 phenomenological sets.one starup to 8 viewssurvey × bandeach view, as tensorsfold image6 × 64 · at P and 2Pperiodogram1 × 256 · log frequencyfeatures + presence mask57 + 57band1 of 13fused per view6 tokens + CLSfold, periodogram, band+ 3 feature blocks2 transformer blocksCLS → the view vectorpooled across viewsmasked attentionover the 8 slotsempty slots contributeexactly nothing→ embedding, 96-dtwo headsfine class23 classesphenomenology6 sets
clf-v2026.09.20 · ~0.5 M parameters, 2.2 MB ONNX (also used by Analyze).

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).