Unidad 6 / 11

Construcción de modelos: definición de problemas, selección de algoritmos y división de entrenamiento/prueba

Ganancias:

  • Capacidad para definir el tipo de problema (clasificación, regresión, agrupamiento) y criterios de éxito según el coste real del trabajo.
  • Capacidad para dividir los datos honestamente (sin tocar el conjunto de prueba; cronológicamente en la serie de tiempo) y establecer una base de evaluación sin fugas.
  • Capacidad para elegir un modelo interpretable comenzando con una línea de base simple y agregando complejidad solo cuando lo amerite.

Hasta ahora hemos recopilado datos, los hemos limpiado, explorado y producido funciones. Ahora llegamos al trabajo real: construir un modelo. Un modelo es una estructura matemática que aprende un patrón a partir de datos y produce predicciones para situaciones nuevas. Pero la parte más crítica de la construcción de un modelo no es el código en sí, sino las dos decisiones que lo preceden: definir el problema correcto y dividir los datos correctamente. La IA es un poderoso asesor en la selección de algoritmos, escritura de códigos y ajuste de parámetros; pero depende de uno decidir qué predecir y qué significa el éxito. Un problema mal definido no funcionará ni siquiera con un modelo perfectamente escrito.

Primero la definición del problema: ¿qué predecimos?

Todo trabajo de modelado comienza con una pregunta, y esta pregunta determina el tipo de modelo. Clasificación: el resultado es una categoría: "¿Este cliente se irá o se quedará?", "¿Esta transacción es falsa?". Regresión (en inglés, regresión: el resultado es un número): "¿Cuánto vale esta casa?", "¿Cuántos pedidos llegarán el próximo mes?". Agrupación (dividir datos sin etiquetar en grupos naturales): "¿En cuántos segmentos naturales están divididos mis clientes?".

La segunda parte del planteamiento del problema es el criterio de éxito: ¿qué significa que este modelo sea "bueno"? En un modelo de fraude, ignorar a un estafador es mucho más costoso que bloquear accidentalmente a un cliente honesto; Por lo tanto, lo que pasa a primer plano no es la "precisión general", sino el "índice de captura de los defraudadores". Si no defines este criterio desde el principio, junto con el dueño del negocio, terminarás con un modelo "altamente preciso" que no funciona (profundizaremos en las métricas en la Unidad 7).

Precaución: La "exactitud" puede ser engañosa. Si 10 de cada 1.000 transacciones son fraudulentas, un modelo estúpido que diga "ninguna es fraudulenta" dará una precisión del 99% pero no detectará ni un solo estafador. Elija criterios de éxito basados ​​en el costo real del problema.

División entrenamiento/prueba: examen honesto del modelo

Probar un modelo con los datos aprendidos es como preguntarle al alumno las mismas preguntas que estudió en el examen; Obtiene altas calificaciones pero no demuestra lo que realmente sabe. Entonces dividimos los datos en dos (a menudo tres):

  • Conjunto de entrenamiento (conjunto de entrenamiento en inglés, generalmente 70-80%): el modelo aprende sobre esto.
  • Conjunto de prueba (conjunto de prueba, generalmente 20-30%): el modelo no ve esto en absoluto; El rendimiento real se mide aquí.
  • Conjunto de validación: conjunto intermedio utilizado para la configuración del modelo (qué parámetro es mejor); para mantener el equipo de prueba "limpio".

La regla más básica: el equipo de prueba nunca se toca durante el entrenamiento. Escalado, codificación, selección de funciones: todo simplemente se aprende del conjunto de entrenamiento y luego se aplica a las pruebas (principio de fuga de la Unidad 5). El conjunto de prueba es la primera vez que el modelo ve el mundo real; Si lo enciende demasiado pronto, nunca sabrá el rendimiento real.

Excepción de serie temporal: si sus datos dependen del tiempo (ventas, mercado de valores, demanda), no se realiza la división aleatoria. Debido a que la división aleatoria hace que el modelo vea el futuro y prediga el pasado, esto es una fuga. En su lugar, divida cronológicamente: entrene con el período anterior, pruebe con el período nuevo.

Selección de algoritmos: de simple a complejo

El error más común de los principiantes es comenzar con el modelo más complejo. El enfoque correcto es el opuesto: primero establecer una línea de base simple. "adivina siempre la clase mayoritaria" en una clasificación; "Estime siempre la media" en una regresión. Este estúpido modelo proporciona una base; Si su modelo real no puede pasar esto, hay un problema. Luego pase a modelos simples e interpretables.

modelo

tipo de problema

punto fuerte

debilidad

Línea de base (mayoría/promedio)

ambos

Da punto de referencia

no aprende

Regresión logística

Clasificación

Sencillo, interpretable

Sólo relación lineal

Regresión lineal

regresión

Sencillo, rápido

suposición lineal

árbol de decisión

ambos

interpretable

Memorizaciones fáciles

bosque aleatorio

ambos

Fuerte, duradero

Menos interpretable

Aumento de gradiente (XGBoost, etc.)

ambos

muy fuerte

Difícil de ajustar, riesgo de memorización.

Regla: elija el modelo "suficientemente bueno" más simple. La interpretabilidad es más valiosa que el poder en la mayoría de los contextos empresariales; Es mejor explicar el rechazo de un préstamo "porque su relación deuda-ingresos es alta" que "porque la caja negra lo dice".

tres mini casos

Caso 1: Definición incorrecta del problema. Un equipo creó un modelo de clasificación basado en "¿está satisfecho el cliente?", pero eligió la "precisión" como criterio de éxito. En los datos, el 88% de los clientes quedaron satisfechos; El modelo obtuvo un 88% de precisión al llamar a todos "satisfechos" y nunca detectó a las personas insatisfechas, aunque el objetivo real era encontrarlas. Lección: elija criterios de éxito basados ​​en un propósito real.

