Retos de la industria contra Kaggle. ¿Es más importante recopilar más observaciones y tener acceso a más variables que el modelado elegante?


56

Espero que el título se explique por sí mismo. En Kaggle, la mayoría de los ganadores usan el apilamiento con a veces cientos de modelos base, para exprimir un porcentaje adicional de MSE, precisión ... En general, según su experiencia, cuán importante es el modelado sofisticado, como el apilamiento frente a simplemente recopilar más datos y más funciones para los datos?


44
Depende completamente de si desea un flujo útil generalizable que pueda volverse a entrenar rápidamente (o reorientarse a un nuevo conjunto de datos o nuevas características), o simplemente ganar esa competencia específica de Kaggle (en ese conjunto de datos estático específico, con exploits de fuga, 'características mágicas' y todas). Para el primero, un "algoritmo que obtiene la misma precisión de estadio con un tiempo de entrenamiento mucho menor y en un conjunto de datos más pequeño es" mejor ". Imagínese si Kaggle alguna vez comenzó a castigar el requisito excesivo de computación / memoria o el tiempo de entrenamiento, o si lo tuvo en cuenta como parte del puntaje de envío (sugiero que ya deberían hacerlo).
smci

2
Tomado de "Aplicación del aprendizaje profundo a problemas del mundo real" por Rasmus Rothe: "[...] en escenarios del mundo real, se trata menos de mostrar que su nuevo algoritmo exprime un 1% adicional en rendimiento en comparación con otro método. se trata de construir un sistema robusto que resuelva la tarea requerida con suficiente precisión ".
beatngu13

Respuestas:


77

A modo de antecedentes, llevo 12 años haciendo pronósticos de series de tiempo de tienda SKU para ventas minoristas. Decenas de miles de series temporales en cientos o miles de tiendas. Me gusta decir que hemos estado haciendo Big Data desde antes de que el término se hiciera popular.×

Constantemente he descubierto que lo más importante es entender sus datos . Si no comprende los principales controladores como Semana Santa o promociones, está condenado. A menudo, esto se reduce a comprender el negocio específico lo suficientemente bien como para hacer las preguntas correctas y distinguir incógnitas conocidas de incógnitas desconocidas .

Una vez que comprenda sus datos, debe trabajar para obtener datos limpios . He supervisado a un buen número de estudiantes de tercer año y pasantes, y lo único que nunca habían experimentado en todas sus clases de estadísticas y ciencias de datos fue la cantidad de basura que puede haber en los datos que tiene. Luego, debe volver a la fuente e intentar obtener información buena, o tratar de limpiarla, o incluso simplemente descartar algunas cosas. Cambiar un sistema en ejecución para obtener mejores datos puede ser sorprendentemente difícil.

Una vez que comprenda sus datos y tenga datos realmente limpios, puede comenzar a jugar con ellos. Desafortunadamente, en este momento, a menudo me he quedado sin tiempo y recursos.

Personalmente, soy un gran admirador de la combinación de modelos ("apilamiento"), al menos en un sentido abstracto , menos de la ingeniería de características sofisticada, que a menudo cruza la línea en un territorio , e incluso si su modelo más elegante funciona ligeramente mejor en promedio, a menudo se encuentra que las predicciones realmente malas empeoran con un modelo más complejo. Este es un factor decisivo en mi línea de negocio. Un solo pronóstico realmente malo puede destruir completamente la confianza en todo el sistema, por lo que la solidez es extremadamente alta en mi lista de prioridades. Su experiencia puede ser diferente.

En mi experiencia, sí, la combinación de modelos puede mejorar la precisión. Sin embargo, las grandes ganancias se obtienen con los dos primeros pasos: comprender sus datos y limpiarlos (u obtener datos limpios en primer lugar).


44
@bendl, YMMV significa que su millaje puede variar . La declaración de la oración antes de esto puede o no ser más o menos cierta en diferentes circunstancias.
Orphevs

