Metadata-Version: 2.4
Name: dragon-ml-toolbox
Version: 28.1.0
Summary: Complete pipelines and helper tools for data science and machine learning projects.
Author-email: Karl Luigi Loza Vidaurre <luigiloza@gmail.com>
License-Expression: MIT
Project-URL: Homepage, https://github.com/DrAg0n-BoRn/ML_tools
Project-URL: Changelog, https://github.com/DrAg0n-BoRn/ML_tools/blob/master/CHANGELOG.md
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Requires-Python: <3.15,>=3.12
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: LICENSE-THIRD-PARTY.md
Requires-Dist: numpy>=2.0
Requires-Dist: pandas>=3.0
Requires-Dist: polars>=2.0
Requires-Dist: pyarrow
Requires-Dist: joblib
Requires-Dist: colorlog
Provides-Extra: ml
Requires-Dist: torch; extra == "ml"
Requires-Dist: torchvision; extra == "ml"
Requires-Dist: tqdm; extra == "ml"
Requires-Dist: scikit-learn; extra == "ml"
Requires-Dist: shap>=0.46; extra == "ml"
Requires-Dist: captum; extra == "ml"
Requires-Dist: evotorch; extra == "ml"
Requires-Dist: torchmetrics; extra == "ml"
Requires-Dist: matplotlib; extra == "ml"
Requires-Dist: seaborn; extra == "ml"
Requires-Dist: plotly; extra == "ml"
Requires-Dist: kaleido; extra == "ml"
Requires-Dist: Pillow; extra == "ml"
Requires-Dist: ipython; extra == "ml"
Requires-Dist: ipykernel; extra == "ml"
Requires-Dist: notebook; extra == "ml"
Requires-Dist: jupyterlab; extra == "ml"
Requires-Dist: ipywidgets; extra == "ml"
Provides-Extra: ensemble
Requires-Dist: shap>=0.46; extra == "ensemble"
Requires-Dist: tqdm; extra == "ensemble"
Requires-Dist: scikit-learn<1.6.0,>=1.5.0; python_version < "3.14" and extra == "ensemble"
Requires-Dist: scikit-learn>=1.8.0; python_version >= "3.14" and extra == "ensemble"
Requires-Dist: imbalanced-learn; extra == "ensemble"
Requires-Dist: xgboost; extra == "ensemble"
Requires-Dist: lightgbm<4.5.0; python_version < "3.14" and extra == "ensemble"
Requires-Dist: lightgbm<4.7.0,>=4.6.0; python_version >= "3.14" and extra == "ensemble"
Requires-Dist: matplotlib; extra == "ensemble"
Requires-Dist: seaborn; extra == "ensemble"
Requires-Dist: ipython; extra == "ensemble"
Requires-Dist: ipykernel; extra == "ensemble"
Requires-Dist: notebook; extra == "ensemble"
Requires-Dist: jupyterlab; extra == "ensemble"
Requires-Dist: ipywidgets; extra == "ensemble"
Provides-Extra: mice
Requires-Dist: miceforest>=6.0.0; extra == "mice"
Requires-Dist: plotnine>=0.12; extra == "mice"
Requires-Dist: matplotlib; extra == "mice"
Requires-Dist: lightgbm<4.5.0; python_version < "3.14" and extra == "mice"
Requires-Dist: lightgbm<4.7.0,>=4.6.0; python_version >= "3.14" and extra == "mice"
Requires-Dist: scikit-learn<1.6.0,>=1.5.0; python_version < "3.14" and extra == "mice"
Requires-Dist: scikit-learn>=1.8.0; python_version >= "3.14" and extra == "mice"
Requires-Dist: shap; extra == "mice"
Requires-Dist: ipython; extra == "mice"
Requires-Dist: ipykernel; extra == "mice"
Requires-Dist: notebook; extra == "mice"
Requires-Dist: jupyterlab; extra == "mice"
Requires-Dist: ipywidgets; extra == "mice"
Provides-Extra: excel
Requires-Dist: openpyxl; extra == "excel"
Requires-Dist: ipython; extra == "excel"
Requires-Dist: ipykernel; extra == "excel"
Requires-Dist: notebook; extra == "excel"
Requires-Dist: jupyterlab; extra == "excel"
Requires-Dist: ipywidgets; extra == "excel"
Provides-Extra: gui-boost
Requires-Dist: FreeSimpleGUI>=5.2; extra == "gui-boost"
Requires-Dist: xgboost; extra == "gui-boost"
Requires-Dist: lightgbm<4.5.0; python_version < "3.14" and extra == "gui-boost"
Requires-Dist: lightgbm<4.7.0,>=4.6.0; python_version >= "3.14" and extra == "gui-boost"
Provides-Extra: gui-torch
Requires-Dist: torch; extra == "gui-torch"
Requires-Dist: FreeSimpleGUI>=5.2; extra == "gui-torch"
Dynamic: license-file

