Agregação de bootstrap - Bootstrap aggregating

A agregação de bootstrap , também chamada de bagging (de b ootstrap agg regat ing ), é um meta-algoritmo de conjunto de aprendizado de máquina projetado para melhorar a estabilidade e a precisão dos algoritmos de aprendizado de máquina usados ​​em classificação estatística e regressão . Também reduz a variância e ajuda a evitar overfitting . Embora seja normalmente aplicado a métodos de árvore de decisão , pode ser usado com qualquer tipo de método. O ensacamento é um caso especial da abordagem de cálculo da média do modelo .

Descrição da técnica

Dado um conjunto de treinamento padrão de tamanho n , o bagging gera m novos conjuntos de treinamento , cada um de tamanho n ′ , por amostragem de D uniformemente e com reposição . Por amostragem com reposição, algumas observações podem ser repetidas em cada uma delas . Se n = n , então para n grande espera-se que o conjunto tenha a fração (1 - 1 / e ) (≈63,2%) dos exemplos únicos de D , sendo o restante duplicado. Esse tipo de amostra é conhecido como amostra de bootstrap . A amostragem com substituição garante que cada bootstrap seja independente de seus pares, uma vez que não depende de amostras previamente escolhidas durante a amostragem. Então, m modelos são ajustados usando as m amostras bootstrap acima e combinados pela média da saída (para regressão) ou votação (para classificação).

Uma ilustração para o conceito de agregação bootstrap


O bagging leva a "melhorias para procedimentos instáveis", que incluem, por exemplo, redes neurais artificiais , árvores de classificação e regressão e seleção de subconjunto na regressão linear . O bagging demonstrou melhorar o aprendizado da pré-imagem. Por outro lado, pode degradar levemente o desempenho de métodos estáveis, como K-vizinhos mais próximos.

Processo do algoritmo

Conjunto de dados original

O conjunto de dados original contém várias entradas de amostras de s1 a s5. Cada amostra possui cinco recursos (Gene 1 a Gene 5). Todas as amostras são rotuladas como Sim ou Não para um problema de classificação.

Amostras Gene 1 Gene 2 Gene 3 Gene 4 Gene 5 Resultado
s1 1 0 1 0 0 Não
s2 1 0 0 0 1 Não
s3 0 1 1 0 1 sim
s4 1 1 1 0 1 sim
s5 0 0 0 1 1 Não

Criação de conjuntos de dados bootstrapped

Dada a tabela acima, para classificar uma nova amostra, primeiro um conjunto de dados bootstrapped deve ser criado usando os dados do conjunto de dados original. Esse conjunto de dados inicializado normalmente tem o tamanho do conjunto de dados original ou é menor.

Neste exemplo, o tamanho é cinco (s1 a s5). O conjunto de dados bootstrapped é criado selecionando amostras aleatoriamente do conjunto de dados original. São permitidas seleções repetidas. Todas as amostras que não são escolhidas para o conjunto de dados inicializado são colocadas em um conjunto de dados separado denominado conjunto de dados out-of-bag.

Veja um exemplo de conjunto de dados bootstrapped abaixo. Possui cinco entradas (mesmo tamanho do conjunto de dados original). Existem entradas duplicadas, como dois s3, uma vez que as entradas são selecionadas aleatoriamente com substituição.

Amostras Gene 1 Gene 2 Gene 3 Gene 4 Gene 5 Resultado
s1 1 0 1 0 0 Não
s3 0 1 1 0 1 sim
s2 1 0 0 0 1 Não
s3 0 1 1 0 1 sim
s4 1 1 1 0 1 sim


Esta etapa será repetida para gerar conjuntos de dados m bootstrapped.

Criação de árvores de decisão

NewBootstrapdatasettree

Uma árvore de decisão é criada para cada conjunto de dados inicializado usando valores de coluna selecionados aleatoriamente para dividir os nós.

Prever usando várias árvores de decisão

