Comment les forêts aléatoires ne sont-elles pas sensibles aux valeurs aberrantes?


33

J'ai lu dans quelques sources, y compris celle-ci , que les forêts aléatoires ne sont pas sensibles aux valeurs aberrantes (par exemple, la régression logistique et les autres méthodes ML).

Cependant, deux morceaux d'intuition me disent le contraire:

  1. Chaque fois qu'un arbre de décision est construit, tous les points doivent être classés. Cela signifie que même les valeurs aberrantes seront classées et affecteront donc les arbres de décision où elles ont été sélectionnées lors de la relance.

  2. L’amorçage fait partie de la façon dont RandomForest effectue un sous-échantillonnage. Bootstrapping est sensible aux valeurs aberrantes.

Existe-t-il un moyen de concilier mon intuition quant à sa sensibilité aux valeurs aberrantes, avec des sources en désaccord?


La réponse ci-dessous est très bonne. La réponse intuitive est qu'un arbre de décision fonctionne sur les scissions et que les scissions ne sont pas sensibles aux valeurs aberrantes: une scission n'a qu'à se situer n'importe où entre deux groupes de points pour les scinder.
Wayne

Donc, je suppose que si le min_samples_leaf_nodeest 1, alors il pourrait être sujet à des valeurs aberrantes.
Hunle

oui min_samples et bootstrap sample peuvent supprimer complètement l'influence des valeurs aberrantes de 1b dans la régression RF
Soren Havelund Welling

Certains statisticiens obtiennent une vision en tunnel sur ces pays, que l’on peut prédire et comprendre. Considérez les valeurs aberrantes comme des «inconnues connues» et demandez-vous si votre modèle d’entreprise est fragile à leur égard. Certaines valeurs aberrantes sont fondamentalement imprévisibles, mais leur impact est très réel ... une paraphrase de 'Black Swan' de N. Taleb
Soren Havelund Welling

Réponses:


21

Votre intuition est correcte. Cette réponse ne fait que l'illustrer sur un exemple.

Il est en effet une idée fausse commune que CART / RF est en quelque sorte robuste aux aberrants.

Pour illustrer le manque de robustesse de la RF face à la présence d'une seule valeur aberrante, nous pouvons (légèrement) modifier le code utilisé dans la réponse de Soren Havelund Welling ci-dessus pour montrer qu'une seule "valeur aberrante" suffit à influencer complètement le modèle RF adapté. Par exemple, si nous calculons l’erreur de prédiction moyenne des observations non contaminées en fonction de la distance entre la valeur aberrante et le reste des données, nous pouvons voir (image ci-dessous) que l’introduction d’ une seule valeur aberrante (en remplaçant l’une des observations originales). par une valeur arbitraire sur l'espace 'y') suffit pour éloigner arbitrairement les prévisions du modèle RF des valeurs qu'elles auraient obtenues si elles avaient été calculées sur les données d'origine (non contaminées):

 library(forestFloor)
library(randomForest)
library(rgl)
set.seed(1)

X = data.frame(replicate(2,runif(2000)-.5))
y = -sqrt((X[,1])^4+(X[,2])^4)
X[1,]=c(0,0);
y2<-y
rg<-randomForest(X,y)   #RF model fitted without the outlier
outlier<-rel_prediction_error<-rep(NA,10)

for(i in 1:10){
    y2[1]=100*i+2
    rf=randomForest(X,y2)   #RF model fitted with the outlier
    rel_prediction_error[i]<-mean(abs(rf$predict[-1]-y2[-1]))/mean(abs(rg$predict[-1]-y[-1]))
    outlier[i]<-y2[1]
}
plot(outlier,rel_prediction_error,type='l',ylab="Mean prediction error (on the uncontaminated observations) \\\ relative to the fit on clean data",xlab="Distance of the outlier")

entrez la description de l'image ici

À quelle distance? Dans l'exemple ci-dessus, la seule valeur aberrante a tellement changé l'ajustement que l'erreur de prédiction moyenne (sur les observations non contaminées) est maintenant supérieure de 1 à 2 ordres de grandeur à ce qu'elle aurait été si le modèle avait été ajusté sur les données non contaminées.

Il n’est donc pas vrai qu’une seule valeur aberrante ne puisse affecter l’ajustement RF.

