Skip to content

Compare machine learning algorithms to classify transient sources from GOTO

License

Notifications You must be signed in to change notification settings

GOTO-OBS/goto-vegas

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status

GOTO Vegas

Classify transient sources accurately and efficiently.

Leaderboard

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

Submit a classifier for evaluation

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 [email protected]: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.

Maintainer

About

Compare machine learning algorithms to classify transient sources from GOTO

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published