22 votos

La combinación de los modelos de aprendizaje automático

Yo soy una especie de nuevo a la minería de datos/aprendizaje de máquina/etc. y he estado leyendo acerca de un par de maneras de combinar varios modelos y se ejecuta de la misma modelo para mejorar las predicciones.

Mi impresión de la lectura de un par de trabajos (que a menudo son interesantes y muy bien en la teoría y en letras griegas, pero corto en el código y ejemplos reales) es que se supone que debe ir así:

Me tome un modelo (knn, RF, etc) y obtener una lista de los clasificadores entre 0 y 1. Mi pregunta es cómo combinar cada una de estas listas de los clasificadores? Puedo correr los mismos modelos en mi conjunto de entrenamiento, de modo que el número de columnas que va en el modelo final son el mismo o hay algún otro truco?

Sería genial si alguna de las sugerencias que/ejemplos incluyen R código.

NOTA: Esto es para un conjunto de datos w/ 100 mil líneas en el conjunto de entrenamiento y 70k en el set de prueba y 10 columnas.

22voto

ESRogs Puntos 1381

Lo que realmente se reduce a una de las "3B" técnicas: bagging, boosting o de fusión.

En el embolsado, entrenar mucho de los clasificadores en los diferentes subconjuntos de objetos y combinar las respuestas por medio de la regresión y la votación para la clasificación (hay algunas otras opciones para situaciones más complejas, pero voy a saltar). Proporción del voto/varianza puede ser interpretado como un error de la aproximación desde el individuo clasificadores son generalmente consideradas como independientes. RF es de hecho una de embolsado conjunto.

Impulso es una familia más amplia de métodos, sin embargo, el punto principal es que la generación siguiente clasificador en los residuos de la anterior, de esta manera (en teoría) poco a poco se aumenta la precisión por destacar más y más sutiles interacciones. Las predicciones son, por lo tanto, combinado sumando a ellos, algo así como el cálculo de un valor de una función en x mediante la suma de los valores de su serie de Taylor' elementos de x.
Versiones más populares son (Estocástico) Gradiente de Aumentar (con buen fundamento matemático) y AdaBoost (muy conocida, de hecho, un caso específico de GB). Desde una perspectiva holística, árbol de decisión es un aumento de la trivial de pivote de los clasificadores.

La fusión es una idea de anidación de clasificadores, es decir, la ejecución de un clasificador en un sistema de información el hecho de que las predicciones de otros clasificadores. Como tal, es un muy variable, método y ciertamente no es un algoritmo definido; puede requerir una gran cantidad de objetos (en la mayoría de los casos la "licuadora" clasificador debe ser entrenado en un conjunto de objetos que no fueron utilizados para construir el parcial de los clasificadores para evitar avergonzar a overfit).
Las predicciones de parcial de los clasificadores son, obviamente, combinado por agruparlas en un sistema de información que es predicho por la licuadora.

7voto

Jörgen Lundberg Puntos 753

La expresión "la combinación de modelos" es vago, pero mi conjetura es que usted está preguntando acerca del conjunto de métodos de aprendizaje. La mejor referencia para aprender acerca de ellos es quizás Rica Caruana documentos:

http://www.cs.cornell.edu/~caruana/ctp/tc.documentos/caruana.icml04.icdm06long.pdf

No hay ningún código real en este papel, pero el algoritmo es claramente descrita, por lo que no debería tener ningún problema de codificación en cualquier idioma que usted prefiera.

3voto

Carsten Thiel Puntos 751

Después de mirar alrededor para un poco con la ayuda de las respuestas anteriores, me di cuenta de cuál era mi problema. Yo había estado tratando de utilizar las predicciones de otros modelos en el mismo modelo que se ha utilizado para predecir. En otras palabras, si yo tenía 5 variables cuando me encontré con la kNN modelo, me gustaría añadir una nueva variable con las predicciones de la kNN modelo y hacer un modelo con 6 variables cuando me encontré con el Bosque aleatorio del modelo. He encontrado que en lugar de los resultados de los modelos debe ser segmentado y ejecutar como un modelo independiente. Así que me gustaría crear predicciones de varios modelos (knn, RF, svd, etc.) a continuación, ejecute una separada de la combinación/mezcla/apilamiento modelo utilizando sólo las predicciones como las variables y en las clasificaciones como lo predecir.

Creo que algunos de mis problemas fueron que en la combinación de las predicciones con las otras variables, puede haber algunas sobreajuste o multicolinealidad, pero no estoy seguro. Alguien podría ser capaz de sopesar la mejor en lo que yo estaba haciendo mal. De todos modos gracias a todos por su ayuda.

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