Skip to main content

Reportes de evaluación (clasificación/regresión) a Markdown con gráficos

Project description

evalcards

Descripción

evalcards genera reportes de evaluación para modelos supervisados en Markdown, con gráficos listos. Soporta:

  • Clasificación (binaria y multiclase OvR)
  • Regresión
  • Forecasting (sMAPE/MASE)

Características

  • Tabla de métricas por tarea.
  • Gráficos: matriz de confusión, ROC/PR (binaria y multiclase OvR), ajuste y residuales.
  • CLI y API Python.
  • Carpeta de salida por defecto: ./evalcards_reports (personalizable con --outdir).

Requisitos

  • Python 3.9+
  • Dependencias se instalan automáticamente (numpy, pandas, scikit-learn, matplotlib, jinja2).

Instalación (dev/local)

  1. Crear y activar entorno virtual (opcional):
    • Windows (PowerShell):
      python -m venv .venv
      . .\.venv\Scripts\Activate.ps1
      
    • macOS / Linux:
      python3 -m venv .venv
      source .venv/bin/activate
      
  2. Instalar en modo editable desde la carpeta del proyecto:
    pip install -e .
    

Uso rápido (API Python)

Clasificación binaria (con probabilidades opcionales):

from evalcards import make_report

path = make_report(
    y_true, y_pred, y_proba=proba,         # y_proba: vector 1D (prob. clase positiva)
    path="reporte.md", title="Mi modelo"
)
print(path)

Regresión:

make_report(y_true, y_pred, path="rep_reg.md", title="Regresión")

Uso rápido (CLI)

  1. Prepara CSVs con una sola columna o con nombres estándar (y_true, y_pred, y_proba).
  2. Ejecuta (por defecto guarda en ./evalcards_reports):
    evalcards --y_true y_true.csv --y_pred y_pred.csv --proba y_proba.csv --out rep.md --title "Mi modelo"
    
  3. Carpeta personalizada:
    evalcards --y_true y_true.csv --y_pred y_pred.csv --out rep.md --outdir informes_eval
    

Clasificación multiclase (OvR)

API (Python)

# y_proba: matriz (n_samples, n_classes) con probabilidades
out = make_report(
    y_true, y_pred, y_proba=proba,
    labels=["Clase_A","Clase_B","Clase_C"],  # opcional
    path="rep_multi.md", title="Multiclase OvR"
)

CLI

# y_proba.csv con N columnas (una por clase)
evalcards --y_true y_true.csv --y_pred y_pred.csv --proba y_proba.csv --class-names "Clase_A,Clase_B,Clase_C" --out rep_cli_multiclase.md

Salidas: confusion.png + roc_class_<clase>.png y pr_class_<clase>.png por clase.
Métrica: roc_auc_ovr_macro.

Forecasting (sMAPE/MASE)

API (Python)

out = make_report(
    y_true_test, y_pred_test,
    task="forecast", season=12, insample=y_true_train,
    path="rep_forecast.md", title="Forecast"
)

CLI

evalcards --y_true y_true_test.csv --y_pred y_pred_test.csv --forecast --season 12 --insample y_insample.csv --out rep_forecast_cli.md

Métricas: MAE, MSE, RMSE, sMAPE (%), MASE.
Gráficos: fit.png y resid.png.

Entradas esperadas

  • Clasificación:
    • y_true: etiquetas reales (0..K-1 o nombres).
    • y_pred: etiquetas predichas.
    • y_proba:
      • Binaria: vector 1D (prob. clase positiva).
      • Multiclase: matriz (N columnas, una por clase).
  • Regresión/Forecast:
    • y_true: valores reales.
    • y_pred: valores predichos.
    • insample (opcional para MASE): serie de entrenamiento; usar --season (ej. 12).

Salidas

  • Archivo Markdown con métricas y referencias a imágenes.
  • Imágenes PNG en la carpeta destino (por defecto: ./evalcards_reports):
    • Clasificación: confusion.png; si hay probabilidades binaria: roc.png, pr.png; en multiclase: roc_class_<clase>.png y pr_class_<clase>.png por clase.
    • Regresión/Forecast: fit.png (ajuste y vs ŷ) y resid.png (residuales).

Métricas incluidas

  • Clasificación: accuracy, precision/recall/F1 (macro y weighted).
    • Binaria: roc_auc.
    • Multiclase OvR: roc_auc_ovr_macro.
  • Regresión: MAE, MSE, RMSE, .
  • Forecast: MAE, MSE, RMSE, sMAPE (%), MASE.

Notas técnicas

  • Si solo pasas un nombre de archivo en --out/path (p. ej. rep.md), se usará ./evalcards_reports automáticamente.
  • Si especificas una ruta con carpeta, se respeta esa ruta.
  • --outdir fija explícitamente la carpeta de salida.
  • El paquete fuerza backend Agg de Matplotlib para generar PNGs en entornos sin GUI.

Solución de problemas (rápida)

  • “No module named evalcards”: instala con pip install -e . desde la carpeta del proyecto y activa tu venv.
  • Matplotlib/Tk en servidores: no se necesita GUI; se guardan PNGs con backend Agg.
  • CSVs: si el archivo tiene varias columnas, usa nombres y_true/y_pred/y_proba o deja una sola columna.

Soporte actual

  • Detección automática de tarea (auto): clasificación vs regresión.
  • Multiclase: curvas ROC/PR OvR y roc_auc_ovr_macro.
  • Forecasting: sMAPE/MASE con --season e --insample.

Licencia

MIT

Autor

Ricardo Urdaneta (Ricardouchub)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

evalcards-0.2.0.tar.gz (5.6 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

evalcards-0.2.0-py3-none-any.whl (7.7 kB view details)

Uploaded Python 3

File details

Details for the file evalcards-0.2.0.tar.gz.

File metadata

  • Download URL: evalcards-0.2.0.tar.gz
  • Upload date:
  • Size: 5.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for evalcards-0.2.0.tar.gz
Algorithm Hash digest
SHA256 66d9c9b41ff50c161ddf6d302e38aff622ff76be25dc6c69e9f9f112ee885914
MD5 afee5363a18e68e983f85242e7613fcc
BLAKE2b-256 e9bc5fea47a97425a60d09e3a2949d9e79de1775953d4da01febdd240b65b119

See more details on using hashes here.

File details

Details for the file evalcards-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: evalcards-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 7.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for evalcards-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 497d45a4517e6e73d736f920131e78b7312b804e0e6bd92c2fc74408e9df678a
MD5 4d40a42294db7d788665c1c57066c701
BLAKE2b-256 af61cdad85bf436744004dcb52991cb277f87e389b909b212da85751beb68ee6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page