Papers › Photometric Supernova Classification With Machine Learning

Photometric Supernova Classification With Machine Learning

2 Mar 2016arXiv:1603.00882links table onlyarchive 2025-07-28

Michelle Lochner, Jason D. McEwen, Hiranya V. Peiris, Ofer Lahav, Max K. Winter

The archive published only this paper's code-link row. Authors, date and abstract are from arXiv's metadata (CC0), read from the Kaggle arXiv metadata snapshot of 2026-09-12 where its title matched the archive's; the title is the archive's.

Automated photometric supernova classification has become an active area of research in recent years in light of current and upcoming imaging surveys such as the Dark Energy Survey (DES) and the Large Synoptic Survey Telescope, given that spectroscopic confirmation of type for all supernovae discovered will be impossible. Here, we develop a multi-faceted classification pipeline, combining existing and new approaches. Our pipeline consists of two stages: extracting descriptive features from the light curves and classification using a machine learning algorithm. Our feature extraction methods vary from model-dependent techniques, namely SALT2 fits, to more independent techniques fitting parametric models to curves, to a completely model-independent wavelet approach. We cover a range of representative machine learning algorithms, including naive Bayes, k-nearest neighbors, support vector machines, artificial neural networks and boosted decision trees (BDTs). We test the pipeline on simulated multi-band DES light curves from the Supernova Photometric Classification Challenge. Using the commonly used area under the curve (AUC) of the Receiver Operating Characteristic as a metric, we find that the SALT2 fits and the wavelet approach, with the BDTs algorithm, each achieves an AUC of 0.98, where 1 represents perfect classification. We find that a representative training set is essential for good classification, whatever the feature set or algorithm, with implications for spectroscopic follow-up. Importantly, we find that by using either the SALT2 or the wavelet feature sets with a BDT algorithm, accurate classification is possible purely from light curve data, without the need for any redshift information.

PaperPDFCodeCode Syntology ran

In Syntology Open this paper in Syntology's Atlas, the map of the papers in Syntology's graph and their citations.

For agents, Syntology's MCP tool lists every function and class Syntology harvested from this paper and whether it ran (how to connect): get_harvested_code_for_paper(arxiv_id="1603.00882")

Code

Syntology Ran 0 of 16 code samples harvested from 1 repository linked to this paper; 16 have no recorded run.

By repository: community (archive-listed): 16 samples from 1 repository, 0 ran. The run record, sample by sample. “Ran” means executed on a synthesized input, not that the code is correct or reproduces the paper.

LSSTDESC/snmachine mentioned on GitHubBSD-3-Clause report

Repository list and official/mentioned flags are the archive's, frozen 2025-07-28. Reachability, where shown, is from one Syntology probe window (2026-09-16 to 2026-09-18); repositories not probed show nothing. GitHub stars are not tracked.

Code Syntology ran Syntology

16 samples harvested; 0 ran; 0 honoured the contract we drafted; 16 have no recorded run. Read from Syntology's graph 2026-09-24; that is when this build read the record, not when the samples ran.

16unverified

Licence: 0 of the 16 samples are pointer only, meaning Syntology does not serve that copy's text. This page shows no code text for any sample; each one links to its file in the repository.

Harvested from LSSTDESC/snmachine. “Ran” means the sample executed on a synthesized input. It does not mean the output is correct, and nothing here reproduces the paper's results. “Honoured” and “violated” refer to a contract Syntology drafted from the code itself; “our draft was wrong” and “fixture could not drive it” are failures of Syntology's instrument, not of the code.

Each sample ends with its code_sha256, Syntology's identity for that exact code. An agent fetches the stored sample with Syntology's MCP tool get_code(code_sha256="…") (how to connect); click an identity to copy that call.

