Viés dependente da distribuição de resposta na regressão aleatória da floresta

9

Estou usando o pacote randomForest no R (versão 2.13.1, versão 4.6-2 randomForest) para regressão e notei um viés significativo nos meus resultados: o erro de previsão depende do valor da variável de resposta. Valores altos são sub-previstos e valores baixos são super-previstos. Inicialmente, suspeitei que isso fosse uma consequência dos meus dados, mas o exemplo simples a seguir sugere que isso é inerente ao algoritmo de floresta aleatória:

n = 1000; 
x1 = rnorm(n, mean = 0, sd = 1)
response = x1
predictors = data.frame(x1=x1) 
rf = randomForest(x=predictors, y=response)
error = response-predict(rf, predictors)
plot(x1, error)

Eu suspeito que o viés depende da distribuição da resposta, por exemplo, se x1for distribuído uniformemente, não haverá viés; se x1for distribuído exponencialmente, o viés é unilateral. Essencialmente, os valores da resposta nas caudas de uma distribuição normal são discrepantes. Não é surpresa que um modelo tenha dificuldade em prever valores discrepantes. No caso de randomForest, é menos provável que um valor de resposta de magnitude extrema da cauda de uma distribuição acabe em uma folha terminal e seu efeito será eliminado na média do conjunto.

Observe que eu tentei capturar esse efeito em um exemplo anterior, "RandomForest na regressão linear R tails mtry". Este foi um mau exemplo. Se o viés no exemplo acima é realmente inerente ao algoritmo, segue-se que uma correção de viés pode ser formulada, dada a distribuição de resposta que se está tentando prever, resultando em previsões mais precisas.

Os métodos baseados em árvores, como florestas aleatórias, estão sujeitos ao viés de distribuição de respostas? Nesse caso, isso é conhecido anteriormente pela comunidade estatística e como é geralmente corrigido (por exemplo, um segundo modelo que utiliza os resíduos do modelo tendencioso como entrada)?

A correção de um viés dependente da resposta é difícil porque, por natureza, a resposta não é conhecida. Infelizmente, a resposta estimada / prevista geralmente não compartilha o mesmo relacionamento com o viés.

rumbleB
fonte
Estou pensando nessa mesma questão há quase 12 meses. Consulte stats.stackexchange.com/questions/21530/… e kaggle.com/forums/t/1106/random-forests-newbie-question . Concordo que o problema parece ser que os valores discrepantes não estão sendo bem representados pelas médias usadas como previsão em cada nó. O ajuste de previsão ou o modelo no nó parecem abordagens razoáveis, mas não sabemos qual é a abordagem padrão.
redcalx

Respostas:

4

É perfeitamente como você suspeita - o fato de os nós das folhas conterem meios sobre algum conjunto de objetos torna qualquer modelo de árvore de regressão restringir a distribuição da resposta e impossibilitar qualquer extrapolação. O Ensemble, é claro, não ajuda nisso e, de fato, piora a situação.

A solução ingênua (e perigosa por causa do excesso de ajuste) é envolver o modelo em algum tipo de regressão clássica que redimensione a resposta à sua distribuição desejada.

A melhor solução é um dos modelos de árvore modelo na folha, como, por exemplo, o MOB no pacote de festa. A idéia aqui é que o particionamento do espaço de recurso deve terminar quando o problema for simplificado não para um valor simples (como na árvore comum), mas para uma relação simples (digamos linear) entre a resposta e alguns preditores. Agora, essa relação pode ser resolvida ajustando-se a um modelo simples que não perturbe a distribuição ou reduza valores extremos e poderá extrapolar.


fonte
Por que o redimensionamento da distribuição de respostas levaria ao ajuste excessivo? O relacionamento de pedido entre duas saídas da floresta manterá a mesma ordem após empurrá-lo através de um ajuste polinomial para redimensioná-lo, para que a tomada de decisão do modelo não seja afetada se você basear sua decisão em quantis da saída.
Jase 06/02
Você está certo; Eu estava pensando em um cenário em que o RF produz uma resposta totalmente sem sentido e a regressão o converte em algo com enganosamente melhorR2 .
3

Eu tive exatamente o mesmo problema com o RF condicional acessado através do pacote chocalho. Enviei um e-mail a Graham Williams (autor do chocalho), que gentilmente encaminhou minha consulta aos autores da floresta, que responderam e sugeriram jogar com dois parâmetros que na verdade não parecem ser referenciados em nenhum lugar da documentação do CRF, mas que, no entanto, pareciam abordar o problema, ou seja, minplit = 2 e minbucket = 1.

Scott MacLean
fonte
minsplit,
Presumo
2

Você deve estimar o valor ideal de mtry e sampsize minimizando o "erro de validação cruzada" fora da amostra em uma grade de diferentes mtry, parâmetros de sampsize, para qualquer variável de resposta correspondente para um conjunto fixo de recursos e, em seguida, tirar conclusões- em termos de resultados. Você pode criar uma combinação dos parâmetros da grade usando expand.grid.

carro fúnebre
fonte
2
Essa é uma boa sugestão para a construção de modelos; em geral, parâmetros otimizados produzirão previsões mais precisas. No entanto, neste caso, o viés existe independentemente da sintonia, pelo que sei. Existe apenas um preditor, portanto, deve ser 1. Qualquer tamanho de amostra menor que n serve apenas para ampliar o viés, e o tamanho do nó tem pouco efeito.
rumbleB