Emmatassone / power-spectrum-classification

Classification of source power spectra.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Contributors Forks Stargazers Issues GNU GPLv3 License


Logo

Power-spectrum-classificator

Machine Learning techniques that classificate Black hole or Neutron star power spectra.
Report Bug

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact

About The Project

power-spectrum-classification is a project focused on automating the classification of power spectra sources.

(back to top)

Built With

The project is built with python, with the help of the following libraries.

  • scikit-learn

(back to top)

Train your own model

To classificate a new source or observation, the observation file (.asc) should be placed in data directory. The file should indicate the binning after the file extension (e.g., .asc_100 for rebin=100).

Train the Random Forest Model

To train the Random Forest Model write in the terminal

python PSC.py --RF --n_estimators=N_ESTIMATORS min_samples_leaf=MIN_SAMPLES_LEAF min_samples_split=MIN_SAMPLES_SPLIT

where the optional arguments n_estimators, min_samples_leaf and min_samples_split are by default 200,20 and 50 respectively.

Train the Long Short Term Memory Model

To train the Long Short Term Memory model write in the terminal

python PSC.py --RNN --batch_size=BATCH_SIZE --epochs=EPOCHS

Train the Convolutional Neural Network Model

Similary, to traub the CNN model

python PSC.py --CNN --batch_size=BATCH_SIZE --epochs=EPOCHS

There are also intrinsic parameter of the models that have to be modified specifically in the function that builds the specific model. These function can be found at models/models.py.

(back to top)

Load a trained model

Roadmap

  • Add Sources
    • Black Holes
    • Neutron Stars
    • Galaxies
  • Add Neural Network

(back to top)

Contributing

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

Distributed under the GNU GPLv3 License. See LICENSE for more information.

(back to top)

Contact

Emmanuel A. Tassone - @EmmanuelTassone - emmanueltassone@gmail.com

Project Link: https://github.com/Emmatassone/power-spectrum-classification

(back to top)

Acknowledgments

A special thanks should be done to the following open-source projects.

(back to top)

About

Classification of source power spectra.

License:MIT License


Languages

Language:Python 100.0%