3.0 KiB
3.0 KiB
Implementação da Equação do Modelo como Artefato JSON
Visão Geral
Esta implementação adiciona a capacidade de extrair e salvar a equação do modelo de regressão linear como um artefato JSON, seguindo a arquitetura existente do projeto.
Mudanças Implementadas
1. TrainModelResult
- Arquivo:
model_manager/utils/models/train_model_result.py - Mudanças:
- Adicionado campo
equation: dict | None = Nonepara armazenar os metadados da equação - Adicionado campo
equation_path: str | None = Nonepara armazenar o caminho do arquivo JSON
- Adicionado campo
2. TrainingRepository
- Arquivo:
model_manager/utils/repository/training_repository.py - Mudanças:
- Adicionado método
_extract_model_equation()para extrair coeficientes e intercept do modelo - Integrado a extração da equação no método
after_train_calculation()
- Adicionado método
3. ModelRepository
- Arquivo:
model_manager/utils/repository/model_repository.py - Mudanças:
- Adicionado import do módulo
json - Modificado
_generate_report()para salvar a equação como arquivo JSON - Modificado
_save_run()para fazer log do artefato da equação no MLflow
- Adicionado import do módulo
Estrutura do JSON da Equação
O arquivo model_equation.json terá a seguinte estrutura:
{
"target_variable": "target_column_name",
"coefficients": {
"feature1": 0.123456,
"feature2": -0.789012,
"feature3": 0.345678
},
"intercept": 1.234567,
"equation_string": "target_column_name = 1.234567 + 0.123456 * feature1 + -0.789012 * feature2 + 0.345678 * feature3",
"latex_equation": "target_column_name = 1.234567 + 0.123456 \\cdot feature1 + -0.789012 \\cdot feature2 + 0.345678 \\cdot feature3",
"model_type": "Linear Regression"
}
Fluxo de Execução
- Treinamento: O modelo é treinado no
TrainingRepository.train() - Pós-treinamento: O método
after_train_calculation()é chamado, que:- Calcula as métricas (MSE, MAE, R²)
- Extrai a equação usando
_extract_model_equation()
- Salvamento: O
ModelRepository.save_model()é chamado, que:- Gera os artefatos (relatórios, dados CSV)
- Salva a equação como
model_equation.json - Faz log de todos os artefatos no MLflow
Benefícios
- Rastreabilidade: A equação fica disponível como artefato versionado no MLflow
- Transparência: Fácil acesso aos coeficientes e estrutura do modelo
- Compatibilidade: Formato JSON facilita integração com outras ferramentas
- Flexibilidade: Inclui tanto formato legível quanto LaTeX para diferentes usos
Compatibilidade
Esta implementação é totalmente compatível com:
- A arquitetura existente do projeto
- O fluxo de treinamento atual
- O sistema de logging do MLflow
- Os testes existentes (não quebra funcionalidades)
Exemplo de Uso
Após o treinamento, a equação estará disponível em:
- Memória:
train_result.equation(dicionário Python) - Arquivo:
train_result.equation_path(caminho para o JSON) - MLflow: Como artefato
model_equation.jsonno run do experimento