MINAS was developed to assist and facilitate the complete Machine Learning workflow for astronomical photometric surveys. The package integrates all stages of the process, from preprocessing to final model application.
Fun fact: MINAS is also the name of a Brazilian state (Minas Gerais), the home state of Icaro Meidem, the package creator. As a proud "mineiro" (someone from Minas Gerais), the name represents both the astronomical focus and personal heritage.
- Complete workflow: Integrates preprocessing, feature selection, hyperparameter tuning, and model application in a single package.
- Random Forest and XGBoost integrated: Optimized pipelines for classification and regression with the main ML libraries, easily extensible to other algorithms.
- Intelligent feature selection: Uses Permutation Importance to automatically identify the most relevant features.
- Hyperparameter tuning: Built-in tools for model optimization with grid search and random search.
- Monte Carlo application: Photometric error propagation using Monte Carlo simulations during prediction.
- Automatic filter recognition: Native support for filters from major photometric surveys such as J-PAS, J-PLUS, S-PLUS, GAIA, WISE, GALEX.
- Bolometric correction: Pre-trained models for bolometric correction calculation based on Teff, log g, and [Fe/H].
- Modular structure: Easy to adapt, extend, and integrate new methods or databases.
evaluation/
Tools for model evaluation, metrics, plots, and feature selection (e.g., permutation importance).models/
Implementation of Random Forest, XGBoost models, and utilities for ML pipelines.preprocess/
Functions for data preprocessing, catalog manipulation, normalization, missing value handling, etc.tuning/
Methods for hyperparameter search (grid search, random search) and pipeline integration.bolometric/
Modules for classification and bolometric correction calculation with pre-trained models.__init__.py
Package initialization, filter definitions, parameter aliases, and submodule integration.setup.pyandpyproject.toml
Configuration files for modern package installation (PEP 517/518).
Install the package (recommended):
pip install /path/to/minasNote: In modern Python environments, editable mode (
-e) may not work due to pip/setuptools changes. Prefer standard installation unless you really need live code editing.
Import in your code:
import minas as mgUsage example:
from minas.models import create_model
model = create_model('RF-REG')The examples/ folder contains complete Jupyter notebooks demonstrating the full ML workflow:
-
data/: Data preparation and catalog creationdata_creation.ipynb: Creating training datasets from spectroscopic surveysapply/data/data_prepare.ipynb: Preprocessing data for model application
-
tuning/: Hyperparameter optimization and feature selectiontuning_RF.ipynb/tuning_XGB.ipynb: Grid search for optimal hyperparametersfeature_import_RF.ipynb/feature_import_XGB.ipynb: Permutation importance analysispipeline/: Custom pipeline configurations
-
training/: Model training and evaluationpredict_RF_all.ipynb/predict_XGB_all.ipynb: Training models for Teff, log g, and [Fe/H]graphs_XGB_all.ipynb: Visualization of results and performance metricsmodels/: Saved trained models (XGB, RF)predicts/: Prediction metrics and validation resultsgraphs_results/: Performance plots per parametergraphs_matrix/: Confusion matrices and correlation plots
-
apply/: Applying trained models to new dataapply_models_XGB.ipynb/apply_models_RF.ipynb: Model application with Monte Carlo error propagationpred_results/: Final predictions with uncertainties
These notebooks provide a complete template for stellar parameter estimation from photometric data.
MINAS includes pre-trained models for calculating bolometric correction (BC) based on the corrections presented by Jordi et al. (2010), which provides BC data for Gaia-observed stars based on Teff, log g, and [Fe/H].
Two Machine Learning algorithms were trained to predict bolometric correction:
| Model | R² | MAD | Standard Deviation |
|---|---|---|---|
| Random Forest | 0.9970 | 0.0067 mag | 0.0573 mag |
| XGBoost | 0.9983 | 0.0062 mag | 0.0430 mag |
Figure: Performance of XGBoost (left) and Random Forest (right) models for bolometric correction prediction.
import minas as mg
# Apply bolometric correction with XGBoost
df = mg.bolometric.apply_bc(
data='your_catalog.csv',
teff_col='Teff',
logg_col='logg',
feh_col='[M/H]',
model_type='XGB', # or 'RF'
sigma_multiplier=3.0, # Standard deviation multiplier for uncertainty
output_file='catalog_with_bc.csv'
)BC uncertainty is calculated as σ_BC = multiplier × standard_deviation, where the multiplier is user-defined (default: 3.0). Statistics are automatically validated based on the validation sample included in the package, showing the percentage of objects within specified error limits.
Jordi, C., Gebran, M., Carrasco, J. M., et al. (2010). Gaia broad band photometry. Astronomy & Astrophysics, 523, A48. DOI: 10.1051/0004-6361/200913234
- You can add new ML algorithms by creating modules in
models/and integrating them into the pipeline. - New filters or surveys can be added by editing the
FILTERSdictionary in__init__.py.
Pull requests and suggestions are welcome! Please follow the package's modularity and documentation standards.
- Icaro Meidem
- Contact: [email protected]
This package is distributed under the MIT license. For questions, open an issue in the repository.
MINAS foi desenvolvido para auxiliar e facilitar o fluxo de trabalho completo de análises de Machine Learning em levantamentos fotométricos astronômicos. O pacote integra todas as etapas do processo, desde o pré-processamento até a aplicação final dos modelos.
Curiosidade: MINAS também é o nome de um estado brasileiro (Minas Gerais), terra natal de Icaro Meidem, criador do pacote. Como um orgulhoso mineiro, o nome representa tanto o foco astronômico quanto a herança pessoal.
- Fluxo de trabalho completo: Integra pré-processamento, seleção de features, busca de hiperparâmetros e aplicação de modelos em um único pacote.
- Random Forest e XGBoost integrados: Pipelines otimizados para classificação e regressão com as principais bibliotecas de ML, facilmente extensível para outros algoritmos.
- Seleção inteligente de features: Utiliza Permutation Importance para identificar as características mais relevantes automaticamente.
- Busca de hiperparâmetros: Ferramentas integradas para otimização de modelos com grid search e random search.
- Aplicação com Monte Carlo: Propagação de erros fotométricos usando simulações de Monte Carlo durante a predição.
- Reconhecimento automático de filtros: Suporte nativo aos filtros dos principais levantamentos fotométricos, como J-PAS, J-PLUS, S-PLUS, GAIA, WISE, GALEX.
- Correção bolométrica: Modelos pré-treinados para cálculo de correção bolométrica baseados em Teff, log g e [Fe/H].
- Estrutura modular: Fácil de adaptar, estender e integrar novos métodos ou bancos de dados.
evaluation/
Ferramentas para avaliação de modelos, métricas, gráficos e seleção de features (ex: permutation importance).models/
Implementação dos modelos Random Forest, XGBoost e utilitários para pipeline de machine learning.preprocess/
Funções para pré-processamento de dados, manipulação de catálogos, normalização, tratamento de valores ausentes, etc.tuning/
Métodos para busca de hiperparâmetros (grid search, random search) e integração com pipelines.bolometric/
Módulos para cálculo de correção bolométrica com modelos pré-treinados.__init__.py
Inicialização do pacote, definição de filtros reconhecidos, aliases de parâmetros e integração dos submódulos.setup.pyepyproject.toml
Arquivos de configuração para instalação do pacote no modo moderno (PEP 517/518).
Instale o pacote normalmente:
pip install /caminho/para/minasNota: Para ambientes modernos, a instalação editável (
-e) pode não funcionar devido a mudanças no pip/setuptools. Prefira a instalação padrão, a menos que você realmente precise editar o código frequentemente.
Importe no seu código:
import minas as mgExemplo de uso:
from minas.models import create_model
model = create_model('RF')A pasta examples/ contém notebooks Jupyter completos demonstrando todo o fluxo de trabalho de ML:
-
data/: Preparação de dados e criação de catálogosdata_creation.ipynb: Criação de datasets de treinamento a partir de levantamentos espectroscópicosapply/data/data_prepare.ipynb: Pré-processamento de dados para aplicação de modelos
-
tuning/: Otimização de hiperparâmetros e seleção de featurestuning_RF.ipynb/tuning_XGB.ipynb: Busca em grade para hiperparâmetros ótimosfeature_import_RF.ipynb/feature_import_XGB.ipynb: Análise de permutation importancepipeline/: Configurações personalizadas de pipeline
-
training/: Treinamento e avaliação de modelospredict_RF_all.ipynb/predict_XGB_all.ipynb: Treinamento de modelos para Teff, log g e [Fe/H]graphs_XGB_all.ipynb: Visualização de resultados e métricas de desempenhomodels/: Modelos treinados salvos (XGB, RF)predicts/: Métricas de predição e resultados de validaçãographs_results/: Gráficos de desempenho por parâmetrographs_matrix/: Matrizes de confusão e gráficos de correlação
-
apply/: Aplicação de modelos treinados em novos dadosapply_models_XGB.ipynb/apply_models_RF.ipynb: Aplicação de modelos com propagação de erros via Monte Carlopred_results/: Predições finais com incertezas
Esses notebooks fornecem um template completo para estimativa de parâmetros estelares a partir de dados fotométricos.
O MINAS inclui modelos pré-treinados para cálculo de correção bolométrica (BC) baseados nas correções apresentadas por Jordi et al. (2010), que fornece dados de BC para estrelas observadas pelo Gaia com base em Teff, log g e [Fe/H].
Dois algoritmos de Machine Learning foram treinados para prever a correção bolométrica:
| Modelo | R² Score | MAD | Desvio Padrão |
|---|---|---|---|
| Random Forest | 0.9970 | 0.0067 mag | 0.0573 mag |
| XGBoost | 0.9983 | 0.0062 mag | 0.0430 mag |
Figura: Desempenho dos modelos XGBoost (esquerda) e Random Forest (direita) para predição de correção bolométrica.
import minas as mg
# Aplicar correção bolométrica com XGBoost
df = mg.bolometric.apply_bc(
data='your_catalog.csv',
teff_col='Teff',
logg_col='logg',
feh_col='[M/H]',
model_type='XGB', # ou 'RF'
sigma_multiplier=3.0, # Multiplicador do desvio padrão para incerteza
output_file='catalog_with_bc.csv'
)A incerteza da BC é calculada como σ_BC = multiplicador × desvio_padrão, onde o multiplicador é escolhido pelo usuário (padrão: 3.0). As estatísticas são validadas automaticamente com base na amostra de validação incluída no pacote, mostrando a porcentagem de objetos dentro dos limites de erro especificados.
Jordi, C., Gebran, M., Carrasco, J. M., et al. (2010). Gaia broad band photometry. Astronomy & Astrophysics, 523, A48. DOI: 10.1051/0004-6361/200913234
- Você pode adicionar novos algoritmos de ML criando módulos em
models/e integrando ao pipeline. - Novos filtros ou levantamentos podem ser adicionados editando o dicionário
FILTERSno__init__.py.
Pull requests e sugestões são bem-vindos! Siga o padrão de modularidade e documentação do pacote.
- Icaro Meidem
- Contato: [email protected]
Este pacote é distribuído sob a licença MIT. Para dúvidas, abra uma issue no repositório.


