Classify transient sources accurately and efficiently.
Rank | Time | Branch | Commit | Train Time | Test Time | Transients Found | Transients Missed | False Positives | Score |
---|---|---|---|---|---|---|---|---|---|
1 | 17/07/31 11:43 | rol-randomforest | 06c55536 | 23s | 2s | 335 | 51 | 7 | 0.888 |
2 | 17/08/02 11:12 | rol-randomforest | 343c1a9c | 22s | 2s | 342 | 0 | 0 | 0.885 |
3 | 17/08/02 10:55 | casey-random-forest | e93e35ee | 23s | 2s | 339 | 0 | 0 | 0.882 |
4 | 17/07/31 04:19 | baseline | 5f91179e | 0s | 36s | 259 | 127 | 47 | 0.7 |
5 | 17/07/31 04:10 | baseline | 165655c4 | 0s | 35s | 259 | 127 | 47 | 0.7 |
6 | 17/08/02 10:13 | baseline | 64c14196 | 0s | 0s | 207 | 179 | 6 | 0.589 |
7 | 17/07/30 07:40 | baseline | 5f91179e | 0s | 13s | 56 | 39 | 56 | 0.569 |
Any member of the GOTO organization on GitHub can
submit an entry. First, clone this repository and create a branch with a
representative name (e.g., something like <last_name>-<short_description>
)
and switch to that branch:
git clone git@github.com:goto-obs/goto-vegas.git
cd goto-vegas
git branch casey-random-forest
git checkout casey-random-forest
Now create your classifier by changing the behaviour of the Classifier
class
in classifier/classifier.py
. Specifically, you
will want to change the code in the train
and classify
functions.
Here is the worst kind of classifier, which will never find any transient:
# -*- coding: utf-8 -*-
from __future__ import division, print_function
from .base import BaseClassifier
import numpy as np
class Classifier(BaseClassifier):
def train(self, predictors, classifications, **kwargs):
"""
Train the model based on a table of predictors and known classifications
for objects in a training set.
:param predictors:
An :class:`astropy.table.Table` of possible predictors, where the
number of rows is the number of objects in the training set.
:param classifications:
An array of classifications for all objects in the training set.
This array should have the same length as the number of predictor rows.
"""
return None
def classify(self, predictors, **kwargs):
"""
Classify multiple objects, given the predictors for each object.
:param predictors:
A table of predictors (one row per object).
:returns:
A single-valued classification for each object.
"""
return np.zeros(len(predictors))
You can test your classifier locally by running python score.py
. If you want
to submit your entry to the leaderboard, you will need to commit your changes
and push them to GitHub:
git add classifier/classifier.py
git commit -m "Add Random Forest entry"
git push --set-upstream origin casey-random-forest
Your classifier will be run on the test set and scored automatically by Travis CI. Once the classifier has been scored, your entry will (hopefully!) appear on the leaderboard. Otherwise, your classifier might have done a very bad job and not made it in to the top ten. All entries evaluated by Travis CI are available here.
- Andrew R. Casey (Monash)