En outre, comme je l'ai indiqué ailleurs , il est beaucoup plus difficile de gérer les valeurs aberrantes lorsqu'elles sont potentiellement multiples (bien qu'elles n'aient pas besoin de représenter une grande partie des données pour que leurs effets apparaissent). Bien entendu, les données contaminées peuvent contenir plus d’une valeur aberrante; pour mesurer l'impact de plusieurs valeurs aberrantes sur l'ajustement RF, comparez la courbe de gauche obtenue à partir de la RF sur les données non contaminées à la courbe de droite obtenue en décalant arbitrairement 5% des valeurs de réponses (le code est sous la réponse) .

entrez la description de l'image ici entrez la description de l'image ici

Enfin, dans le contexte de la régression, il est important de souligner que les valeurs aberrantes peuvent se distinguer de la majeure partie des données dans les espaces de conception et de réponse (1). Dans le contexte spécifique de RF, les valeurs aberrantes de conception affecteront l'estimation des hyper-paramètres. Cependant, ce deuxième effet est plus manifeste lorsque le nombre de dimensions est grand.

Ce que nous observons ici est un cas particulier de résultat plus général. La sensibilité extrême aux valeurs aberrantes des méthodes d’ajustement de données multivariées basées sur des fonctions de perte convexe a été redécouverte à plusieurs reprises. Voir (2) pour une illustration dans le contexte spécifique des méthodes ML.

Modifier.

t

s=argmaxs[pLvar(tL(s))+pRvar(tR(s))]

où et sont des nœuds enfants émergents qui dépendent du choix de ( et sont des fonctions implicites de ) et désigne la fraction de données qui tombe vers le nœud enfant de gauche et est le partage de données dans . Ensuite, on peut conférer aux arbres de régression (et donc aux RF) une robustesse d'espace "y" en remplaçant la fonction de variance utilisée dans la définition d'origine par une alternative robuste. C'est essentiellement l'approche utilisée dans (4) où la variance est remplacée par un robuste estimateur M d'échelle.t R s t L t R s p L t L p R = 1 - p L t RtLtRstLtRspLtLpR=1pLtR

  • (1) Démasquer les valeurs éloignées multivariées et les points de levier. Peter J. Rousseeuw et Bert C. van Zomeren Journal de l'Association américaine de statistique, vol. 85, n ° 411 (septembre 1990), pages 633 à 639
  • (2) Le bruit de classification aléatoire neutralise tous les boosters de potentiel convexes. Philip M. Long et Rocco A. Servedio (2008). http://dl.acm.org/citation.cfm?id=1390233
  • (3) C. Becker et U. Gather (1999). Point de rupture de masquage des règles d'identification multivariées.
  • (4) Galimberti, G., Pillati, M. et Soffritti, G. (2007). Arbres de régression robustes basés sur M-estimateurs. Statistica, LXVII, 173–190.

    library(forestFloor)
    library(randomForest)
    library(rgl)
    set.seed(1)

    X<-data.frame(replicate(2,runif(2000)-.5))
    y<--sqrt((X[,1])^4+(X[,2])^4)
    Col<-fcol(X,1:2) #make colour pallete by x1 and x2
    #insert outlier2 and colour it black
    y2<-y;Col2<-Col
    y2[1:100]<-rnorm(100,200,1);    #outliers
    Col[1:100]="#000000FF" #black

    #plot training set
    plot3d(X[,1],X[,2],y,col=Col)
    rf=randomForest(X,y)    #RF on clean data
    rg=randomForest(X,y2)   #RF on contaminated data
    vec.plot(rg,X,1:2,col=Col,grid.lines=200)
    mean(abs(rf$predict[-c(1:100)]-y[-c(1:100)]))
    mean(abs(rg$predict[-c(1:100)]-y2[-c(1:100)]))

Merci pour votre réponse détaillée. S'il y a plusieurs valeurs aberrantes dans le même espace de grande dimension, la question se pose de savoir quels sont nos critères pour appeler une «valeur aberrante»? Dans ce cas, je me demande quels hyper-paramètres peuvent être définis pour pouvoir spécifier un type de critère pour une valeur aberrante a priori?
Hunle

1
J'ai ajouté mes commentaires précédents à ma réponse. J'espère que cela répond mieux à votre question!
user603

1
Merci. Que sont pet sdans la formule?
Hunle

1
Pourquoi les valeurs aberrantes combinées (1a + 2) sont-elles mauvaises? Dans votre exemple, le modèle RF correspond parfaitement à la structure de données, 99,99% OOB MSE. La structure de modèle de la zone intermédiaire entre les deux groupes est plutôt grossière, oui, et est davantage un produit du modèle que des données. Mais, aucune inférence et / ou prévision ne devrait être dans cette zone inconnue, donc cela n’a aucune importance. La robustesse absolue vis-à-vis des valeurs aberrantes consiste inévitablement à ignorer des événements possibles rares mais peut-être importants. La plupart des algues ML adoptent par défaut une position moyenne entre robustesse et «flexibilité», mais peuvent être modifiées pour en améliorer la robustesse.
Soren Havelund Welling

