Eu executei um modelo de regressão OLS no conjunto de dados com 5 variáveis independentes. As variáveis independentes e a variável dependente são contínuas e estão relacionadas linearmente. OR Square é de cerca de 99,3%. Mas quando eu executo o mesmo usando floresta aleatória em R, meu resultado é '% Var explicado: 88,42'. Por que o resultado aleatório da floresta seria tão inferior à regressão? Minha suposição era que a floresta aleatória seria pelo menos tão boa quanto a regressão OLS.
r
regression
random-forest
user28906
fonte
fonte
Respostas:
Como não sei exatamente o que você fez, seu código-fonte me ajudaria a adivinhar menos.
Muitas florestas aleatórias são essencialmente janelas nas quais se supõe que a média represente o sistema. É uma árvore CAR super glorificada.
Digamos que você tenha uma árvore CAR de duas folhas. Seus dados serão divididos em duas pilhas. A saída (constante) de cada pilha será sua média.
Agora vamos fazer isso 1000 vezes com subconjuntos aleatórios dos dados. Você ainda terá regiões descontínuas com resultados médios. O vencedor em um RF é o resultado mais frequente. Isso apenas "confusa" a fronteira entre as categorias.
Exemplo de saída linear por partes da árvore CART:
Digamos, por exemplo, que nossa função é y = 0,5 * x + 2. Um gráfico parecido com o seguinte:
Se modelássemos isso usando uma única árvore de classificação com apenas duas folhas, primeiro encontraríamos o ponto de melhor divisão, divisão nesse ponto e, em seguida, aproximaríamos a saída da função em cada folha como a saída média sobre a folha.
Se fizermos isso novamente com mais folhas na árvore CART, poderemos obter o seguinte:
Por que florestas CAR?
Você pode ver que, no limite de folhas infinitas, a árvore CART seria um aproximador aceitável.
O problema é que o mundo real é barulhento. Gostamos de pensar em meios, mas o mundo gosta tanto da tendência central (média) quanto da tendência de variação (std dev). Há barulho.
O mesmo que confere à árvore CAR uma grande força, sua capacidade de lidar com a descontinuidade, a torna vulnerável à modelagem de ruído como se fosse um sinal.
Então Leo Breimann fez uma proposição simples, mas poderosa: use os métodos do Ensemble para tornar as árvores de Classificação e Regressão robustas. Ele pega subconjuntos aleatórios (um primo de reamostragem de bootstrap) e os usa para treinar uma floresta de árvores do CAR. Quando você faz uma pergunta sobre a floresta, a floresta inteira fala e a resposta mais comum é tomada como saída. Se você estiver lidando com dados numéricos, pode ser útil considerar a expectativa como a saída.
Portanto, para o segundo gráfico, pense em modelar usando uma floresta aleatória. Cada árvore terá um subconjunto aleatório dos dados. Isso significa que a localização do "melhor" ponto de divisão varia de árvore para árvore. Se você fizesse um gráfico da produção da floresta aleatória, à medida que se aproxima da descontinuidade, os primeiros ramos indicarão um salto, depois muitos. O valor médio nessa região percorrerá um caminho sigmóide suave. O bootstrapping convolve com um gaussiano, e o desfoque gaussiano nessa função de etapa se torna um sigmóide.
Linhas de fundo:
Você precisa de muitos galhos por árvore para obter uma boa aproximação a uma função muito linear.
Existem muitos "discadores" que você pode alterar para impactar a resposta e é improvável que você tenha definido todos eles com os valores adequados.
Referências:
fonte
Percebo que essa é uma pergunta antiga, mas acho que mais deve ser acrescentado. Como @Manoel Galdino disse nos comentários, geralmente você está interessado em previsões de dados invisíveis. Mas essa pergunta é sobre desempenho nos dados de treinamento e a pergunta é por que a floresta aleatória tem um desempenho ruim nos dados de treinamento ? A resposta destaca um problema interessante com classificadores ensacados, que muitas vezes me causou problemas: regressão à média.
O problema é que classificadores agrupados, como floresta aleatória, feitos com amostras de autoinicialização do conjunto de dados, tendem a apresentar um desempenho ruim nos extremos. Como não há muitos dados extremos, eles tendem a ser suavizados.
Mais detalhadamente, lembre-se de que uma floresta aleatória para regressão calcula a média das previsões de um grande número de classificadores. Se você tem um único ponto que está longe dos outros, muitos dos classificadores não o veem e, essencialmente, eles fazem uma previsão fora da amostra, o que pode não ser muito bom. De fato, essas previsões fora da amostra tenderão a puxar a previsão para o ponto de dados em direção à média geral.
Se você usar uma única árvore de decisão, não terá o mesmo problema com valores extremos, mas a regressão ajustada também não será muito linear.
Aqui está uma ilustração em R. Alguns dados são gerados em que
y
é uma combinação perfeita de liner de cincox
variáveis. Em seguida, são feitas previsões com um modelo linear e uma floresta aleatória. Em seguida, os valores dosy
dados de treinamento são plotados em relação às previsões. Você pode ver claramente que a floresta aleatória está se saindo mal nos extremos porque pontos de dados com valores muito grandes ou muito pequenosy
são raros.Você verá o mesmo padrão para previsões em dados invisíveis quando florestas aleatórias forem usadas para regressão. Não sei como evitá-lo. A
randomForest
função em R tem uma opção de correção de viés brutocorr.bias
que usa regressão linear no viés, mas na verdade não funciona.Sugestões são bem-vindas!
fonte
A floresta aleatória tenta encontrar localidades entre muitos recursos e muitos pontos de dados. Ele divide os recursos e os entrega a diferentes árvores, como você tem um número baixo de recursos, o resultado geral não é tão bom quanto a regressão logística. A floresta aleatória pode manipular variáveis numéricas e categóricas, mas não é boa em lidar com valores ausentes.
fonte
Penso que a Random Forest (RF) é uma boa ferramenta quando a forma funcional da relação entre Xs e y é complicada (por causa de relações não lineares e efeito de interação). O RF categoriza Xs com base no melhor ponto de corte (em termos de SSE mínimo) e não aplica as informações do pesquisador sobre a forma funcional do relacionamento. Por outro lado, a regressão OLS usa essas informações. No seu exemplo, você sabe qual é exatamente o tipo de relacionamento entre Xs e y e usa todas essas informações no seu modelo de regressão, mas a RF não usa essas informações.
fonte
Para o básico, a regressão tem bom desempenho sobre variáveis contínuas e floresta aleatória sobre variáveis discretas.
Você precisa fornecer mais detalhes sobre o problema e sobre a natureza das variáveis para ser mais específico ...
fonte