Repository labels, per sample. official repository: The archive marks this repository official for the paper. named in the paper: The archive records that the paper mentions this repository; it is not marked official. community (archive-listed): In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper. found in paper text by Syntology: Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted. community: Not in the archive's code links for this paper; a community repository Syntology harvested. Samples from a repository marked official are listed first. Licence labels name the repository's licence as recorded at harvest. “Pointer only” means Syntology does not serve that copy's text, for one of four reasons: no licence file was found; the licence was not identified; the licence is recorded as permissive but that copy's record is not marked cleared; or the licence is outside the permissive list Syntology serves text under (MIT, Apache-2.0, BSD and similar). Some licences outside that list permit redistribution, such as WTFPL, and GPL-3.0 under its conditions; they are simply not on the list. Hover a licence label for the reason. File links open the file on GitHub at the default branch, which may have changed since the harvest.

are_sncosmo_aliases LSSTDESC/snmachine/snmachine/utils/extra_utils.py community (archive-listed) unverified BSD-3-Clause (permissive) · 07563d22a4817fe4 · report
choose_z_ddf_plasticc LSSTDESC/snmachine/snmachine/snaugment.py community (archive-listed) unverified BSD-3-Clause (permissive) · 465d504fd4834319 · report
choose_z_wfd_basev2 LSSTDESC/snmachine/snmachine/snaugment.py community (archive-listed) unverified BSD-3-Clause (permissive) · 3927266a6de30cf1 · report
choose_z_wfd_plasticc LSSTDESC/snmachine/snmachine/snaugment.py community (archive-listed) unverified BSD-3-Clause (permissive) · 895b849eb5532c5d · report
compute_chisq_over_pts LSSTDESC/snmachine/snmachine/chisq.py community (archive-listed) unverified BSD-3-Clause (permissive) · 11753bd91b6d0661 · report
compute_dict_chisq_over_pts_per_label LSSTDESC/snmachine/snmachine/analysis.py community (archive-listed) unverified BSD-3-Clause (permissive) · c50e52902cbd66ab · report
compute_overall_chisq LSSTDESC/snmachine/snmachine/chisq.py community (archive-listed) unverified BSD-3-Clause (permissive) · 83df99a95f476153 · report
compute_overall_chisq_over_pts LSSTDESC/snmachine/snmachine/chisq.py community (archive-listed) unverified BSD-3-Clause (permissive) · b4c92cf940634495 · report
get_MAP LSSTDESC/snmachine/snmachine/snfeatures.py community (archive-listed) unverified BSD-3-Clause (permissive) · f86e8b1bc86f403e · report
get_chisq_over_pts_per_obj LSSTDESC/snmachine/snmachine/analysis.py community (archive-listed) unverified BSD-3-Clause (permissive) · 583dc69fff7b57b6 · report
get_directories LSSTDESC/snmachine/snmachine/utils/plasticc_pipeline.py community (archive-listed) unverified BSD-3-Clause (permissive) · 0841e79d5023f0f4 · report
get_tsne LSSTDESC/snmachine/snmachine/tsne_plot.py community (archive-listed) unverified BSD-3-Clause (permissive) · b5e495440a699c33 · report
is_dataset_in_t_range LSSTDESC/snmachine/snmachine/gps.py community (archive-listed) unverified BSD-3-Clause (permissive) · bd0861c1bbf3493c · report
load_configuration_file LSSTDESC/snmachine/snmachine/utils/plasticc_pipeline.py community (archive-listed) unverified BSD-3-Clause (permissive) · 84b6c66eabd7320a · report
load_dataset LSSTDESC/snmachine/snmachine/utils/plasticc_pipeline.py community (archive-listed) unverified BSD-3-Clause (permissive) · 774709756ed73405 · report
plot_confusion_matrix LSSTDESC/snmachine/snmachine/analysis.py community (archive-listed) unverified BSD-3-Clause (permissive) · 88da824ebaae134c · report

Results from the paper archive 2025-07-28

No leaderboard rows for this paper in the archive.

Report a problem or propose a change · a person checks every report against the paper or source before anything changes; decisions are listed on /corrections