1
@ user603 Rien à ajouter à la discussion technique, mis à part le fait que Heart of Darkness était mon livre préféré enfant, avec The Trial de Franz Kafka à la seconde près (il aurait pu être le premier s'il avait été terminé et peut-être écrit en anglais - ensuite encore une fois, il était peut-être approprié que ce n’était pas fini). Je n’y pensais pas vraiment du point de vue aberrant, mis à part le fait que j’ai considéré Heart of Darkness et The Trials comme des (bonnes) valeurs aberrantes parmi la mer de BS "littérature sérieuse", je devais lire et faire des images BS clair-foncé et la même analyse sur.
Mark L. Stone

11

valeur aberrante 1a: cette valeur aberrante a une ou plusieurs valeurs de caractéristique extrêmes et est placée à distance de tout autre échantillon. La valeur aberrante va influencer les divisions initiales des arbres comme n'importe quel autre échantillon, donc aucune influence forte. Il aura une faible proximité avec tout autre échantillon et définira uniquement la structure du modèle dans une partie distante de l'espace de fonctions. Au cours de la prédiction, la plupart des nouveaux échantillons ne ressembleront probablement pas à cette valeur aberrante et aboutiront rarement au même nœud terminal. De plus, les arbres de décision considèrent les entités comme si elles étaient ordinales (classement). La valeur est inférieure / égale ou supérieure au point de rupture, ainsi, peu importe si une valeur de caractéristique est une valeur extrême extrême.

Valeur aberrante 1b: Pour la classification, un seul échantillon peut être considéré comme une valeur aberrante lorsqu'il est intégré au milieu de nombreux échantillons d'une classe différente. J'ai décrit précédemment comment un modèle RF par défaut sera influencé par cet exemple de classe impaire, mais très proche de l'échantillon.

valeur aberrante 2: cette valeur aberrante a une valeur cible extrême peut-être plusieurs fois supérieure à toutes les autres valeurs, mais les valeurs de caractéristique sont normales. Une fraction de .631 des arbres aura un nœud terminal avec cet échantillon. La structure du modèle sera affectée localement près de la valeur aberrante. Remarquez que la structure du modèle est affectée principalement parallèlement à l'axe de la fonction, car les nœuds sont divisés de manière variable.

J'ai inclus une simulation de régression RF de outlier_2. 1999 points tirés d’une structure arrondie lisse et d’une valeur aberrante avec une valeur cible beaucoup plus élevée (y = 2, = 0, = 0). L'ensemble d'entraînement est montré à gauche. Le modèle de structure RF appris est affiché à droite. x1x2y=(x14+x24)12x1x2

entrez la description de l'image ici

library(forestFloor)
library(randomForest)
library(rgl)
set.seed(1)

X = data.frame(replicate(2,runif(2000)-.5))
y = -sqrt((X[,1])^4+(X[,2])^4)^1
Col = fcol(X,1:2) #make colour pallete by x1 and x2
#insert outlier2 and colour it black
X[1,] = c(0,0);y[1]=2 ;Col[1] = "#000000FF" #black

#plot training set
plot3d(X[,1],X[,2],y,col=Col)

rf = randomForest(X,y)
vec.plot(rf,X,1:2,col=Col,grid.lines = 400)

EDIT: commentaire à l'utilisateur603

Oui pour les valeurs extrêmes extrêmes sur l'échelle cible, il convient d'envisager de transformer l'échelle cible avant d'exécuter RF. J'ai ajouté ci-dessous une fonction robustModel () qui modifie randomForest. Une autre solution serait d’enregistrer la transformation avant la formation.

.
##---code by user603
library(forestFloor)
library(randomForest)
library(rgl)
set.seed(1)

X<-data.frame(replicate(2,runif(2000)-.5))
y<--sqrt((X[,1])^4+(X[,2])^4)
Col<-fcol(X,1:2) #make colour pallete by x1 and x2

#insert outlier2 and colour it black
y2<-y;Col2<-Col
y2[1:100]<-rnorm(100,200,1);    #outliers
Col2[1:100]="#000000FF" #black
##---

#function to make models robust
robustModel = function(model,keep.outliers=TRUE) {
  f = function(X,y,lim=c(0.1,.9),keep.outliers="dummy",...) {
  limits = quantile(y,lim)
  if(keep.outliers) {#keep but reduce outliers
  y[limits[1]>y] = limits[1] #lower limit
  y[limits[2]<y] = limits[2] #upper limit
  } else {#completely remove outliers
    thrashThese = mapply("||",limits[1]>y,limits[2]>y)
    y = y[thrashThese]
    X = X[thrashThese,]
  }
  obj = model(x=X,y=y,...)
  class(obj) = c("robustMod",class(obj))
  return(obj)
  }
  formals(f)$keep.outliers = keep.outliers
  return(f)
}

robustRF = robustModel(randomForest) #make RF robust
rh = robustRF(X,y2,sampsize=250)     #train robustRF
vec.plot(rh,X,1:2,col=Col2)          #plot model surface
mean(abs(rh$predict[-c(1:100)]-y2[-c(1:100)]))

entrez la description de l'image ici


Vous écrivez "aucune autre prédiction ne sera affectée". Si vous modifiez votre valeur aberrante, y[1]=200vous constaterez que l'erreur de prédiction sur les observations non contaminées est multipliée par 20!
user603

@ user603 En effet, dans de tels cas, l'échelle cible peut être transformée de manière monotone avant d'être transmise à RF. J'ai ajouté un "modèle robuste: rend les modèles robustes" à ma réponse ... bien sûr, pour prédire la ou les anomalie (s) cible (s) aléatoire (s) (type 2) reste impossible, mais la structure de modèle restante ne doit pas en souffrir
Soren Havelund Welling

La transformation du journal n'est généralement pas une solution contre les valeurs aberrantes (elle ne fait que masquer le problème). La robustification de RF que vous proposez est essentiellement l’approche préconisée par Galimberti, G., Pillati, M. et Soffritti, G. (voir ma réponse). La différence principale réside dans le fait que votre approche "robustModel" a un point de rupture maximal de 25% sur l'espace de réponse (il peut supporter 25% ou des 'y'-aberrants arbitraires) alors que leur leur a un bdp de 50%. Notez qu'aucune approche ne est robuste aux valeurs aberrantes dans l'espace de conception
user603

8

Ce n'est pas l'algorithme Random Forest lui-même qui résiste aux valeurs aberrantes, mais l'apprenant de base sur lequel il repose: l' arbre de décision . Les arbres de décision isolent les observations atypiques en petites feuilles (c.-à-d. De petits sous-espaces de l'espace d'origine). De plus, les arbres de décision sont des modèles locaux . Contrairement à la régression linéaire, où la même équation est valable pour tout l'espace, un modèle très simple est ajusté localement à chaque sous-espace (c'est-à-dire à chaque feuille).

  • Dans le cas d'une régression, il s'agit généralement d'un modèle de régression d'ordre très faible (généralement uniquement la moyenne des observations dans la feuille).
  • Pour le classement, c'est le vote à la majorité.

