É mais fácil começar com sua segunda pergunta e depois passar para a primeira.
Ensacamento
Random Forest é um algoritmo de empacotamento. Reduz a variação.
Digamos que você tenha modelos muito não confiáveis, como Árvores de Decisão. (Por que não confiável? Porque, se você alterar um pouco seus dados, a árvore de decisão criada pode ser muito diferente.) Nesse caso, você pode criar um modelo robusto (reduzir a variação) por meio da ensacamento - ensacar é quando você cria modelos diferentes reamostrando seus dados para tornar o modelo resultante mais robusto.
Floresta aleatória é o que chamamos de empacotamento aplicado a árvores de decisão, mas não é diferente de outro algoritmo de empacotamento.
Por que você quer fazer isso? Depende do problema. Mas geralmente, é altamente desejável que o modelo seja estável.
Impulsionar
Aumentar reduz a variação e também reduz o viés. Reduz a variação porque você está usando vários modelos (ensacamento). Reduz o viés treinando o modelo subseqüente, informando quais erros os modelos anteriores cometeram (a parte impulsionadora).
Existem dois algoritmos principais:
- Adaboost: este é o algoritmo original; você diz aos modelos subseqüentes para punir mais fortemente as observações confundidas com os modelos anteriores
- Aumento de gradiente: você treina cada modelo subsequente usando os resíduos (a diferença entre os valores previstos e os verdadeiros)
Nestes conjuntos, o aluno básico deve ser fraco. Se ajustar demais os dados, não haverá resíduos ou erros para os modelos subseqüentes. Por que esses bons modelos? Bem, a maioria das competições em sites como o Kaggle foram vencidas usando árvores de aumento de gradiente. A ciência de dados é uma ciência empírica, "porque funciona" é boa o suficiente. De qualquer forma, observe que o aumento de modelos pode superajustar (embora empiricamente não seja muito comum).
Outra razão pela qual o aumento do gradiente, em particular, também é bastante interessante: porque facilita muito o uso de diferentes funções de perda, mesmo quando o derivado não é convexo. Por exemplo, ao usar a previsão probabilística, você pode usar coisas como a função de pinball como sua função de perda; algo que é muito mais difícil com as redes neurais (porque a derivada é sempre constante).
[Nota histórica interessante: Boosting foi originalmente uma invenção teórica motivada pela pergunta " podemos construir um modelo mais forte usando modelos mais fracos "]
Nota: Às vezes, as pessoas confundem árvores aleatórias de floresta e aumento de gradiente, apenas porque ambas usam árvores de decisão, mas são duas famílias muito diferentes de conjuntos.
Ao construir uma árvore, você precisa definir alguns critérios para dividir os nós. Isso inclui métricas como ganho de informação e índice de Gini. Essas são abordagens heurísticas , elas não garantem a melhor divisão possível.
Peso no fato de alguns atributos serem menos relevantes e / ou mais barulhentos e muitos outros problemas que ocorrem em dados reais. Em resumo, você não pode construir uma árvore perfeita em um tempo computacional decente (é claro que você pode construir todas as árvores possíveis e testar da melhor maneira possível, mas terá que esperar alguns anos para treinar, mesmo em um conjunto de dados de tamanho médio).
Como não podemos ter a melhor árvore, temos aproximações. Uma aproximação é construir muitas árvores (usando diferentes partições de dados ou partições de atributos), pois esperamos que a maioria das árvores seja um pouco correta e considere suas classificações em um sistema de votação; isso deve lidar com a maioria dos ruídos, a partição vertical pode lidar com atributos irrelevantes, a heurística tem menos importância e talvez outras vantagens.
fonte
Eu acrescentaria uma pequena adição às boas respostas. O principal problema é o excesso de ajustes. Assim que você tiver mais de um parâmetro e também adicionar funções não lineares, todos os algoritmos começarão a se ajustar demais. Eles veem algo nos dados que não existe. Como quando está escuro ou o nevoeiro é forte, as pessoas tendem a ver coisas na escuridão / nevoeiro que não existem. Quase todos os algoritmos computacionais fazem mais ajustes do que os humanos. Mesmo regressões lineares começam a mostrar coeficientes estranhos quando as variáveis são altamente correlacionadas. Se não houvesse sobreajuste, as árvores de decisão usuais, nas quais esses algoritmos são baseados, teriam sido melhores que a Random Forest ou o XGBoost.
E não há ciência exata sobre o por que o sobreajuste ocorre e por que alguns algoritmos são melhores que outros. Em teoria, os modelos ARIMA são muito sólidos, mas a prática mostra que o uso de técnicas de suavização exponencial é melhor e o ARIMA não consegue nem diferenciar variáveis que se comportam de acordo com o ARIMA, mas com parâmetros diferentes.
Algumas redes neurais e, especialmente, redes neurais convolucionais parecem ter baixo ajuste. Ao mesmo tempo, a idéia original de redes neurais totalmente conectadas falha com um número elevado de neurônios por causa do ajuste excessivo.
As principais possibilidades para combater o excesso de ajustes são:
Se eu entendo os algoritmos corretamente, a Random Forest e o XGBoost fazem amostragem aleatória e medem a média em vários modelos e, assim, conseguem reduzir o overfitting.
Na competição de reconhecimento de imagem ImageNet, o melhor modelo para 2016 (Shao et al) foi uma combinação de vários modelos realmente bons. Alguns deles venceram a competição nos anos anteriores. Esse modelo teve um erro 20% menor do que qualquer um dos modelos nos quais foi baseado. É assim que a média de vários modelos pode ser forte na luta contra o ajuste excessivo.
fonte