Caso 2: pérdida de tiempo en el compartimento. En un proyecto de previsión de la demanda, los datos se dividieron al azar. El modelo dio un 93% de precisión, pero falló en la producción porque durante el entrenamiento había predicho enero, luego noviembre, con datos de diciembre: había visto el futuro. Cuando cambiamos a la división cronológica, el rendimiento real aumentó al 74%. Lección: división cronológica en series temporales.

Caso 3: Complejidad innecesaria. Un analista comenzó directamente con una red neuronal profunda, la ajustó durante semanas y obtuvo un 81% de precisión. Luego, un colega obtuvo el 80 % con 20 líneas de regresión logística, mucho más rápida, interpretable y más fácil de mantener. Lección: comience con una línea base y un modelo simple, agregue complejidad cuando lo amerite.

Cuatro plantillas copiables

1) Aclarar la definición del problema:

Su papel: consultor de modelaje. Ayúdame a definir este trabajo: "Quiero reducir la pérdida de clientes". Pregúnteme y aclare: (1) ¿es esto una clasificación o regresión, (2) cuál es exactamente la variable objetivo y cómo debería definirse, (3) cuáles deberían ser los criterios de éxito y por qué? La decisión es mía; usted presenta las preguntas y opciones.

2) Compartimento seguro para entrenamiento/pruebas:

Dividir mi df en entrenamiento/pruebas 80%/20%. Mantener la distribución de clases (estratificar).random_state=42. Esta NO es una SERIE TIEMPO (observaciones independientes). Imprima la proporción de clases de cada conjunto después de la división. Simplemente proporcione el código de división al conjunto de prueba sin aplicar ninguna transformación.

3) División cronológica de series temporales:

Los datos dependen del tiempo (columna de fecha: fecha_pedido). NO al azar, divida cronológicamente: 80% de capacitación más antigua, 20% de pruebas más recientes. Imprima los rangos de fechas de capacitación y pruebas para que pueda verificar que el futuro no se haya filtrado.

4) Establecer una línea de base:

Tengo un problema de clasificación (objetivo: abandono 0/1). Primero establezca una línea de base: mida la precisión del entrenamiento/pruebas con DummyClassifier, que siempre predice la clase mayoritaria. Luego entrene una regresión logística simple y compare si supera la línea de base. Muestre las métricas de los dos uno al lado del otro.

Aviso débil / Aviso fuerte

Aviso débil:

Construya el mejor modelo con estos datos.

"Mejor" no está definido; No hay ningún tipo de problema, ni meta, ni criterios de éxito ni estrategia de división. La IA genera un patrón aleatorio, posiblemente con fugas.

Potente mensaje:

Tu función: asistente de modelaje. Problema: clasificación, objetivo de "abandono" (0/1), hay desequilibrio de clases (~12% de abandono). Criterio de éxito: Recordar a quienes abandonan es una prioridad. Observación independiente de datos (no series de tiempo). Tarea: (1) división estratificada 80/20 %, (2) línea de base de DummyClassifier, (3) regresión logística, todas las transformaciones en proceso y aprendidas solo a través del entrenamiento. No toque el equipo de prueba antes de dividirlo.

Aquí quedan claros el tipo de problema, el desequilibrio, el criterio y la medida de fuga.

Errores comunes

  • No elegir los criterios de éxito según el verdadero propósito. La "exactitud" de los datos no equilibrados es engañosa; Si se quiere captar a la clase minoritaria, la retirada pasa a primer plano.
  • Tocar el equipo de prueba durante el entrenamiento. Hacer escalado/codificación antes de dividir tiene fugas y oculta el rendimiento real.
  • División aleatoria en series temporales. El modelo ve el futuro, colapsa en la producción; La división cronológica es fundamental.
  • Saltar a un modelo complejo sin establecer una línea de base. Sin puntos de referencia no se puede saber si un modelo es realmente bueno o no.
  • Ignorando la interpretabilidad. En las decisiones empresariales, un modelo sencillo y explicable suele ser más valioso que una caja negra.
Consejo: antes de comenzar a construir un modelo, escriba una oración: "Este modelo predecirá _____, su éxito se medirá mediante la métrica _____, porque el verdadero costo del trabajo es _____". Si no puede completar esta oración, aún no está listo para escribir código.

En resumen

La parte más crítica de construir un modelo no es el código, sino las decisiones que lo preceden: definir el problema correcto (clasificación o regresión, cuál es el objetivo, cuál es el criterio de éxito) y dividir los datos de manera justa (sin tocar el conjunto de pruebas; cronológico en la serie de tiempo). Comience siempre con una línea de base simple y agregue complejidad solo cuando lo amerite; La interpretabilidad se valora más que el poder en la mayoría de los contextos empresariales. La IA es un poderoso asesor en la selección y el código de algoritmos, pero el ser humano decide qué predice y por qué.

Tarea de aplicación

Defina un problema de predicción y complete la siguiente oración por escrito: "Este modelo predecirá ___ (clasificación/regresión), el objetivo es ___, el criterio de éxito es ___ porque ___". Luego divida los datos con la estrategia correcta (cronológica si se trata de una serie de tiempo), establezca una línea de base y mida si un patrón simple rompe esa línea de base.

lista de verificación

  • [ ] ¿He definido claramente el tipo de problema (clasificación/regresión) y el objetivo?
  • [ ] ¿He elegido los criterios de éxito en función del coste real del trabajo?
  • [] ¿Dejé el equipo de prueba intacto durante el entrenamiento?
  • [ ] Si es una serie de tiempo, ¿la dividí cronológicamente?
  • [ ] ¿He establecido una línea de base antes de pasar al modelo complejo?