Motivação por trás das etapas aleatórias do algoritmo da floresta

11

O método com o qual estou familiarizado para construir uma floresta aleatória é o seguinte: (de http://www.stat.berkeley.edu/~breiman/RandomForests/cc_home.htm )

Para construir uma árvore na floresta, nós:

  1. Inicialize uma amostra do tamanho N, em que N é o tamanho do nosso conjunto de treinamento. Use esta amostra com bootstrap como o conjunto de treinamento para essa árvore.
  2. Em cada nó da árvore, selecione aleatoriamente m dos nossos recursos M. Selecione o melhor desses m recursos para dividir. (onde m é um parâmetro da nossa floresta aleatória)
  3. Cultive cada árvore na maior extensão possível - ou seja, sem poda.

Embora esse algoritmo faça sentido no nível processual e certamente produza bons resultados, não estou claro qual é a motivação teórica por trás das etapas 1, 2 e 3. Alguém poderia explicar o que motivou alguém a propor esse procedimento e por que ele funciona tão bem?

Por exemplo: por que precisamos executar a etapa 1? Não parece que estamos fazendo bootstrap para seu objetivo usual de redução de variação.

tSchema
fonte

Respostas:

9

Os métodos de conjunto (como florestas aleatórias) requerem algum elemento de variação nos conjuntos de dados nos quais os classificadores de base individuais são cultivados (caso contrário, florestas aleatórias acabariam com uma floresta de árvores muito semelhantes). Como as árvores de decisão são altamente sensíveis às observações no conjunto de treinamento, variar as observações (usando o bootstrap) foi, suponho, uma abordagem natural para obter a diversidade necessária. A alternativa óbvia é variar os recursos utilizados, por exemplo, treinar cada árvore em um subconjunto dos recursos originais. O uso das amostras de bootstrap também nos permite estimar a taxa de erro out-of-bag (OOB) e a importância variável.

2 é essencialmente outra maneira de injetar aleatoriedade na floresta. Ele também tem um impacto na redução da correlação entre as árvores (usando um valor baixo de manejo), com o trade-off (potencialmente) piorando o poder preditivo. Usar um valor muito alto de manejo fará com que as árvores se tornem cada vez mais semelhantes umas às outras (e, no extremo, você acaba ensacando)

Acredito que a razão para não podar se deve mais ao fato de que não é necessário do que qualquer outra coisa. Com uma única árvore de decisão, você normalmente a podaria, pois é altamente suscetível a sobreajuste. No entanto, usando as amostras de bootstrap e cultivando muitas árvores, florestas aleatórias podem cultivar árvores individualmente fortes, mas não particularmente correlacionadas umas com as outras. Basicamente, as árvores individuais estão super ajustadas, mas desde que seus erros não sejam correlacionados, a floresta deve ser razoavelmente precisa.

A razão pela qual funciona bem é semelhante ao teorema do júri de Condorcet (e à lógica por trás de métodos como o aumento). Basicamente, você tem muitos alunos fracos que só precisam ter um desempenho marginalmente melhor do que a adivinhação aleatória. Se isso for verdade, você poderá continuar adicionando alunos fracos e, no limite, obterá previsões perfeitas do seu grupo. Claramente, isso é restrito devido aos erros dos alunos se correlacionarem, o que impede que o desempenho do conjunto melhore.

SimonCB765
fonte
Boa resposta, e a associação com o teorema do júri de Condorcet faz sentido. Formalmente, porém, a razão pela qual funciona bem é por causa da desigualdade de Jensen!
JEquihua