NewEntryIntoBaseTableExample Quando uma nova amostra é adicionada à tabela, o conjunto de dados bootstrapped é usado para determinar o valor do classificador da nova entrada.

NewEntrytesttree

A nova amostra é testada na floresta aleatória criada por cada conjunto de dados inicializado e cada árvore produz um valor de classificador para a nova amostra. Para a classificação, um processo denominado votação é usado para determinar o resultado final, onde o resultado produzido com mais frequência pela floresta aleatória é o resultado dado para a amostra. Para a regressão, é atribuído à amostra o valor médio do classificador produzido pelas árvores.

FinalTable

Depois que a amostra é testada na floresta aleatória, um valor de classificador é atribuído à amostra e adicionado à tabela.

Algoritmo (classificação)

Fluxograma do algoritmo de ensacamento quando usado para classificação

Para classificação, use um conjunto de treinamento , indutor e o número de amostras de bootstrap como entrada. Gerar um classificador como saída

  1. Crie novos conjuntos de treinamento , com substituição
  2. O classificador é construído a partir de cada conjunto usando para determinar a classificação do conjunto
  3. Finalmente, o classificador é gerado usando o conjunto de classificadores criado anteriormente no conjunto de dados original , a classificação prevista com mais frequência pelos subclassificadores é a classificação final
for i = 1 to m {
    D' = bootstrap sample from D    (sample with replacement)
    Ci = I(D')
}
C*(x) = argmax    Σ 1               (most often predicted label y)
         y∈Y   i:Ci(x)=y

Exemplo: dados de ozônio

Para ilustrar os princípios básicos do ensacamento, segue abaixo uma análise sobre a relação entre ozônio e temperatura (dados de Rousseeuw e Leroy (1986), análise feita em R ).

A relação entre a temperatura e o ozônio parece ser não linear neste conjunto de dados, com base no gráfico de dispersão. Para descrever matematicamente essa relação, suaves LOESS (com largura de banda 0,5) são usados. Em vez de construir um único suavizador para o conjunto de dados completo, 100 amostras de bootstrap foram desenhadas. Cada amostra é composta por um subconjunto aleatório dos dados originais e mantém uma aparência da distribuição e variabilidade do conjunto mestre. Para cada amostra de bootstrap, um liso LOESS foi ajustado. As previsões desses 100 suavizadores foram feitas em toda a gama de dados. As linhas pretas representam essas previsões iniciais. As linhas não concordam em suas previsões e tendem a super ajustar seus pontos de dados: evidente pelo fluxo instável das linhas.

Ozone.png

Pegando a média de 100 suavizadores, cada um correspondendo a um subconjunto do conjunto de dados original, chegamos a um preditor ensacado (linha vermelha). O fluxo da linha vermelha é estável e não está em conformidade com nenhum ponto (s) de dados.

Vantagens e desvantagens

Vantagens:

  • Muitos alunos fracos agregados normalmente superam um único aluno em todo o conjunto e têm menos superaquecimento
  • Remove a variância no aluno fraco de alta variância e baixo viés
  • Pode ser executado em paralelo , pois cada bootstrap separado pode ser processado por conta própria antes da combinação

Desvantagens:

  • Para o aluno fraco com alto viés, o ensacamento também carregará alto viés em seu agregado
  • Perda de interpretabilidade de um modelo.
  • Pode ser caro computacionalmente, dependendo do conjunto de dados

História

O conceito de agregação de bootstrap é derivado do conceito de bootstrapping desenvolvido por Bradley Efron. A agregação bootstrap foi proposta por Leo Breiman, que também cunhou o termo abreviado "bagging" ( b ootstrap agg regat ing ). Breiman desenvolveu o conceito de ensacamento em 1994 para melhorar a classificação combinando classificações de conjuntos de treinamento gerados aleatoriamente. Ele argumentou: "Se perturbar o conjunto de aprendizagem pode causar mudanças significativas no preditor construído, então o bagging pode melhorar a precisão".

Veja também

Referências

Leitura adicional