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,ColumnTransformeroPipeline. - 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
predictordinaria 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
Pipelinepara que cada pliegue de CV ajuste las transformaciones solo en su partición de entrenamiento. - Use
ColumnTransformercuando 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__scaleromodel__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_scorepara una métrica y puntuaciones de pliegue simples. - Use
cross_validatecuando se necesiten genuinamente múltiples métricas, puntuaciones de entrenamiento, tiempos de ajuste/puntuación, o estimadores devueltos. - Use
GridSearchCVpara una cuadrícula de parámetros pequeña, discreta y justificada donde las combinaciones exhaustivas quepan en el presupuesto computacional. - Use
RandomizedSearchCVpara espacios más grandes, distribuciones, o un presupuesto fijo de candidatos. Establezcan_itery 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_curvepara 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_curvepara 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_importancepara 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.