Git Product home page Git Product logo

black_holes's Introduction

BlackholeNotBlackhole

This webapp enabled scientists to quickly classify different types of spectra collected by the Sloan Digital Sky Survey. Through an intuitive user interface, scientists build a training set for automatic black hole classification and can curate the results of expiremental automatic classification algorithms.

Background

Is it possible to use machine learning to reliably identify 'fossil' black holes in the provided spectra?

A 'fossil' black hole exists in a galaxy with large amounts of Helium II (He II). We can write a script to filter out graphs without He II, BUT galaxies with Wolf-Rayet (WR) stars also have He II. WR stars leave a 'bump' in the graph at a specified interval, but the bump is not well defined. There is no known way to calculate whether a graph has this WR bump or not. That's where machine learning comes in. We want to see if the WR bump can be found using a neural net. Using machine learning to find the WR bump in graphs will allow us to subtract WR bump graphs from the He II graphs. Thus we will have a list of spectra with He II and no WR stars, leaving us with spectra that have 'fossil' black holes.

For more details, please see ML_Info/Project_Information.pdf

black_holes's People

Contributors

accua avatar amjcosta avatar dependabot[bot] avatar edbreeden avatar frankamp avatar larsonnd avatar missygerlach avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

black_holes's Issues

Put data somewhere else

From black_holes_backend created by sauln : codeforgoodconf/black_holes_backend#7

Currently, all the data is stored directly in the git repo. As we get more data to train on, this will become too big. The data should be stored somewhere that can be retrieved via a wget command.

  • Consolidate raw data in a single zip
  • Store the data somewhere (George Mason servers? AWS free-tier?)
  • Develop setup script to pull data from serve and run basic preprocessing.

make sure machine and human labels are consistent!!!

From black_holes_frontend created by edbreeden : codeforgoodconf/black_holes_frontend#8

I'm pretty sure that right now the humans input True if there IS a WR bump [meaning NOT a blackhole] and the machine marks galaxies as True if there is NO WR bump [meaning it IS a blackhole]. lets please make sure it does not do this before we use the app to train the computer!!! idk who is working on this project still but you guys can assign me if you want me to do it and ill change the html on the app to make sure it's clear and consistent.

  • Also unrelated side note: I probably can't video conference with the client but you should ask him if he has a written description to put on the front page or any info for the about page so one of us can through it in there :)

Track labels from individual users

From black_holes_frontend created by sauln : codeforgoodconf/black_holes_frontend#5

Keep track of the labels that a user gave and the labels that came from which person.

With this information, we can enable other features:

  • treat given labels as votes, only confirming the label if there have been enough or unanimous votes.
  • rate the accuracy of each user, with options to weight users' votes or reject them from participating.
  • retract labels from users.
  • enable training from #4 and track improvement.

TODO:

  • Build a user model
  • Build a vote model
  • Connect spectra->vote with 1-many relationship
  • Connect user->vote with 1-many relationship

Integrate logging

Python's built-in logging module is just OK. It's a little confusing to set up and configure properly. It's still leaps and bounds better than print statements.

  • Find decent logging library (maybe twiggy, logbook, or others)
  • Setup logging module to keep smart log files.
  • Convert all existing print statements into logging statements.
  • Add more logging in all views and modules.

Add a people trainer

From black_holes_frontend created by amjcosta : codeforgoodconf/black_holes_frontend#4

We could add a "people trainer" on to the front end. The app would display a picture that has been verified as a black hole or not a black hole, and once a user guesses the answer, the app tells them whether they got it right or not.

@simian201 feel free to add more information!

Convert to Django

๐Ÿ˜ข

After discussions with Andrew, we've decided to try converting the project to Django. We figure that in the long run, it will be easier. There will be hickups in getting everyone up to speed with the new system, but once that hurdle is crossed, expanding functionality of the frontend should be simpler.

Steps:

  • Develop shell django app
  • Port Galaxy model
  • Port DB controllers
  • Port DB seeding
  • Port templates
  • Port views

Fix hamburger button with thin screen

If you decrease the width of the browser, the nav-bar automatically collapses into a hamburger button. The hamburger button doesn't do anything though, so we can't access the navigation keys.

Fix the hamburger button is it creates a drop down navigation panel.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.