8 votos

¿Es posible combinar predicciones para mejorar la calidad de predicción global?

Este es un problema de clasificación binaria. La métrica que se minimiza es el registro de la pérdida ( o la cruz de la entropía ). Yo también tengo una exactitud el número, sólo para mi información. Es un grande, muy equilibrado conjunto de datos. Muy ingenuo técnicas de predicción obtener alrededor de 50% de precisión y 0.693 registro de la pérdida. La mejor he sido capaz de raspar es el 52,5% de precisión y 0.6915 registro de la pérdida. Ya que estamos tratando de minimizar el registro de la pérdida, siempre obtenemos un conjunto de probabilidades ( predict_proba funciones en sklearn y keras ). Eso es todo de fondo, ahora la pregunta.

Digamos que puedo usar 2 técnicas diferentes para crear 2 grupos diferentes de predicciones que han comparable exactitud y registro de la pérdida de métricas. Por ejemplo, puedo usar 2 grupos distintos de las entidades de entrada para producir 2 conjuntos de predicciones que son aproximadamente el 52% de precisión con < 0.692 registro de la pérdida. El punto es que ambos conjuntos de predicciones muestran que existe un poder de predicción. Otro ejemplo es que yo podría utilizar la regresión logística para producir un conjunto de predicciones y una red neuronal para producir el otro.

Aquí están los primeros 10 para cada conjunto, por ejemplo:

p1 = [0.49121362 0.52067905 0.50230295 0.49511673 0.52009695 0.49394751 0.48676686 0.50084939 0.48693237 0.49564188 ...]
p2 = [0.4833959  0.49700296 0.50484381 0.49122147 0.52754993 0.51766402 0.48326918 0.50432501 0.48721228 0.48949306 ...]

Estoy pensando que debe haber una manera de combinar los 2 conjuntos de predicciones en uno, para incrementar el poder de predicción. Es allí?

Yo había empezado probando algunas cosas. Por ejemplo, considero que el valor absoluto de la predicción de menos de 0,5 ( abs( p - 0.5 ) ) como una señal, y cualquiera que entre p1 y p2 tenían una mayor relación señal, me gustaría utilizar ese valor. Este ligeramente logrado que yo quería, pero sólo por un estrecho margen. Y en otro caso, no parece ayudar en todo. Curiosamente no parecen destruir el poder de predicción.

13voto

SteveC Puntos 164

Respuesta corta: Sí.

Respuesta larga: Este es uno de los muchos ejemplos de una técnica conocida como "apilamiento". Mientras que usted puede, por supuesto, decidir sobre algún manual para combinar tanto las predicciones, es incluso mejor si entrenas un tercer modelo en la salida de los dos primeros modelos (o incluso más). Esto va a mejorar aún más la precisión. Para evitar la re-uso de los datos, a menudo una parte diferente del conjunto de datos se utiliza para la formación de los primeros niveles, y el modelo de formación que combina los datos.

Ver, por ejemplo, aquí un ejemplo.

6voto

Zolomon Puntos 1648

Sí.
El método que se está hablando es de llamado de Apilamiento. Es un tipo de ensembling método. En este método, en la primera etapa de múltiples modelos están capacitados y las predicciones se almacenan como características que serán utilizados para entrenar a la segunda etapa del modelo. Un montón de Kagglers el uso de este método. En general, usted debe utilizar más de 2 modelos de la primera etapa, mientras que apilamiento (generalmente se usa al menos 4-5 modelos). También hay muchos métodos en los que el apilamiento puede ser realizado como un simple promedio, la votación por mayoría etc. Aquí hay un enlace a un kaggle kernel que implementa el apilamiento en el famoso Titanic conjunto de datos, que también es un problema de clasificación binaria.
Kaggle Núcleo de Introducción de Apilamiento utilizando Titanic conjunto de datos

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X