2
106

2
No importa la experiencia única en el aula. Hay muchos profesionales de la industria que tienen experiencia principalmente con contextos de alta relación señal / ruido como el reconocimiento de imágenes e intentan aplicar los mismos métodos a procesos sociales ruidosos como el reclutamiento, por el amor de Dios.
Brash Equilibrium

2
@Orphevs En otras palabras, esta declaración podría ajustarse a mi situación y no generalizarse bien. : P
JAD

2
(+1) Con respecto al problema de limpieza de datos con graduados frescos, también vale la pena señalar que durante mi educación formal, fue fácil salir pensando que la limpieza de datos era algo malo . Es decir, la limpieza de datos puede afectar fuertemente las tasas de error de tipo I (especialmente si hay un sesgo en el proceso de limpieza) y, por lo tanto, nos enseñaron los peligros de la limpieza de datos. Estas lecciones no estaban mal, pero no creo que mi educación formal enfatizara los beneficios de la limpieza de datos, especialmente en el caso del modelado predictivo.
Cliff AB

42

No puedo hablar por toda la industria, obviamente, pero trabajo en la industria y he competido en Kaggle, así que compartiré mi POV.

Primero, tiene razón al sospechar que Kaggle no coincide exactamente con lo que la gente hace en la industria. Es un juego, y está sujeto a la habilidad de juego, con muchas restricciones locas. Por ejemplo, en la competencia Santander actualmente en ejecución :

  1. Los nombres de las características fueron codificados artificialmente para ocultar su significado
  2. El conjunto de "entrenamiento" se limitó artificialmente para tener menos filas que columnas específicamente, de modo que la selección de características, la robustez y la técnica de regularización serían indispensables para el éxito.
  3. El llamado conjunto de "prueba" tiene una distribución marcadamente diferente que el conjunto de entrenamiento y los dos claramente no son muestras aleatorias de la misma población.

Si alguien me proporcionara un conjunto de datos como este en el trabajo, inmediatamente me ofrecería trabajar con ellos en ingeniería de características para que pudiéramos obtener características que fueran más útiles. Sugeriría que usemos el conocimiento del dominio para decidir sobre términos de interacción probables, umbrales, estrategias de codificación de variables categóricas, etc. Abordar el problema de esa manera sería claramente más productivo que tratar de extraer el significado de un archivo de escape producido por un ingeniero de bases de datos sin entrenamiento en ML.

Además, si aprende, por ejemplo, que una columna numérica en particular no es numérica en absoluto, sino más bien un código postal, bueno, puede ir y obtener datos de fuentes de datos de terceros como el Censo de los EE. UU. Para aumentar sus datos. O si tiene una cita, tal vez incluirá el precio de cierre del S&P 500 para ese día. Dichas estrategias de aumento externo requieren un conocimiento detallado del conjunto de datos específico y un conocimiento significativo del dominio, pero generalmente tienen los beneficios mucho mayores que las mejoras algorítmicas puras.

Entonces, la primera gran diferencia entre la industria y Kaggle es que en la industria, las características (en el sentido de los datos de entrada) son negociables.

Una segunda clase de diferencias es el rendimiento. A menudo, los modelos se implementarán en producción de una de dos maneras: 1) las predicciones del modelo se calcularán previamente para cada fila en una tabla de base de datos muy grande, o 2) una aplicación o sitio web pasará al modelo una sola fila de datos y necesita una predicción devuelta en tiempo real. Ambos casos de uso requieren un buen rendimiento. Por estas razones, no suele ver modelos que pueden ser lentos para predecir o utilizar una gran cantidad de memoria como K-Nearest-Neighbours o Extra Random Forests. Una regresión logística o red neuronal, por el contrario, puede puntuar un lote de registros con unas pocas multiplicaciones matriciales, y la multiplicación matricial se puede optimizar con las bibliotecas correctas.Aunque podría obtener quizás +0.001 AUC si apilara otro modelo no paramétrico, no lo haría porque el rendimiento y la latencia de la predicción caerían demasiado.

