autentisitet/python-sklearn-workflow

Diseña divisiones, validación cruzada, puntuación, búsqueda, curvas de diagnóstico, escalado PCA, inspección de modelos, ColumnTransformer y Pipelines de scikit-learn sin fugas de datos. Úsalo al construir o revisar un flujo de evaluación de sklearn.

¿Qué es python-sklearn-workflow?

Este skill está diseñado para guiar a desarrolladores e ingenieros de IA en la construcción de flujos de evaluación de modelos scikit-learn que eviten fugas de datos. Proporciona una metodología estructurada para elegir divisores de validación cruzada (como KFold, StratifiedKFold, GroupKFold o TimeSeriesSplit) basados en la unidad de evaluación independiente (observaciones IID, clases, grupos o series temporales). Enfatiza la colocación del preprocesamiento (escalado, imputación, codificación, PCA) dentro de Pipelines y ColumnTransformers para garantizar que cada pliegue de validación ajuste las transformaciones solo en su partición de entrenamiento. Además, cubre la selección deliberada de herramientas de búsqueda de hiperparámetros (GridSearchCV vs. RandomizedSearchCV), la incorporación de curvas de aprendizaje y validación para diagnosticar el rendimiento del modelo, y métodos de inspección como permutation_importance. Es aplicable en plataformas como Claude Code, Cursor o Codex, y su uso se activa cuando la tarea involucra model selection, preprocesamiento o diagnóstico sin fugas, desactivándose cuando esos contratos están resueltos.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/autentisitet/python-engineering-skills/tree/HEAD/skills/python-sklearn-workflow

Installed? Explore more Investigación y análisis de datos skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Flujo de Trabajo de Python Scikit-Learn

Activación

  • Palabra clave: la tarea involucra sustancialmente selección de modelos scikit-learn, KFold, StratifiedKFold, GroupKFold, TimeSeriesSplit, cross_validate, GridSearchCV, RandomizedSearchCV, curvas de aprendizaje/validación, PCA, sklearn.inspection, ColumnTransformer o Pipeline.
  • Intención: el usuario pregunta cómo dividir, preprocesar, ajustar, diagnosticar o interpretar un modelo scikit-learn sin fugas de datos.
  • Declaración: una vez al comenzar el trabajo aplicable, indicar brevemente: Usando $python-sklearn-workflow porque esta tarea involucra evaluación o preprocesamiento de scikit-learn.
  • Salida: dejar de aplicar este skill cuando los contratos de división, CV, preprocesamiento, búsqueda y diagnóstico estén resueltos.
  • No activar: una actualización de dependencias, seguimiento de experimentos cuando la división/ajuste ya están fijos, una llamada predict ordinaria sobre un estimador ya entrenado, graficación solo de reporte a partir de predicciones ya calculadas, una pregunta aislada sobre una API de estimador, un pipeline de deep learning, o una importación incidental. La graficación pertenece aquí solo cuando la tarea cambia la puntuación, el diseño de evaluación, la metodología de diagnóstico o la inspección del modelo.

Comience con la Unidad de Evaluación

Antes de elegir un divisor, identifique qué debe permanecer independiente entre entrenamiento y evaluación:

  • observaciones IID individuales;
  • etiquetas de clase con resultados raros;
  • usuarios, pacientes, dispositivos, sesiones, ubicaciones u otros grupos;
  • observaciones cronológicas futuras; o
  • una combinación de balance de clase y grupos no superpuestos.

Elija el conjunto de prueba y la estrategia de CV desde esa unidad, no desde un porcentaje predeterminado preferido. Lea references/model-selection-guide.md para opciones de divisor y búsqueda.


Mantenga el Preprocesamiento Dentro del Pliegue

  • Separe cualquier conjunto de prueba final antes de ajustar escaladores, imputadores, codificadores, selectores de características, PCA u otras transformaciones aprendidas.
  • Coloque el preprocesamiento aprendido y el estimador en Pipeline para que cada pliegue de CV ajuste las transformaciones solo en su partición de entrenamiento.
  • Use ColumnTransformer cuando diferentes subconjuntos de columnas (numéricas, categóricas, texto u otras) necesiten transformaciones distintas.
  • Busque parámetros anidados a través de nombres de pipeline como preprocess__numeric__scaler o model__C.
  • No preprocese manualmente el conjunto de datos completo antes de cross_val_score, cross_validate, búsqueda en cuadrícula o búsqueda aleatoria.

