Metadata-Version: 2.4
Name: hypertuner-Ceron
Version: 0.1.0
Summary: Playground interactivo de hiperparámetros para modelos sklearn en Streamlit
Author: Jesús Alberto Cerón Hernándezz
License: MIT
Project-URL: Homepage, https://github.com/tu-ceronbuu/hypertuner
Project-URL: Repository, https://github.com/tu-usuario/hypertuner
Project-URL: Issues, https://github.com/tu-usuario/hypertuner/issues
Keywords: machine-learning,hyperparameter-tuning,streamlit,scikit-learn,visualization,interactive
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
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 :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Requires-Dist: streamlit>=1.30
Requires-Dist: scikit-learn>=1.3
Requires-Dist: matplotlib>=3.7
Requires-Dist: pandas>=2.0
Requires-Dist: numpy>=1.24
Provides-Extra: xgboost
Requires-Dist: xgboost>=2.0; extra == "xgboost"
Provides-Extra: lightgbm
Requires-Dist: lightgbm>=4.0; extra == "lightgbm"
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Requires-Dist: black; extra == "dev"
Requires-Dist: ruff; extra == "dev"
Requires-Dist: build; extra == "dev"
Requires-Dist: twine; extra == "dev"

# ⚗ HyperTuner

**Playground interactivo de hiperparámetros para cualquier clasificador scikit-learn.**

HyperTuner lanza una interfaz Streamlit completa con fronteras de decisión, curvas ROC y métricas en tiempo real — todo generado automáticamente desde un diccionario de configuración.

---

## Instalación

```bash
pip install hypertuner
```

Con soporte para XGBoost o LightGBM:

```bash
pip install "hypertuner[xgboost]"
pip install "hypertuner[lightgbm]"
```

---

## Uso rápido

Crea un archivo `app.py` con esto:

```python
from hypertuner import tuner_universal
from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import make_classification

X, y = make_classification(n_samples=500, n_features=10, random_state=42)

param_grid = {
    "n_estimators": {"type": "slider",    "min": 10,  "max": 300, "default": 100, "step": 10},
    "max_depth":    {"type": "slider",    "min": 1,   "max": 20,  "default": 5},
    "criterion":    {"type": "selectbox", "options": ["gini", "entropy", "log_loss"]},
}

tuner_universal(RandomForestClassifier, param_grid, X, y)
```

Luego ejecuta:

```bash
streamlit run app.py
```

---

## Funcionalidades

| Feature | Descripción |
|---|---|
| **UI dinámica** | Los controles del sidebar se generan solos desde `param_grid` |
| **Universalidad** | Compatible con cualquier estimador de la API sklearn |
| **Fronteras de decisión** | `DecisionBoundaryDisplay` sobre espacio PCA 2D |
| **Curva ROC** | Binaria o multiclase OvR automática con AUC |
| **Métricas en vivo** | Accuracy, F1-Score y Recall actualizados en cada interacción |
| **Exportación** | Genera el bloque de código listo para producción |
| **Caché** | PCA + split cacheados con `@st.cache_data` para máxima velocidad |

---

## Esquema de `param_grid`

```python
param_grid = {
    # Slider numérico
    "nombre_param": {
        "type":    "slider",
        "min":     1,
        "max":     100,
        "default": 10,
        "step":    1,          # opcional
        "help":    "Tooltip"   # opcional
    },
    # Selectbox categórico
    "otro_param": {
        "type":    "selectbox",
        "options": ["opcion_a", "opcion_b"],
        "help":    "Tooltip"   # opcional
    },
}
```

---

## Compatibilidad verificada

- `RandomForestClassifier`
- `GradientBoostingClassifier`
- `DecisionTreeClassifier`
- `ExtraTreesClassifier`
- `XGBClassifier` (con `pip install hypertuner[xgboost]`)
- `LGBMClassifier` (con `pip install hypertuner[lightgbm]`)

---

## Licencia

MIT © Ceron
