Portfolio@Anshuman791322
Research2025

Applied research

Periodically variable star classification from light curves.

JupyterPythonscikit-learnAstronomy

Variable star classification is a real signal-processing problem dressed up as ML. The notebook treats it as a feature-engineering exercise on the light curves, then a classical classifier — every step visible so someone else can reproduce the result.

01

Features from the light curve

I extracted phase-folded amplitude, periodicity strength, and shape descriptors from the raw light curves. Each feature has a notebook cell that plots what it looks like for the major classes — so the model isn't a black box, it's reading the same signals an astronomer would.

  • Phase-folding to expose the period
  • Amplitude + skew + period-power features
  • Per-class visual sanity checks before training
02

Reproducible classifier

A scikit-learn pipeline does the actual fit — deliberately classical, so the result can be inspected, retrained on new data, and explained. The notebook ships with the train/val split, the metrics that matter for an imbalanced star catalogue, and the confusion matrix that shows where the model still struggles.

  • scikit-learn pipeline — fit, persist, reuse
  • Stratified split + per-class precision/recall
  • Honest confusion matrix instead of a single accuracy number
Build journal

What I built, decided, traded, and learned.

What I built

End-to-end notebook: ingest light-curve catalogue → engineered features → train classifier → confusion-matrix readout.

Key decisions

Classical features over a black-box CNN — the signal IS a periodogram. Stratified split because the class balance is skewed.

Trade-offs

Hand-crafted features take longer to engineer. Classical model has a hard ceiling on rare-class recall.

Outcomes

0.92 accuracy across four star classes, 0.89 macro-F1, and every step reproducible from the notebook in one run.

9.4kLabelled light curves
4Star classes classified
0.92Validation accuracy
0.89Macro F1

Want the source?

The public GitHub repository is the canonical home for Applied research. You can read the commit log, fork it, file an issue, or send a PR.