También hay una dimensión de confiabilidad: apilar cuatro bibliotecas de terceros de última generación , por ejemplo , LightGBM , xgboost , catboost y Tensorflow (en GPU , por supuesto) podría obtener esa reducción de .01 en MSE que gana los concursos de Kaggle, pero hay cuatro bibliotecas diferentes para instalar, implementar y depurar si algo sale mal. Es genial si puede hacer que todo eso funcione en su computadora portátil, pero hacerlo funcionar dentro de un contenedor Docker que se ejecuta en AWS es una historia completamente diferente. La mayoría de las empresas no quieren enfrentar a un pequeño equipo de desarrolladores solo para lidiar con este tipo de problemas de implementación.

Dicho esto, apilar en sí mismo no es necesariamente un gran problema. De hecho, apilar un par de modelos diferentes que funcionan igual de bien pero tienen límites de decisión muy diferentes es una excelente manera de obtener un pequeño aumento en el AUC y un gran aumento en la robustez. Simplemente no vayas a tirar tantos fregaderos de cocina en tu conjunto heterogéneo que comiences a tener problemas de implementación.


Nota menor, ¿creo que a su viñeta # 2 le falta el final de la oración?
mbrig

20

Según mi experiencia, más datos y más funciones son más importantes que el modelo más elegante, más apilado y más afinado que se pueda encontrar.

Mira los concursos de publicidad en línea que tuvieron lugar. Los modelos ganadores fueron tan complejos que terminaron tomando toda una semana para entrenar (en un conjunto de datos muy pequeño, en comparación con el estándar de la industria). Además de eso, la predicción en un modelo apilado es más larga que en un modelo lineal simple. Sobre el mismo tema, recuerde que Netflix nunca usó su algoritmo de 1 millón de dólares debido a los costos de ingeniería .

Diría que las competencias de ciencia de datos en línea son una buena manera para que una empresa sepa "cuál es la precisión más alta (o cualquier medida de rendimiento) que se puede lograr" utilizando los datos que recopilan (en algún momento). Tenga en cuenta que este es realmente un problema difícil que se está resolviendo. Pero, en la industria, el conocimiento de campo, el hardware y las restricciones comerciales usualmente desalientan el uso de "modelos sofisticados".


2
Es cierto que también podría ser el caso de que el proceso de recopilación de datos siempre esté evolucionando. Lo que significaría que los algoritmos utilizados actualmente estarían desactualizados (además del costo de ingeniería o el tiempo de capacitación como usted señaló). Por lo tanto, se necesitarían algoritmos más simples, más rápidos y más flexibles.
Tom

44
Oí a uno de los puntos principales de este post resumido como "buena selección de variables siempre triunfará buen modelo de selección'
aginensky

14

El apilamiento aumenta significativamente la complejidad y reduce la capacidad de interpretación. Las ganancias suelen ser relativamente pequeñas para justificarlo. Entonces, aunque el ensamblaje es probablemente ampliamente utilizado (por ejemplo, XGBoost), creo que el apilamiento es relativamente raro en la industria.


1
Buen punto. La interpretabilidad es muy importante en mis aplicaciones (los gerentes de las tiendas quieren entender por qué el pronóstico es lo que es), por lo que los modelos difíciles de interpretar tienen un problema.
S. Kolassa - Restablece a Monica el

Gracias por las ideas personales de Stephan. Si bien consideré que la interpretabilidad sufre o desaparece a medida que crece la complejidad del modelo, no pensé en las limitaciones de tiempo que seguramente son más apremiantes en una empresa. El modelado de fantasía probablemente tiene la peor proporción de (precisión ganada) / (tiempo empleado)
Tom

8

En mi experiencia, recopilar buenos datos y características es mucho más importante.

