Metadata-Version: 2.4
Name: experionml
Version: 1.2.1
Summary: A Python package for fast exploration of machine learning pipelines
Author-email: gersonrs <gersonrodriguessantos8@gmail.com>
License-Expression: MIT
Project-URL: Repository, https://github.com/gersonrs/ExperionML
Project-URL: Bug Tracker, https://github.com/gersonrs/ExperionML/issues
Keywords: Python package,Machine Learning,Modeling,Data Pipeline
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Scientific/Engineering :: Information Analysis
Classifier: Operating System :: OS Independent
Requires-Python: <3.13,>=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: beartype>=0.18.5
Requires-Dist: category-encoders>=2.6.3
Requires-Dist: dill>=0.3.6
Requires-Dist: featuretools>=1.28.0
Requires-Dist: gplearn>=0.4.2
Requires-Dist: imbalanced-learn>=0.12.3
Requires-Dist: ipython>=8.9.0
Requires-Dist: ipywidgets>=8.1.1
Requires-Dist: joblib>=1.3.1
Requires-Dist: matplotlib>=3.7.2
Requires-Dist: mlflow>=2.10.2
Requires-Dist: nltk>=3.8.1
Requires-Dist: numpy>=1.23.0
Requires-Dist: optuna>=3.6.0
Requires-Dist: pandas>=2.2.2
Requires-Dist: plotly>=5.18.0
Requires-Dist: scikit-learn>=1.5.0
Requires-Dist: scipy>=1.10.1
Requires-Dist: shap>=0.43.0
Requires-Dist: sktime[forecasting]>=0.30.0
Requires-Dist: statsmodels>=0.14.1
Requires-Dist: zoofs>=0.1.25
Provides-Extra: full
Requires-Dist: botorch>=0.8.5; python_version < "3.12" and extra == "full"
Requires-Dist: catboost>=1.2; extra == "full"
Requires-Dist: dagshub>=0.3.8; extra == "full"
Requires-Dist: dask[dataframe,distributed]>=2024.2.0; extra == "full"
Requires-Dist: explainerdashboard>=0.4.3; extra == "full"
Requires-Dist: gradio>=3.44.4; extra == "full"
Requires-Dist: lightgbm>=4.1.0; extra == "full"
Requires-Dist: modin[ray]>=0.25.0; python_version < "3.12" and extra == "full"
Requires-Dist: optuna-integration>=3.6.0; extra == "full"
Requires-Dist: polars>=0.20.7; extra == "full"
Requires-Dist: pyarrow>=15.0.0; extra == "full"
Requires-Dist: pyspark>=3.5.0; extra == "full"
Requires-Dist: ray[serve]>=2.9.1; python_version < "3.12" and extra == "full"
Requires-Dist: requests>=2.31.0; extra == "full"
Requires-Dist: scikit-learn-intelex>=2023.2.1; (platform_system != "Darwin" and (platform_machine == "x86_64" or platform_machine == "AMD64")) and extra == "full"
Requires-Dist: schemdraw>=0.16; extra == "full"
Requires-Dist: statsforecast>=1.7.3; extra == "full"
Requires-Dist: supersmoother>=0.4; extra == "full"
Requires-Dist: sweetviz>=2.3.1; extra == "full"
Requires-Dist: wordcloud>=1.9.2; extra == "full"
Requires-Dist: xgboost>=2.0.0; extra == "full"
Dynamic: license-file

# ExperionML

## 💡 **Introdução**

Durante a fase de exploração de um projeto de aprendizado de máquina, o cientista de dados precisa identificar o pipeline mais adequado para o seu problema específico. Esse processo normalmente envolve diversas etapas, como limpeza de dados, criação ou seleção de atributos relevantes, teste de diferentes algoritmos e avaliação de múltiplas configurações de modelos.

Explorar várias combinações de pipelines costuma exigir muitas linhas de código. Quando todo esse processo é realizado em um único notebook, o código rapidamente se torna longo, difícil de manter e pouco organizado. Por outro lado, dividir os experimentos em múltiplos notebooks pode dificultar a comparação entre resultados e a visão geral do progresso do projeto. Além disso, refatorar código para cada novo experimento pode consumir um tempo significativo.

Quantas vezes você já executou as mesmas etapas de pré-processamento para diferentes conjuntos de dados? Quantas vezes precisou copiar e colar código de repositórios antigos para reutilizar em novos projetos?

**ExperionML** foi desenvolvido para resolver esses problemas comuns no fluxo de trabalho de machine learning. A biblioteca atua como uma camada de orquestração sobre todo o pipeline de modelagem, permitindo que cientistas de dados executem experimentos de forma rápida, organizada e reproduzível.

Com o ExperionML, tarefas repetitivas são automatizadas e o foco passa a ser a experimentação e a análise de resultados. Em poucas linhas de código, é possível aplicar etapas essenciais de pré-processamento, selecionar atributos relevantes, treinar múltiplos modelos e comparar seus desempenhos em um mesmo conjunto de dados.

Dessa forma, o ExperionML permite que o usuário avance rapidamente do **dado bruto para insights relevantes**, mantendo os experimentos estruturados e fáceis de analisar.

---

### Exemplo de etapas executadas no pipeline do ExperionML

**1. Limpeza de dados**

- Tratamento de valores ausentes
- Codificação de variáveis categóricas
- Detecção e remoção de outliers
- Balanceamento do conjunto de treinamento

**2. Engenharia de atributos**

- Criação de atributos não lineares
- Seleção das variáveis mais relevantes

**3. Treinamento e validação de múltiplos modelos**

- Ajuste de hiperparâmetros
- Treinamento dos modelos no conjunto de treino
- Avaliação no conjunto de teste

**4. Análise dos resultados**

- Cálculo de métricas de desempenho
- Visualizações para comparação entre modelos