# Dragon-ML-Toolbox

A collection of machine learning pipelines and utilities, structured as modular packages for lightweight and customized virtual environments.

Modular scripts for data science workflows, including data exploration, ETL, model training, evaluation, and inference.

Support for PyTorch-based models, ensemble learning (XGBoost, LightGBM), MICE imputation, and basic GUI factory classes for model deployment.

### Base Dependencies

```toml
"numpy>=2.0",
"pandas>=3.0",
"polars>=2.0",
"pyarrow",
"joblib",
"colorlog"
```

### Supported Python Versions

Python 3.12

Python 3.13

Python 3.14


## Installation

### Via PyPI

Install the latest stable release from PyPI:

Using pip:

```bash
pip install dragon-ml-toolbox
```

Using UV:

```bash
uv add dragon-ml-toolbox
```

### Via conda-forge

Install from the conda-forge channel:

```bash
conda install conda-forge::dragon-ml-toolbox
```

## Modular Installation

This toolbox is designed as a collection of mutually exclusive environments due to conflicting core dependencies.

- Rule: Create a fresh virtual environment for each module to use.

### 📦 Core Machine Learning Toolbox [ML]

Installs a comprehensive set of tools for typical data science workflows, including data manipulation, modeling, and evaluation using PyTorch.

🪟 On Windows, the default installation includes the CPU version of PyTorch. Follow the official instructions to install the CUDA version: [PyTorch website](https://pytorch.org/get-started/locally/)

```Bash
pip install "dragon-ml-toolbox[ML]"
```

#### Modules:

```Bash
data_exploration
ETL_cleaning
ETL_engineering
imputation
IO_tools
keys
math_utilities
ML_callbacks
ML_chain
ML_configuration
ML_datasetmaster
ML_evaluation
ML_evaluation_captum
ML_finalize_handler
ML_finetune
ML_inference
ML_inference_sequence
ML_inference_vision
ML_loss
ML_models
ML_models_diffusion
ML_models_sequence
ML_models_vision
ML_optimization
ML_scaler
ML_trainer
ML_trainer_parallel
ML_utilities
ML_vision_transformers
ML_vision_utilities
optimization_tools
outlier_detection
path_manager
plot_fonts
resampling
schema
serde
SQL
utilities
VIF
constants
```

---

### 🌳 Ensemble Learning [ensemble]

Comprehensive set of tools for typical data science workflows focused on **XGBoost** and **LightGBM**.

```Bash
pip install "dragon-ml-toolbox[ensemble]"
```

#### Modules:

```Bash
data_exploration
ensemble_evaluation
ensemble_inference
ensemble_learning
ensemble_optimization
ETL_cleaning
ETL_engineering
imputation
IO_tools
math_utilities
optimization_tools
outlier_detection
path_manager
plot_fonts
resampling
schema
serde
SQL
utilities
VIF
constants
```

---

### 🔬 MICE Imputation and Variance Inflation Factor [mice]

Utilities for advanced data cleaning and statistical checks. Features **Multiple Imputation by Chained Equations (MICE)** for handling missing data and **Variance Inflation Factor (VIF)** analysis to detect multicollinearity in features.

```Bash
pip install "dragon-ml-toolbox[mice]"
```

#### Modules:

```Bash
imputation
IO_tools
math_utilities
MICE
path_manager
plot_fonts
serde
utilities
VIF
```

---

### 📋 Excel File Handling [excel]

Installs dependencies required to process and handle .xlsx or .xls files.

```Bash
pip install "dragon-ml-toolbox[excel]"
```

#### Modules:

```Bash
IO_tools
excel_handler
path_manager
```

---

### 🎰 GUI for Boosting Algorithms (XGBoost, LightGBM) [gui-boost]

GUI tools compatible with XGBoost and LightGBM models used for inference.

```Bash
pip install "dragon-ml-toolbox[gui-boost]"
```

#### Modules:

```Bash
ensemble_inference
GUI_tools
IO_tools
path_manager
schema
serde
constants
```

---

### 🤖 GUI for PyTorch Models [gui-torch]

GUI tools compatible with PyTorch models used for inference.

```Bash
pip install "dragon-ml-toolbox[gui-torch]"
```

#### Modules:

```Bash
GUI_tools
IO_tools
keys
ML_models
ML_models_sequence
ML_models_vision # Requires: torchvision and Pillow
ML_inference
ML_inference_sequence
ML_inference_vision # Requires: torchvision and Pillow
ML_vision_transformers # Requires: torchvision and Pillow
ML_vision_utilities # Requires: torchvision and Pillow
ML_scaler
path_manager
schema
constants
```

---

### Usage

After installation, import modules like this:

```python
from dragon.serde import serialize_object, deserialize_object
from dragon.IO_tools import custom_logger
```