Los clientes con los que trabajamos generalmente tienen muchos datos, y no todos en un formato que pueda exportarse fácilmente o con el que sea fácil trabajar. El primer lote de datos generalmente no es muy útil; Es nuestra tarea trabajar con el cliente para calcular qué datos necesitaríamos para que el modelo sea más útil. Este es un proceso muy iterativo.

Se está experimentando mucho y necesitamos modelos que sean:

  1. Rápido para entrenar
  2. Rápido de predecir (también suele ser un requisito comercial)
  3. Fácil de interpretar

El punto 3) es especialmente importante, porque los modelos que son fáciles de interpretar son más fáciles de comunicar al cliente y es más fácil captarlos si hemos hecho algo mal.


7

Aquí hay algo que no aparece mucho en Kaggle: el

  • más variables que tenga en su modelo, y
  • cuanto más compleja es la relación entre esas variables y la salida,

el mayor riesgo que se enfrentará durante la vida útil de ese modelo. El tiempo generalmente se congela en las competiciones de Kaggle, o hay un corto período de tiempo futuro en el que entran los valores del conjunto de pruebas. En la industria, ese modelo podría funcionar durante años. Y todo lo que se necesita es que una variable se vuelva loca para que todo tu modelo se vaya al infierno, incluso si fue construido sin problemas. Lo entiendo, nadie quiere ver un concurso donde los competidores equilibran cuidadosamente la complejidad del modelo con el riesgo, pero en un trabajo, su negocio y su calidad de vida sufrirán si algo sale mal con un modelo del que está a cargo. Incluso las personas extremadamente inteligentes no son inmunes. Tomemos, por ejemplo, la falla de predicción de Google Flu Trends . El mundo cambió y no lo vieron venir.

A la pregunta de OP: " En general, según su experiencia, ¿qué tan importante es el modelado sofisticado, como apilar frente a simplemente recopilar más datos y más funciones para los datos? " Bueno, soy oficialmente viejo, pero mi respuesta es que a menos que tenga un infraestructura de modelado realmente robusta, es mejor tener modelos sencillos, con un conjunto mínimo de variables, donde la relación de entrada a salida es relativamente sencilla. Si una variable apenas mejora su métrica de pérdida, no la use. Recuerda que es un trabajo. Obtenga sus patadas fuera del trabajo en los concursos de Kaggle donde existe el incentivo de "ir a lo grande o irse a casa".

Una excepción sería si la situación comercial exigiera un cierto nivel de rendimiento del modelo, por ejemplo, si su empresa necesita igualar o superar el rendimiento de un competidor para obtener alguna ventaja (probablemente en marketing). Pero cuando hay una relación lineal entre el rendimiento del modelo y la ganancia comercial, los aumentos en la complejidad generalmente no justifican la ganancia financiera (ver " Netflix nunca usó su algoritmo de $ 1 millón debido a los costos de ingeniería " - disculpas a @ RUser4512 por citar el mismo artículo). Sin embargo, en una competencia de Kaggle, esa ganancia adicional puede moverlo cientos de rangos a medida que pasa soluciones cercanas.


3

Una respuesta corta que es una cita que me gusta del libro de Gary Kasparov Deep Thinking

Un proceso inteligente supera el conocimiento superior y la tecnología superior

Trabajo principalmente con datos financieros de series de tiempo, y el proceso de recopilar datos, limpiarlos, procesarlos y luego trabajar con los propietarios del problema para descubrir qué es lo que realmente quieren hacer, para luego construir características y modelos para tratar de abordar el problema y finalmente examinar retrospectivamente el proceso para mejorar la próxima vez.

Todo este proceso es mayor que la suma de sus partes. Tiendo a obtener un rendimiento de generalización 'aceptable' con una regresión lineal / logística y hablar con expertos en dominios para generar características, mucho mejor tiempo que pasar tiempo ajustando mi modelo a los datos que tengo.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.