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?
machine-learning
boosting
ensemble
bagging
model-averaging
Bucsa Lucian
fonte
fonte
Respostas:
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:
Produzindo uma distribuição de modelos simples de ML em subconjuntos dos dados originais.
Combinando a distribuição em um modelo "agregado".
Aqui está uma breve descrição dos três métodos:
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.
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.
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:
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:
fonte
Ensacamento :
conjunto paralelo : cada modelo é construído independentemente
visam diminuir a variação , não o viés
adequado para modelos de alta variação e baixo viés (modelos complexos)
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 :
conjunto seqüencial : tente adicionar novos modelos que se saem bem nos modelos anteriores
visam diminuir o viés , não a variação
adequado para modelos de baixa polarização e alta polarização
um exemplo de método baseado em árvore é aumentar o gradiente
fonte
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.
fonte
Veja minha postagem no blog de aprendizado do ensemble
Fontes para esta imagem:
fonte
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.
Random Forest
, que eliminam a variação e não têm problema de sobreajuste.GBM
eXGBoost
que elimina a variação, mas tem um problema de sobreajuste.fonte
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).
fonte
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.
fonte