Agregação de bootstrap - Bootstrap aggregating
Parte de uma série sobre |
Aprendizado de máquina e mineração de dados |
---|
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).
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
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
Quando uma nova amostra é adicionada à tabela, o conjunto de dados bootstrapped é usado para determinar o valor do classificador da nova entrada.
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.
Depois que a amostra é testada na floresta aleatória, um valor de classificador é atribuído à amostra e adicionado à tabela.
Algoritmo (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
- Crie novos conjuntos de treinamento , com substituição
- O classificador é construído a partir de cada conjunto usando para determinar a classificação do conjunto
- 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.
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
- Boosting (meta-algoritmo)
- Bootstrapping (estatísticas)
- Validação cruzada (estatísticas)
- Erro fora da bolsa
- Floresta aleatória
- Método de subespaço aleatório (embalagem de atributos)
- Fronteira eficiente reamostrada
- Análise preditiva: árvores de classificação e regressão
Referências
Leitura adicional
- Breiman, Leo (1996). "Preditores de ensacamento". Aprendizado de máquina . 24 (2): 123-140. CiteSeerX 10.1.1.32.9399 . doi : 10.1007 / BF00058655 . S2CID 47328136 .
-
Alfaro, E., Gámez, M. e García, N. (2012). "adabag: Um pacote R para classificação com AdaBoost.M1, AdaBoost-SAMME e Bagging" . Citar diário requer
|journal=
( ajuda ) - Kotsiantis, Sotiris (2014). "Variantes de ensacamento e reforço para tratamento de problemas de classificação: um levantamento". Eng. Conhecimento Reveja . 29 (1): 78–100. doi : 10.1017 / S0269888913000313 .
- Boehmke, Bradley; Greenwell, Brandon (2019). "Bagging". Hands-On máquina de aprendizagem com R . Chapman & Hall. pp. 191–202. ISBN 978-1-138-49568-5.