Ensacamento, aumento e empilhamento no aprendizado de máquina

245

Quais são as semelhanças e diferenças entre estes três métodos:

  • Bagagem,
  • Boosting,
  • Empilhamento?

Qual é o melhor? E porque?

Você pode me dar um exemplo para cada um?

Bucsa Lucian
fonte
3
para uma referência livro, eu recomendo: "métodos Ensemble: Fundamentos e algoritmos" por Zhou, Zhi-Hua
Vadim Smolyakov
1
Veja aqui uma pergunta relacionada .
Ricardo Cruz

Respostas:

252

Todos os três são os chamados "meta-algoritmos": abordagens para combinar várias técnicas de aprendizado de máquina em um modelo preditivo, a fim de diminuir a variância ( ensacamento ), o viés ( aumentar ) ou melhorar a força preditiva ( empilhamento apelido conjunto ).

Todo algoritmo consiste em duas etapas:

  1. Produzindo uma distribuição de modelos simples de ML em subconjuntos dos dados originais.

  2. Combinando a distribuição em um modelo "agregado".

Aqui está uma breve descrição dos três métodos:

  1. Ensacamento (que significa B ootstrap Agg regat ing ) é uma maneira de diminuir a variância de sua previsão, gerando dados adicionais para formação do conjunto de dados original usando combinações com repetições para produzir multisets da mesma cardinalidade / tamanho de seus dados originais. Ao aumentar o tamanho do seu conjunto de treinamento, você não pode melhorar a força preditiva do modelo, mas apenas diminuir a variação, ajustando a previsão estritamente ao resultado esperado.

  2. O impulso é uma abordagem em duas etapas, na qual se usa primeiro subconjuntos dos dados originais para produzir uma série de modelos com desempenho médio e, em seguida, "aumenta" o desempenho combinando-os usando uma função de custo específica (= voto majoritário). Ao contrário do ensacamento, no impulso clássico, a criação de subconjuntos não é aleatória e depende do desempenho dos modelos anteriores: todos os novos subconjuntos contêm os elementos que foram (provavelmente) classificados erroneamente pelos modelos anteriores.

  3. O empilhamento é semelhante ao aumento: você também aplica vários modelos aos seus dados originais. A diferença aqui é, no entanto, que você não possui apenas uma fórmula empírica para sua função de peso, mas introduz um meta-nível e usa outro modelo / abordagem para estimar a entrada, juntamente com as saídas de cada modelo para estimar os pesos ou , em outras palavras, para determinar quais modelos apresentam um bom desempenho e quais dados são ruins para esses dados de entrada.

Aqui está uma tabela de comparação:

Tabela comparativa

Como você vê, todas essas são abordagens diferentes para combinar vários modelos em um melhor, e não há um vencedor aqui: tudo depende do seu domínio e do que você fará. Você ainda pode tratar empilhamento como uma espécie de mais avanços impulsionar , no entanto, a dificuldade de encontrar uma boa abordagem para a sua meta de nível faz com que seja difícil de aplicar na prática esta abordagem.

Pequenos exemplos de cada um:

  1. Ensacamento : dados sobre ozônio .
  2. Reforço : é usado para melhorar a precisão do reconhecimento óptico de caracteres (OCR).
  3. Empilhamento : é usado na classificação de microarranjos de câncer em medicina.
Alexander Galkin
fonte
8
Parece que sua definição de reforço é diferente da definição no wiki (para a qual você vinculou) ou neste artigo . Ambos dizem que, ao impulsionar o próximo classificador, os resultados dos treinados anteriormente são usados, mas você não mencionou isso. O método que você descreve, por outro lado, se assemelha a algumas técnicas de média de votação / modelo.
Alexander Rodin
2
@ a-rodin: Obrigado por apontar esse aspecto importante, reescrevi completamente esta seção para refletir melhor isso. Quanto à sua segunda observação, entendo que o aumento também é um tipo de votação / média, ou entendi você errado?
Alexander Galkin
@AlexanderGalkin Eu tinha em mente o aumento de gradiente no momento dos comentários: não parece votação, mas sim uma técnica de aproximação de função iterativa. No entanto, por exemplo, o AdaBoost parece mais com votação, então não discutirei sobre isso.
Alexander Rodin
3
Na sua primeira frase, você diz que Aumentar diminui o viés, mas na tabela de comparação você diz que aumenta a força preditiva. Ambos são verdadeiros?
Ben Lindsay
68

Ensacamento :

  1. conjunto paralelo : cada modelo é construído independentemente

  2. visam diminuir a variação , não o viés

  3. adequado para modelos de alta variação e baixo viés (modelos complexos)

  4. um exemplo de método baseado em árvore é a floresta aleatória , que desenvolve árvores totalmente crescidas (observe que a RF modifica o procedimento de crescimento para reduzir a correlação entre árvores)

Impulsionar :

  1. conjunto seqüencial : tente adicionar novos modelos que se saem bem nos modelos anteriores

  2. visam diminuir o viés , não a variação

  3. adequado para modelos de baixa polarização e alta polarização

  4. um exemplo de método baseado em árvore é aumentar o gradiente

yuqian
fonte
5
Comentar cada um dos pontos para responder por que é assim e como é alcançado seria uma grande melhoria em sua resposta.
Tim
2
Você pode compartilhar qualquer documento / link que explique que aumentar a redução de variação e como isso ocorre? Só quero entender com mais profundidade
GeorgeOfTheRF
1
Obrigado Tim, adicionarei alguns comentários mais tarde. @ML_Pro, pelo procedimento de impulsionar (por exemplo, página 23 de cs.cornell.edu/courses/cs578/2005fa/… ), é compreensível que o impulso possa reduzir o viés.
Yuqian
43

