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?
machine-learning
random-forest
cart
bagging
Abhay Raj Singh
fonte
fonte
Respostas:
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?
fonte
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 ).
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.
fonte
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.
fonte
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.
fonte
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
m
preditores é escolhida como candidata à divisão do conjunto completo de preditores de p. A divisão pode usar apenas um dessesm
preditores.fonte