Evalml: AutoML: use una división de CV separada para ensamblar

Creado en 26 ene. 2021  ·  4Comentarios  ·  Fuente: alteryx/evalml

# 1732 actualiza nuestra canalización de conjuntos apilados para usar el mismo divisor de datos que se usa en AutoML . Continuamos con # 1732 porque creíamos que todavía era una mejora en nuestro enfoque actual (scikit-learn predeterminado).

Este problema rastrea las actualizaciones a largo plazo que es posible que deseemos realizar en nuestro divisor de datos para apilar en AutoML.


Actualización: mientras continuamos con la actualización # 1732, nos encontramos con un enigma con la interacción entre el apilamiento y AutoML que nos hizo volver a considerar si realmente era una buena idea usar la misma división de datos para el conjunto de apilamiento que usamos en AutoML. Decidimos que no, y que como Raymond había señalado, probablemente queremos usar un CV separado para nuestro conjunto. ( @dsherry también mencionó una buena cantidad de información de que el uso de conjuntos permite que el modelo

En lugar de continuar con ese trabajo, deberíamos usar este problema para discutir la actualización de AutoML para el apilamiento: específicamente, deberíamos crear una división separada para CV para el conjunto apilado. Esto sería similar a lo que tenemos actualmente para el ajuste de umbral binario.

enhancement performance

Comentario más útil

Plan: si el apilamiento está habilitado, crearemos una división separada que se puede pasar al conjunto apilado para CV

Sería bueno buscar el apoyo utilizando las predicciones fuera de la muestra (división de validación del CV original) a medida que los datos pasan al apilamiento. Sin embargo, sugiero que comencemos con el enfoque más simple de simplemente crear una división separada si el apilamiento está habilitado.

RE nuestra discusión, alguna evidencia de apoyo de por qué deberíamos retener una división separada que el conjunto apilado puede usar para realizar CV:

  • "Mediante el uso de [predicciones] con validación cruzada, el apilamiento evita dar un peso injustamente alto a los modelos con mayor complejidad". También conocido como sobreajuste
  • "El enfoque más común para preparar el conjunto de datos de entrenamiento para el metamodelo es mediante la validación cruzada de k veces los modelos base, donde las predicciones fuera del pliegue se utilizan como base para el conjunto de datos de entrenamiento para el metamodelo. . Los datos de entrenamiento para el metamodelo también pueden incluir las entradas a los modelos base, por ejemplo, elementos de entrada de los datos de entrenamiento. Esto puede proporcionar un contexto adicional al metamodelo en cuanto a cómo combinar mejor las predicciones del metamodelo. Una vez que el conjunto de datos de entrenamiento está preparado para el metamodelo, el metamodelo se puede entrenar de forma aislada en este conjunto de datos, y los modelos base se pueden entrenar en todo el conjunto de datos de entrenamiento original ". - entrada de blog
  • "Es importante que el metaaprendiz esté capacitado en un conjunto de datos separado de los ejemplos utilizados para entrenar los modelos de nivel 0 para evitar el sobreajuste". - otra publicación de blog
  • Resumen de artículo original que discute cómo el conjunto apilado puede verse como una generalización de validación cruzada
  • También encontré esta sea una buena lectura.

@rpeck FYI, después de algunos giros seguimos tu sugerencia 😆

Todos 4 comentarios

Plan: si el apilamiento está habilitado, crearemos una división separada que se puede pasar al conjunto apilado para CV

Sería bueno buscar el apoyo utilizando las predicciones fuera de la muestra (división de validación del CV original) a medida que los datos pasan al apilamiento. Sin embargo, sugiero que comencemos con el enfoque más simple de simplemente crear una división separada si el apilamiento está habilitado.

RE nuestra discusión, alguna evidencia de apoyo de por qué deberíamos retener una división separada que el conjunto apilado puede usar para realizar CV:

  • "Mediante el uso de [predicciones] con validación cruzada, el apilamiento evita dar un peso injustamente alto a los modelos con mayor complejidad". También conocido como sobreajuste
  • "El enfoque más común para preparar el conjunto de datos de entrenamiento para el metamodelo es mediante la validación cruzada de k veces los modelos base, donde las predicciones fuera del pliegue se utilizan como base para el conjunto de datos de entrenamiento para el metamodelo. . Los datos de entrenamiento para el metamodelo también pueden incluir las entradas a los modelos base, por ejemplo, elementos de entrada de los datos de entrenamiento. Esto puede proporcionar un contexto adicional al metamodelo en cuanto a cómo combinar mejor las predicciones del metamodelo. Una vez que el conjunto de datos de entrenamiento está preparado para el metamodelo, el metamodelo se puede entrenar de forma aislada en este conjunto de datos, y los modelos base se pueden entrenar en todo el conjunto de datos de entrenamiento original ". - entrada de blog
  • "Es importante que el metaaprendiz esté capacitado en un conjunto de datos separado de los ejemplos utilizados para entrenar los modelos de nivel 0 para evitar el sobreajuste". - otra publicación de blog
  • Resumen de artículo original que discute cómo el conjunto apilado puede verse como una generalización de validación cruzada
  • También encontré esta sea una buena lectura.

@rpeck FYI, después de algunos giros seguimos tu sugerencia 😆

@dsherry @rpeck @ angela97lin Empecé a analizar este problema, pero parece que las clases StackedClassifier y StackedRegressor sklearn utilizan validación cruzada interna durante el entrenamiento del modelo para evitar el sobreajuste. Este parece ser el mismo problema que estamos tratando de resolver con este problema, por lo que parece que debería resolverse. No creo que necesitemos hacer un pliegue de CV por separado para entrenar / validar los métodos de conjuntos apilados, pero ¿qué piensan todos?

image

Después de discutir con @dsherry , esta es la idea con la que queremos continuar.

Plan discutido con @ bchen1116 : este problema rastrea:

  • Cree una división separada para entrenar el metaaprendizaje para las canalizaciones de conjuntos
  • Continuar usando sklearn impl para conjuntos apilados

Mejora del rendimiento por separado: mejor soporte para datos pequeños. No cree una división separada para ensamblar. Use preds de pipeline fuera de muestra de CV normal (de todos los pliegues de CV) para entrenar al ensamblador. N.º 1898

Otra mejora de rendimiento independiente: capacite a los pipelines y al metaaprendiz en diferentes datos. N.º 1897

¿Fue útil esta página
0 / 5 - 0 calificaciones