Apenas para elaborar um pouco a resposta de Yuqian. A idéia por trás da ensacagem é que, quando você superaprova o método de regressão não paramétrico (geralmente árvores de regressão ou classificação, mas pode ser praticamente qualquer método não paramétrico), tende a ir para a alta variação, nenhuma (ou baixa) parte do viés / troca de variância. Isso ocorre porque um modelo de ajuste excessivo é muito flexível (viés tão baixo em muitas reamostragens da mesma população, se disponíveis), mas tem alta variabilidade (se eu coletar uma amostra e super-ajustá-la, e você coletar uma amostra e super-ajustá-la, nossa os resultados diferem porque a regressão não paramétrica rastreia o ruído nos dados). O que podemos fazer? Podemos fazer várias reamostragens (do bootstrapping), cada uma delas ajustadas e calculá-las juntas. Isso deve levar ao mesmo viés (baixo), mas anula parte da variação,

O aumento de gradiente em seu coração funciona com regressões não paramétricas UNDERFIT, que são muito simples e, portanto, não são flexíveis o suficiente para descrever o relacionamento real nos dados (isto é, tendencioso), mas, porque eles estão sob ajuste, apresentam baixa variação (você tenderia a para obter o mesmo resultado se você coletar novos conjuntos de dados). Como você corrige isso? Basicamente, se você se encaixar, os RESIDUAIS do seu modelo ainda contêm estrutura útil (informações sobre a população), para aumentar a árvore que você tem (ou qualquer preditor não paramétrico) com uma árvore construída sobre os resíduos. Isso deve ser mais flexível que a árvore original. Você gera repetidamente mais e mais árvores, cada uma na etapa k aumentada por uma árvore ponderada com base em uma árvore ajustada aos resíduos da etapa k-1. Uma dessas árvores deve ser ótima, então você acaba ponderando todas essas árvores juntas ou selecionando uma que parece ser a mais adequada. Assim, o aumento do gradiente é uma maneira de construir um monte de árvores candidatas mais flexíveis.

Como todas as abordagens não paramétricas de regressão ou classificação, às vezes ensacamento ou reforço funciona muito bem, às vezes uma ou a outra abordagem é medíocre, e às vezes uma ou outra abordagem (ou ambas) falha e queima.

Além disso, essas duas técnicas podem ser aplicadas a abordagens de regressão diferentes das árvores, mas elas são mais comumente associadas a árvores, talvez porque seja difícil definir parâmetros para evitar ajustes ou sobreajustes.

AlaskaRon
fonte
3
+1 para o argumento de ajuste excessivo = variação, ajuste insuficiente = tendência! Uma razão para o uso de árvores de decisão é que elas são estruturalmente instáveis ​​e, portanto, se beneficiam mais com pequenas mudanças de condições. ( abbottanalytics.com/assets/pdf/… )
Mark Horvath
3

Para resumir, Bagging e Boosting são normalmente usados ​​dentro de um algoritmo, enquanto Stacking geralmente é usado para resumir vários resultados de algoritmos diferentes.

  • Bagging : subconjuntos de recursos e amostras de inicialização para obter várias previsões e calcular a média (ou outras formas) dos resultados, por exemplo Random Forest, que eliminam a variação e não têm problema de sobreajuste.
  • Impulso : A diferença do Bagging é que o modelo posterior está tentando aprender o erro cometido pelo anterior, por exemplo , GBMe XGBoostque elimina a variação, mas tem um problema de sobreajuste.
  • Empilhamento : normalmente usado em competições, quando se usa vários algoritmos para treinar no mesmo conjunto de dados e calcular a média (max, min ou outras combinações) do resultado, a fim de obter uma maior precisão da previsão.
MJeremy
fonte
2

ensacamento e reforço usam um único algoritmo de aprendizado para todas as etapas; mas eles usam métodos diferentes para lidar com amostras de treinamento. ambos são um método de aprendizado de conjunto que combina decisões de vários modelos.
Bagging :
1. reamostrar dados de treinamento para obter subconjuntos M (inicialização);
2. treina classificadores M (mesmo algoritmo) com base em conjuntos de dados M (amostras diferentes);
3. classificador final combina M resultados por votação;
as amostras pesam igualmente;
classificadores pesam igualmente;
diminui o erro diminuindo a variação
Boosting : focalize aqui o algoritmo adaboost
1. comece com peso igual para todas as amostras na primeira rodada;
2. nas rodadas M-1 seguintes, aumente os pesos das amostras classificadas incorretamente na última rodada, diminua os pesos das amostras classificadas corretamente na última rodada
3. usando uma votação ponderada, o classificador final combina vários classificadores das rodadas anteriores e fornece pesos maiores para classificadores com menos classificações incorretas.
amostras passo a passo de recompensas; pesos para cada rodada com base nos resultados das
amostras da última rodada de re-peso (aumento) em vez de reamostragem (ensacamento).

Shrek
fonte
0

Ensacamento e reforço tendem a usar muitos modelos homogêneos.

O empilhamento combina resultados de tipos de modelo heterogêneo.

Como nenhum tipo de modelo único tende a ser o melhor ajuste para toda a distribuição, você pode ver por que isso pode aumentar o poder preditivo.

Brad
fonte