Machine learning and deep learning models to estimate metallicity from light curves.
...
All Python packages needed are listed in requirements.txt file and can be installed simply using the pip command.
The following models are implemented in this repository:
- Support Vector Regression (SVR) - A wrapper function for sklearn SVR
- Random Forest Regressor (RF) - A wrapper function for sklearn RandomForestRegressor
- XGBoost (XGB) - A wrapper function for XGBoost package
- Fully Convolutional Network (FCN)
- Residual Network (ResNet)
- Inception Time (InceptionTime)
- LSTM
- BiLSTM
- ConvLSTM
- GRU
- BiGRU
- ConvGRU
- AttentionGRU
- Transformer
- Informer
The output folder contains all the training logs, plots, and weights, divided by model.
the folder contains all the utility files for creating models, training them, plotting the results, and saving weights and logs.
In order to run all the experiments, the entry point file is run_experiments.py
, and you can find it in the root folder.
remember to add in the file constants.py
:
- The list of regressors (variable
regressors
). - The
dl
list that identifies (Boolean) whether the regressor is of the deep learning type or not. - the grid of the
param_grid
hyperparameters (model-dependent). Machine learning models have no hyperparameters here (None). Example.regressors = ["random_forest", "convgru"]
dl = [False, True]
ehparam_grid = [None, np.array([1, 1, 'l1', 5e-1, 5e-1, 0, 0, 0.1, 0.1])]
In the root folder, you can find some support scripts such as:
pre-processing.py
is necessary for the pre-processing of the photonometric light curves.plot_all_lightcurves.py
plot of the photonometric dataset of light curves (phase/magnitude).evaluation_models.py
uses weights from the towed model to evaluate light curves on an unknown test dataset.draw_models.py
draws all the implemented models (found in models/ folder).
Some of the models used are based on TSER project
This project has an MIT-style license, as found in the LICENSE file.
If you use this project for your research, a citation in your manuscript would be gladly appreciated.
@article{monti2024leveraging,
title={Leveraging Deep Learning for Time-Series Extrinsic Regression in Predicting the Photometric Metallicity of Fundamental-Mode RR Lyrae Stars},
author={Monti, Lorenzo and Muraveva, Tatiana and Clementini, Gisella and Garofalo, Alessia},
journal={Sensors},
volume={24},
number={16},
pages={5203},
year={2024},
publisher={MDPI}
}