Lea references/preprocessing-inspection.md para PCA, inspección y columnas heterogéneas.


Seleccione Herramientas de Evaluación y Búsqueda Deliberadamente

  • Use cross_val_score para una métrica y puntuaciones de pliegue simples.
  • Use cross_validate cuando se necesiten genuinamente múltiples métricas, puntuaciones de entrenamiento, tiempos de ajuste/puntuación, o estimadores devueltos.
  • Use GridSearchCV para una cuadrícula de parámetros pequeña, discreta y justificada donde las combinaciones exhaustivas quepan en el presupuesto computacional.
  • Use RandomizedSearchCV para espacios más grandes, distribuciones, o un presupuesto fijo de candidatos. Establezca n_iter y las distribuciones de parámetros deliberadamente.
  • Mantenga la misma semántica de CV y contrato de puntuación entre comparaciones de modelos. Pase grupos/metadatos correctamente cuando el divisor los requiera.
  • Preserve un conjunto de prueba intacto o use una evaluación anidada apropiada cuando la selección de modelos consuma todos los pliegues de desarrollo.

Añada Curvas e Inspección para Responder una Pregunta

  • Use learning_curve para preguntar si más datos de entrenamiento probablemente reducirán la brecha entre entrenamiento y validación, o si ambas puntuaciones se han estabilizado.
  • Use validation_curve para inspeccionar el comportamiento de entrenamiento/validación de un hiperparámetro. No es un reemplazo para la búsqueda multi-parámetro o pruebas finales.
  • Use sklearn.inspection.permutation_importance para medir la dependencia de la puntuación de un modelo ajustado en las características, preferiblemente en datos no vistos después de confirmar que el modelo tiene rendimiento predictivo útil.
  • Use dependencia parcial o ICE solo cuando sus supuestos y la distribución de características hagan que el resultado sea interpretable.
  • No añada gráficos de inspección mecánicamente. Defina primero la pregunta de depuración, confiabilidad o interpretabilidad.

Salida Requerida

Indique la unidad de evaluación independiente; la justificación de la proporción de retención; el divisor de CV y la puntuación seleccionados; la colocación del preprocesamiento/PCA; el presupuesto de búsqueda en cuadrícula o aleatoria; si las curvas de aprendizaje/validación responden una pregunta concreta; el método de inspección y el conjunto de datos; los controles de fuga; y la ruta de evaluación final intacta.

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

autentisitet/python-callable-caching

Chooses Python callable ownership, including lambda versus named function and method versus module placement, plus properties, closures, cache lifetimes, construction/subclass hooks, and deterministic cleanup. Use when those design decisions affect reuse, binding, tracebacks, state, or lifetime. Do not use for ordinary calls to partial or other higher-order helpers, browser/distributed/external caches, dependency maintenance, or isolated syntax.

autentisitet/python-cli-file-workflows

Builds and reviews bounded-memory Python file-processing CLIs with explicit path bases, argparse contracts, and iterable- or callback-driven tqdm progress. Use when file scale, path ownership, progress semantics, or CLI behavior needs design. Never activate for tiny fixed fixtures that can be read wholly, swapping an already-chosen progress library, translation, documentation-only edits, dependency updates, web APIs, GUIs, shell-only scripts, or incidental Path/tqdm/argparse terms.

autentisitet/python-domain-modeling

Designs Python type annotations, domain objects, validation boundaries, dataclass/Pydantic models, invariants, interfaces, fixed choices, and object-copy semantics. Use when choosing ABC for owned nominal implementations versus Protocol for third-party structural compatibility, or when changing model behavior and boundary contracts. Never activate for dependency/version updates, translation, documentation-only edits, counting references, isolated syntax, or incidental modeling terms.

Skills relacionados