Algoritmo aleatório de floresta e árvore de decisão

14

Uma floresta aleatória é uma coleção de árvores de decisão seguindo o conceito de ensacamento. Quando passamos de uma árvore de decisão para a próxima, então como as informações aprendidas pela última árvore de decisão avançam para a próxima?

Porque, de acordo com meu entendimento, não há nada como um modelo treinado que seja criado para cada árvore de decisão e carregado antes que a próxima árvore de decisão comece a aprender com o erro de classificação incorreta.

Então, como isso funciona?

Abhay Raj Singh
fonte
"Quando passamos de uma árvore de decisão para a próxima árvore de decisão". Isso sugere um processo linear. Criamos implementações paralelas nas quais trabalhamos em uma árvore por núcleo de CPU; isso funciona perfeitamente bem, a menos que você use um gerador de número aleatório separado por núcleo de CPU no treinamento, que compartilham a mesma semente. Nesse caso, você pode acabar com muitas árvores idênticas.
MSalters

Respostas:

23

Nenhuma informação é passada entre árvores. Em uma floresta aleatória, todas as árvores são distribuídas de forma idêntica, porque as árvores são cultivadas usando a mesma estratégia de randomização para todas as árvores. Primeiro, pegue uma amostra de inicialização dos dados e, em seguida, aumente a árvore usando divisões de um subconjunto de recursos escolhido aleatoriamente. Isso acontece para cada árvore individualmente, sem atenção a outras árvores do conjunto. No entanto, as árvores são correlacionadas puramente em virtude de cada árvore ser treinada em uma amostra a partir de um conjunto comum de dados de treinamento; várias amostras do mesmo conjunto de dados tendem a ser semelhantes, portanto as árvores codificam parte dessa similaridade.

Você pode achar útil ler uma introdução a florestas aleatórias a partir de um texto de alta qualidade. Um deles é "Random Forests", de Leo Breiman. Há também um capítulo em Elements of Statistical Learning, de Hastie et al.

É possível que você tenha confundido florestas aleatórias com métodos de otimização, como o AdaBoost ou árvores com gradiente. Os métodos de reforço não são os mesmos, porque eles usam informações sobre desajuste das rodadas de reforço anteriores para informar a próxima rodada de reforço. Veja: A floresta aleatória é um algoritmo de aumento?

Sycorax diz restabelecer Monica
fonte
10

As florestas aleatórias são uma coleção de várias árvores de decisão que são treinadas independentemente uma da outra . Portanto, não há noção de treinamento sequencialmente dependente (que é o caso de impulsionar algoritmos ). Como resultado, como mencionado em outra resposta, é possível fazer um treinamento paralelo das árvores.

Você pode saber de onde vem o "aleatório" na floresta aleatória: existem duas maneiras pelas quais a aleatoriedade é injetada no processo de aprendizado das árvores. Primeiro é a seleção aleatória de pontos de dados usados ​​para treinar cada uma das árvores, e segundo é a seleção aleatória de recursos usados ​​na construção de cada árvore. Como uma única árvore de decisão geralmente tende a se ajustar demais aos dados, a injeção de aleatoriedade dessa maneira resulta em várias árvores em que cada uma delas tem uma boa precisão (e possivelmente se adapta demais) a um subconjunto diferente dos dados de treinamento disponíveis. . Portanto, quando calculamos a média das previsões feitas por todas as árvores, observamos uma redução no overfitting (em comparação com o caso de treinar uma única árvore de decisão em todos os dados disponíveis ).

MN

  1. Eu=0 0
  2. MMSEu
  3. EuTEuSEu
    • o processo de treinamento é o mesmo que treinar uma árvore de decisão, exceto com a diferença de que em cada nó da árvore apenas uma seleção aleatória de recursos é usada para a divisão nesse nó.
  1. Eu=Eu+1
  2. Eu<N

T1T2TN

  • Se for usado para uma tarefa de regressão, considere a média das previsões como a previsão final da floresta aleatória.

  • Se for usado para uma tarefa de classificação, use a estratégia de votação simples: calcule a média das probabilidades previstas pelas árvores para cada classe e, em seguida, declare a classe com a maior probabilidade média como a previsão final de floresta aleatória.

Além disso, vale ressaltar que é possível treinar as árvores de maneira sequencialmente dependente e é exatamente isso que o algoritmo de árvores com gradiente impulsionado faz, que é um método totalmente diferente das florestas aleatórias.

hoje
fonte
8

A floresta aleatória é um algoritmo de empacotamento em vez de um algoritmo de aumento.

A floresta aleatória constrói a árvore independentemente usando amostra aleatória dos dados. Uma implementação paralela é possível.

Você pode verificar o aumento de gradiente onde as árvores são construídas sequencialmente, onde novas árvores tentam corrigir o erro cometido anteriormente.

Siong Thye Goh
fonte
6

Então, como isso funciona?

Random Forest é uma coleção de árvores de decisão. As árvores são construídas de forma independente. Cada árvore é treinada no subconjunto de recursos e subconjunto de uma amostra escolhida com substituição.

Ao prever, digamos, para Classificação, os parâmetros de entrada são fornecidos para cada árvore na floresta e cada árvore "vota" na classificação, com o rótulo com mais votos.

Por que usar a floresta aleatória sobre uma simples árvore de decisão? Negociação de desvios / variações. A floresta aleatória é construída a partir de árvores muito mais simples quando comparada a uma única árvore de decisão. Geralmente, as florestas aleatórias fornecem uma grande redução de erro devido à variação e pequeno aumento no erro devido à polarização.

Akavall
fonte
Se estivermos escolhendo recursos diferentes para cada Árvore de Decisão, como o aprendizado de um conjunto de recursos na Árvore de Decisão anterior melhora enquanto enviamos os valores classificados incorretamente à frente, pois na próxima Árvore de Decisão há um novo conjunto de recursos?
Abhay Raj Singh
3
@AbhayRajSingh - você não "envia os valores mal classificados adiante" na Floresta Aleatória. Como diz Akavall, "As árvores são construídos de forma independente"
Henry
1

Sim, como os autores acima disseram, o algoritmo Random Forest é um algoritmo de ensacamento, não de reforço.

O empacotamento pode reduzir a variação do classificador, porque os algoritmos de base, que são ajustados em diferentes amostras e seus erros são mutuamente compensados ​​na votação. Ensacamento refere-se à média de versões ligeiramente diferentes do mesmo modelo como um meio para melhorar o poder preditivo. Para aplicar o empacotamento, simplesmente construímos árvores de regressão B usando conjuntos de treinamento com inicialização B e calculamos a média das previsões resultantes

Uma aplicação comum e bastante bem-sucedida de ensacamento é a Floresta Aleatória

Porém, ao construir essas árvores de decisão em floresta aleatória, toda vez que uma divisão em uma árvore é considerada, uma amostra aleatória de mpreditores é escolhida como candidata à divisão do conjunto completo de preditores de p. A divisão pode usar apenas um desses mpreditores.

Daniel Chepenko
fonte