Es más fácil comenzar con su segunda pregunta y luego pasar a la primera.
Harpillera
Random Forest es un algoritmo de ensacado. Reduce la varianza.
Digamos que tiene modelos muy poco confiables, como árboles de decisión. (¿Por qué no es confiable? Porque si cambia un poco sus datos, el árbol de decisión creado puede ser muy diferente). En tal caso, puede construir un modelo robusto (reducir la varianza) a través del embolsado : el embolsado es cuando crea diferentes modelos al volver a muestrear sus datos para hacer que el modelo resultante sea más robusto.
El bosque aleatorio es lo que llamamos el ensacado aplicado a los árboles de decisión, pero no es diferente de otro algoritmo de ensacado.
Por qué querrías hacer esto? Depende del problema. Pero generalmente, es altamente deseable que el modelo sea estable.
Impulsar
Impulsar reduce la varianza y también reduce el sesgo. Reduce la variación porque está utilizando múltiples modelos (ensacado). Reduce el sesgo al entrenar el modelo posterior diciéndole qué errores cometieron los modelos anteriores (la parte de refuerzo).
Hay dos algoritmos principales:
- Adaboost: este es el algoritmo original; le dice a los modelos subsiguientes que castiguen más fuertemente las observaciones equivocadas por los modelos anteriores
- Aumento de gradiente: entrena cada modelo posterior utilizando los residuos (la diferencia entre los valores predichos y verdaderos)
En estos conjuntos, su alumno base debe ser débil. Si sobreajusta los datos, no habrá ningún residuo o error para que los modelos posteriores se basen. ¿Por qué son estos buenos modelos? Bueno, la mayoría de las competiciones en sitios web como Kaggle se han ganado utilizando árboles que aumentan el gradiente. La ciencia de datos es una ciencia empírica, "porque funciona" es lo suficientemente buena. De todos modos, tenga en cuenta que los modelos de impulso pueden sobreajustar (aunque empíricamente no es muy común).
Otra razón por la que el aumento de gradiente, en particular, también es genial: porque hace que sea muy fácil usar diferentes funciones de pérdida, incluso cuando la derivada no es convexa. Por ejemplo, cuando usa el pronóstico probabilístico, puede usar cosas como la función pinball como su función de pérdida; algo que es mucho más difícil con las redes neuronales (porque la derivada siempre es constante).
[Nota histórica interesante: el impulso fue originalmente una invención teórica motivada por la pregunta " ¿podemos construir un modelo más fuerte usando modelos más débiles "]
Aviso: las personas a veces confunden los árboles aleatorios y los árboles que aumentan el gradiente, solo porque ambos usan árboles de decisión, pero son dos familias muy diferentes de conjuntos.
Cuando crea un árbol, debe definir algunos criterios para dividir nodos. Estos incluyen métricas como Ganancia de información e Índice de Gini. Esos son enfoques heurísticos , no se garantiza que den la mejor división posible.
Considere el hecho de que algunos atributos son menos relevantes y / o más ruidosos, y muchos otros problemas que ocurren en los datos reales. En resumen, no puede construir un árbol perfecto en un tiempo computacional decente (por supuesto, podría construir todos los árboles posibles y probar los mejores, pero luego tendría que esperar algunos años para capacitarse incluso en un conjunto de datos de tamaño mediano).
Como no podemos tener el mejor árbol, tenemos aproximaciones. Una aproximación es construir muchos árboles (usando diferentes particiones de datos o particiones de atributos), ya que esperamos que la mayoría de los árboles sean algo correctos, y consideremos sus clasificaciones en un sistema de votación; esto debería tratar con la mayoría del ruido, la partición vertical puede tratar con atributos irrelevantes, la heurística tiene menos importancia y quizás otras ventajas.
fuente
Añadiría una pequeña adición a las buenas respuestas. El principal problema es el sobreajuste. Tan pronto como tenga más de un parámetro y también agregue funciones no lineales, todos los algoritmos comienzan a ajustarse en exceso. Ven algo en los datos que no existe. Como cuando está oscuro o la niebla es fuerte, las personas tienden a ver cosas en la oscuridad / niebla que no existen. Casi todos los algoritmos computacionales hacen más sobreajuste que los humanos. Incluso las regresiones lineales comienzan a mostrar coeficientes extraños cuando las variables están altamente correlacionadas. Si no hubiera un sobreajuste, los árboles de decisión habituales, en los que se basan esos algoritmos, habrían sido mejores que Random Forest o XGBoost.
Y no hay una ciencia exacta de por qué ocurre el sobreajuste y por qué algunos algoritmos son mejores que otros. En teoría, los modelos ARIMA son muy sólidos, pero la práctica muestra que el uso de técnicas de suavizado exponencial es mejor y ARIMA ni siquiera puede diferenciar las variables que se comportan de acuerdo con ARIMA pero con diferentes parámetros.
Algunas redes neuronales y especialmente las redes neuronales convolucionales parecen tener un sobreajuste bajo. Al mismo tiempo, la idea original de redes neuronales completamente conectadas falla con un gran número de neuronas debido al sobreajuste.
Las principales posibilidades para luchar contra el sobreajuste son:
Si entiendo los algoritmos correctamente, tanto Random Forest como XGBoost hacen un muestreo aleatorio y promedian en múltiples modelos y así logran reducir el sobreajuste.
En la competencia de reconocimiento de imágenes ImageNet, el mejor modelo para 2016 (Shao et al) fue una combinación de varios modelos realmente buenos. Algunos de ellos ganaron la competencia en años anteriores. Este modelo tenía un 20% menos de error que cualquiera de los modelos en los que se basaba. Así es como el promedio en múltiples modelos podría ser fuerte en la lucha contra el sobreajuste.
fuente