Classificador de Bagging vs RandomForestClassifier [duplicado]

Esta pergunta já tem respostas aqui :

Resposta

Sim, há uma diferença. No sklearn, se você empacota árvores de decisão, ainda acaba usando todos os recursos com cada árvore de decisão. Em florestas aleatórias, no entanto, você usa um subconjunto de recursos.

A documentação sklearn oficial sobre métodos de agrupamento poderia ter sido um pouco mais clara sobre a diferença, aqui está o que diz:

  1. Quando as amostras são retiradas com substituição, o método é conhecido como Bagging
  2. Em florestas aleatórias (consulte as classes RandomForestClassifier e RandomForestRegressor), cada árvore no conjunto é construída a partir de uma amostra retirada com substituição (ou seja, uma amostra de bootstrap) do conjunto de treinamento . “

Portanto, parece que não há diferença se você ensaca árvores de decisão, certo? Acontece que a documentação também afirma:

Além disso, ao dividir cada nó durante a construção de uma árvore, a melhor divisão é encontrada em todos os recursos de entrada ou em um subconjunto aleatório de tamanho max_features. “

Portanto, esta é mais uma maneira de introduzir aleatoriedade, limitando o número de recursos nas divisões. Na prática, é realmente útil ajustar max_features para obter um bom ajuste.

Comentários

  • Não ' cada árvore que recebe um subconjunto de recursos candidatos, é ' cada dividir .
  • @Matthew Drury Obrigado por apontar, corrigido.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *