Ensamblar expresiones

Nov 19 2020

Tengo dos modelos, $m_1$ y $m_2$, y quiero ensamblarlos en un modelo final. Quiero poder ponderar uno u otro más según una búsqueda de cuadrícula. Hay dos ideas principales que me vienen a la mente al hacerlo:

  • Definir una familia de modelos $m_1 \cdot a + m_2 \cdot (1 - a)$, dónde $0 < a < 1$, encuentra el $a$ que da la mejor puntuación.
  • Definir una familia de modelos $m_1^a \cdot m_2^{1 - a}$, dónde $0 < a < 1$, encuentra el $a$ que da la mejor puntuación.

Sin embargo, en ciertos casos, he visto a los mejores modelos en las competiciones de Kaggle haciendo cosas bastante diferentes, como tener un modelo final del formulario.$m_1^a + m_2^b$.

Mi pregunta es, ¿cuáles son las ventajas y desventajas de cada solución? ¿Cuándo funcionan mejor y cuándo funcionan peor? ¿Cuándo es adecuado el tercer tipo de conjunto y hay alguna heurística para afinar?$a$ y $b$?

Respuestas

1 BrianSpiering Nov 21 2020 at 23:03

Esa es una pregunta empírica. La respuesta cambiará para diferentes modelos y diferentes conjuntos de datos.

El mejor enfoque utilizaría la validación cruzada para ver qué técnica de conjunto tiene la mejor puntuación en la métrica de evaluación para los datos dados.

1 CarlosMougan Nov 23 2020 at 21:22

Puede hacer la misma pregunta con cada algoritmo de aprendizaje automático y, aun así, la respuesta seguirá siendo muy similar.

¿Cuál es la ventaja de la regresión lineal sobre los árboles de decisión? Para responder a esto, podría definirlos matemáticamente. En su caso, la definición matemática parece sencilla: media ponderada o media geométrica.

¿Cuándo un modelo funciona mejor con otro modelo? Pruébelo en validación cruzada.

Lamentablemente, la metodología científica en Machine Learning se realiza por prueba y error. Decir cuál será el valor de un hiperparámetro antes de ajustar el modelo no es confiable.

Usted "prueba" que un algoritmo funciona en ML cuando lo ejecuta a través de un conjunto de conjuntos de datos y funciona mejor que el resto.

Volviendo a su pregunta, lo que sucede en kaggle tiende a ser lo más técnico avanzado. Entonces, si está ahí, vale la pena intentarlo.

DaL Nov 23 2020 at 13:15

Estoy de acuerdo con Brain. La solución que funcionará mejor es la que se ajustará mejor a sus datos.

Tenga en cuenta que si solo tiene un parámetro, puede obtener el valor óptimo en lugar de realizar una búsqueda en la cuadrícula. Su familia de soluciones está restringida, por lo que no espero una ganancia significativa, pero no hay razón para no usarla.