Biais dépendant de la distribution de la réponse dans la régression aléatoire des forêts

9

J'utilise le package randomForest dans R (R version 2.13.1, randomForest version 4.6-2) pour la régression et j'ai remarqué un biais significatif dans mes résultats: l'erreur de prédiction dépend de la valeur de la variable de réponse. Les valeurs élevées sont sous-prédites et les valeurs faibles sont sur-prédites. Au début, je soupçonnais que c'était une conséquence de mes données, mais l'exemple simple suivant suggère que cela est inhérent à l'algorithme de forêt aléatoire:

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)

Je soupçonne que le biais dépend de la distribution de la réponse, par exemple, s'il x1est uniformément distribué, il n'y a pas de biais; s'il x1est distribué de façon exponentielle, le biais est unilatéral. Essentiellement, les valeurs de la réponse à la queue d'une distribution normale sont aberrantes. Il n'est pas surprenant qu'un modèle ait du mal à prévoir les valeurs aberrantes. Dans le cas de randomForest, une valeur de réponse d'une amplitude extrême de la queue d'une distribution est moins susceptible de se retrouver dans une feuille terminale et son effet sera éliminé dans la moyenne d'ensemble.

Notez que j'ai essayé de capturer cet effet dans un exemple précédent, "RandomForest in R linear regression tails mtry". C'était un mauvais exemple. Si le biais dans l'exemple ci-dessus est vraiment inhérent à l'algorithme, il s'ensuit qu'une correction de biais pourrait être formulée étant donné la distribution de réponse que l'on essaie de prédire, résultant en des prédictions plus précises.

Les méthodes basées sur les arbres, comme la forêt aléatoire, sont-elles sujettes à un biais de distribution de réponse? Si tel est le cas, cela est-il déjà connu de la communauté des statistiques et comment est-il généralement corrigé (par exemple, un deuxième modèle qui utilise les résidus du modèle biaisé en entrée)?

La correction d'un biais dépendant de la réponse est difficile car, par nature, la réponse n'est pas connue. Malheureusement, la réponse estimée / prédite ne partage pas souvent la même relation avec le biais.

rumbleB
la source
Je réfléchis à cette même question depuis près de 12 mois. Voir stats.stackexchange.com/questions/21530/… et kaggle.com/forums/t/1106/random-forests-newbie-question . Je conviens que le problème semble être que les valeurs aberrantes ne sont pas bien représentées par les moyennes utilisées comme prédiction à chaque nœud. L'ajustement des prédictions ou le modèle dans le nœud semblent être des approches raisonnables, mais vous ne savez pas quelle est l'approche standard.
redcalx

Réponses:

4

C'est parfaitement ce que vous pensez - le fait que les nœuds foliaires contiennent des moyens sur un ensemble d'objets rend tout modèle d'arbre de régression resserrer la distribution de réponse et rendre toute extrapolation impossible. Ensemble, bien sûr, n'aide pas à cela et aggrave en fait la situation.

La solution naïve (et dangereuse en raison du sur-ajustement) consiste à envelopper le modèle dans une sorte de régression classique qui redimensionnerait la réponse à sa distribution souhaitée.

La meilleure solution est l'un des modèles d'arbre de modèle en feuille, comme par exemple MOB dans le package de partie. L'idée ici est que le partitionnement de l'espace des fonctionnalités devrait se terminer lorsque le problème est simplifié non pas à une valeur simple (comme dans l'arbre normal) mais à une relation simple (par exemple linéaire) entre la réponse et certains prédicteurs. Une telle relation peut maintenant être résolue en ajustant un modèle simple qui ne perturbera pas la distribution ou ne réduira pas les valeurs extrêmes et pourrait extrapoler.


la source
Pourquoi le redimensionnement de la distribution des réponses entraînerait-il un sur-ajustement? La relation d'ordre entre deux sorties de forêt conservera le même ordre après l'avoir poussée à travers un ajustement polynomial pour la redimensionner, de sorte que la prise de décision à partir du modèle ne sera pas affectée si vous basez votre décision sur les quantiles de la sortie.
Jase
R2
3

J'ai eu exactement le même problème avec RF conditionnelle accessible via le paquet hochet. J'ai envoyé un courriel à Graham Williams (auteur de rattle) à ce sujet, qui a gentiment transmis ma requête aux auteurs de cforest, qui ont répondu et suggéré de jouer avec deux paramètres qui ne semblent en fait être référencés nulle part dans la documentation du CRF, mais qui semblaient néanmoins répondre le problème, à savoir minplit = 2 et minbucket = 1.

Scott MacLean
la source
minsplit, Je suppose que vous voulez dire
smci
2

Vous devez estimer la valeur optimale de mtry et sampsize en minimisant l '"erreur de validation croisée" hors échantillon sur une grille de différents mtry, sampsize paramètres, pour toute variable de réponse correspondante pour un ensemble fixe de fonctionnalités, puis tirer des conclusions - en termes de résultats. Vous pouvez créer une combinaison des paramètres de grille à l'aide de expand.grid.

corbillard
la source
2
C'est une bonne suggestion pour construire des modèles, en général des paramètres optimisés donneront des prédictions plus précises. Cependant, dans ce cas, le biais existe indépendamment de l'accord, pour autant que je sache. Il n'y a qu'un seul prédicteur, donc mtry doit être 1. Toute taille d'échantillon inférieure à n ne sert qu'à amplifier le biais, et la taille du nœud a peu d'effet.
rumbleB