Metadata-Version: 2.1
Name: ml-logwriter
Version: 0.2.1
Summary: A ML logger package
Home-page: https://github.com/pedrohrafael/ml-logwriter
Author: Pedro H Rafael
Author-email: pedro.rodrigues.rafael@gmail.com
License: MIT
Description-Content-Type: text/markdown
License-File: LICENSE

# Machine Learning __LogWriter__

**ML LogWriter:** Biblioteca para Registro de Logs e Armazenamento de Artefatos

## DescriÃ§Ã£o
O ML LogWriter Ã© uma biblioteca Python de cÃ³digo aberto disponibilizada que visa facilitar o registro de logs de execuÃ§Ã£o de cÃ³digo e o armazenamento de artefatos de modelos em projetos de aprendizado de mÃ¡quina e experimentos de ciÃªncia de dados. 

Com duas classes principais, `LogWriter` e `LogArtifacts`, essa biblioteca oferece uma soluÃ§Ã£o simples e eficiente para acompanhar o desempenho de modelos e registrar informaÃ§Ãµes essenciais durante o desenvolvimento de projetos.

## MÃ³dulos
### LogWriter:
A classe LogWriter Ã© responsÃ¡vel por registrar logs de execuÃ§Ã£o em dois locais simultaneamente: em um arquivo de log e no terminal. Suas principais funcionalidades incluem:

Registro detalhado de eventos: Possibilita registrar informaÃ§Ãµes relevantes em diferentes nÃ­veis de detalhe (por exemplo, INFO, WARNING, ERROR) para auxiliar na depuraÃ§Ã£o e monitoramento da execuÃ§Ã£o do cÃ³digo.
- **Armazenamento em arquivo:** Registra as informaÃ§Ãµes em um arquivo de log, permitindo revisitar eventos passados e manter um histÃ³rico de execuÃ§Ãµes.
- **SaÃ­da no terminal:** Exibe informaÃ§Ãµes importantes diretamente no terminal, facilitando o acompanhamento do progresso do cÃ³digo em tempo real.

#### Exemplo de uso do mÃ³dulo `LogWriter`:
```python
# Importando a classe LogWriter do mÃ³dulo
from log_module import LogWriter

# Criando uma instÃ¢ncia da classe LogWriter e definindo o caminho para o arquivo de log
log_writer = LogWriter()
log_path = 'logs/log_file.txt'

# Obtendo o logger para fazer os registros de log
logger = log_writer.logger(log_path)

# Exemplo de uso do logger para fazer registros de log
logger.debug("Debug message: This is a debug log.")
logger.info("Info message: This is an info log.")
logger.warning("Warning message: This is a warning log.")
logger.error("Error message: This is an error log.")
logger.critical("Critical message: This is a critical log.")
```

### LogArtifacts:
A classe LogArtifacts foi desenvolvida para armazenar e organizar artefatos essenciais de experimentos e modelos. Suas principais funcionalidades incluem:

- **Armazenamento de modelos e metadados:** Permite salvar modelos treinados juntamente com metadados relevantes, como hiperparÃ¢metros e mÃ©tricas de desempenho.
- **Gerenciamento de experimentos:** Organiza os resultados de experimentos em uma estrutura de diretÃ³rios clara e consistente, facilitando a localizaÃ§Ã£o e comparaÃ§Ã£o entre diferentes iteraÃ§Ãµes de modelos.
- **Armazenamento de dados e grÃ¡ficos:** AlÃ©m dos modelos, a classe LogArtifacts Ã© capaz de armazenar outros artefatos, como conjuntos de dados, grÃ¡ficos de desempenho e imagens relevantes para a anÃ¡lise dos resultados.

#### Exemplo de Uso do MÃ³dulo `LogArtifacts`:

```python
# Importando a classe LogArtifacts do mÃ³dulo
from log_module import LogArtifacts

# Criando uma instÃ¢ncia da classe LogArtifacts e definindo o caminho para o diretÃ³rio de artefatos
artifacts_path = 'artifacts'

# Criando um novo diretÃ³rio de artefatos (experimento)
experiment = LogArtifacts(artifacts_path)
experiment.create()

# Exemplo de uso da classe LogArtifacts para registrar parÃ¢metros, mÃ©tricas, modelo e dataset
parameters = {'learning_rate': 0.01, 'batch_size': 32, 'num_epochs': 50}
metrics = {'accuracy': 0.85, 'precision': 0.78, 'recall': 0.92}
model = 'Trained Model Object'
dataset = pd.DataFrame({'feature1': [1, 2, 3], 'feature2': [4, 5, 6]})

experiment.log_parameters(parameters)
experiment.log_metrics(metrics)
experiment.log_model(model)
experiment.log_dataset(dataset, 'example_dataset')

# Criando um grÃ¡fico de desempenho (exemplo com valores aleatÃ³rios)
x_values = [1, 2, 3, 4, 5]
y_values = [0.9, 0.85, 0.78, 0.75, 0.72]
experiment.log_performance_graph(x_values, y_values, title='Model Performance',
                                 x_label='Epoch', y_label='Accuracy', filename='accuracy_graph')

# ApÃ³s executar o cÃ³digo acima, vocÃª verÃ¡ os artefatos salvos no diretÃ³rio 'artifacts' com os resultados do experimento.
```

## Principais BenefÃ­cios

- **Facilidade de Uso:** Com uma interface intuitiva, a biblioteca permite que desenvolvedores e cientistas de dados incorporem facilmente a funcionalidade de registro de logs e armazenamento de artefatos em seus projetos.
- **OrganizaÃ§Ã£o e Rastreabilidade:** O ML LogWriter facilita a organizaÃ§Ã£o de experimentos e a rastreabilidade de modelos, permitindo que os usuÃ¡rios acessem informaÃ§Ãµes histÃ³ricas e comparem resultados de forma sistemÃ¡tica.
- **ColaboraÃ§Ã£o Eficiente:** Ao armazenar artefatos e logs em arquivos, a biblioteca possibilita a colaboraÃ§Ã£o entre membros da equipe, uma vez que todos os envolvidos podem compartilhar informaÃ§Ãµes e resultados relevantes.
- **Melhoria no Processo de Desenvolvimento:** Com o registro detalhado de logs e a capacidade de armazenar artefatos, o ML LogWriter auxilia no processo de depuraÃ§Ã£o, otimizaÃ§Ã£o de modelos e tomada de decisÃµes com base em mÃ©tricas objetivas.

## InstalaÃ§Ã£o
```python
pip install ml-logwriter
```

## Requisitos
O ML LogWriter requer a instalaÃ§Ã£o das bibliotecas Python necessÃ¡rias para funcionar corretamente.
```
DateTime==5.2
joblib==1.3.1
logging==0.4.9.6
pytz==2023.3
zope.interface==6.0
matplotlib==3.7.0
```
Ou instale executando:
```python
pip install -r requirements.txt
```



## ContribuiÃ§Ã£o e LicenÃ§a:
A biblioteca ML LogWriter Ã© de cÃ³digo aberto e Ã© incentivada a contribuiÃ§Ã£o da comunidade para o seu aprimoramento. Ela estÃ¡ licenciada sob a LicenÃ§a MIT, garantindo liberdade de uso e modificaÃ§Ã£o para qualquer projeto, seja comercial ou nÃ£o.