Par conséquent, pour la régression par exemple, les valeurs extrêmes n'affectent pas l'ensemble du modèle car elles sont moyennées localement. Ainsi, l'ajustement aux autres valeurs n'est pas affecté.

En fait, cette propriété souhaitable se répercute sur d'autres structures en forme d'arborescence, telles que les dendogrammes. La classification hiérarchique, par exemple, est utilisée depuis longtemps pour le nettoyage des données car elle isole automatiquement les observations aberrantes en petites grappes. Voir par exemple Loureiro et al. (2004). Détection de valeurs aberrantes à l'aide de méthodes de clustering: une application de nettoyage de données .

En résumé, RF hérite de son insensibilité aux valeurs aberrantes résultant du partitionnement récursif et de l'ajustement des modèles locaux .

Notez que les arbres de décision sont des modèles à faible biais mais à variance élevée: leur structure est susceptible de changer après une légère modification de l'ensemble d'apprentissage (suppression ou ajout de quelques observations). Mais cela ne doit pas être confondu avec une sensibilité aux valeurs aberrantes, c'est une question différente.


En fait, j'ai envisagé d'utiliser une méthode de classification, comme vous le suggérez, pour détecter les valeurs aberrantes. Mais ensuite, je ne sais pas où appliquer le clustering. Faut - il être appliqué à labeledou des unlabeleddonnées? Et comment ce regroupement pourrait-il être réalisé sur des données hétérogènes contenant à la fois des caractéristiques catégoriques et numériques?
Hunle
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.