¿Cómo los bosques aleatorios no son sensibles a los valores atípicos?

33

He leído en algunas fuentes, incluida esta , que los bosques aleatorios no son sensibles a los valores atípicos (en la forma en que lo son la regresión logística y otros métodos de LD, por ejemplo).

Sin embargo, dos piezas de intuición me dicen lo contrario:

  1. Cada vez que se construye un árbol de decisión, todos los puntos deben clasificarse. Esto significa que incluso los valores atípicos se clasificarán y, por lo tanto, afectarán los árboles de decisión donde fueron seleccionados durante el impulso.

  2. Bootstrapping es parte de cómo RandomForest realiza submuestreo. Bootstrapping es susceptible a los valores atípicos.

¿Hay alguna manera de conciliar mi intuición sobre su sensibilidad a los valores atípicos, con fuentes que no están de acuerdo?

Hunle
fuente
La respuesta, a continuación, es muy buena. La respuesta intuitiva es que un árbol de decisión funciona en divisiones y las divisiones no son sensibles a los valores atípicos: una división solo tiene que caer en cualquier lugar entre dos grupos de puntos para dividirlos.
Wayne
Entonces supongo que si min_samples_leaf_nodees así 1, entonces podría ser susceptible a los valores atípicos.
Hunle
sí, min_samples y bootstrap sample pueden eliminar por completo la influencia de los valores atípicos 1b en la regresión de RF
Soren Havelund Welling
Algunos estadísticos obtienen una visión de túnel en esos datos internos, que uno puede predecir y comprender. Aprecia los valores atípicos como "incógnitas conocidas" y pregúntate si tu modelo de negocio es frágil con ellos. Algunos valores atípicos son fundamentalmente impredecibles, pero su impacto es muy real ... una paráfrasis de N. Taleb, 'Black Swan'
Soren Havelund Welling

Respuestas:

21

Tu intuición es correcta. Esta respuesta simplemente lo ilustra en un ejemplo.

De hecho, es un error común pensar que CART / RF son de alguna manera robustos para los valores atípicos.

Para ilustrar la falta de robustez de RF ante la presencia de valores atípicos únicos, podemos (ligeramente) modificar el código utilizado en la respuesta de Soren Havelund Welling anterior para mostrar que un solo valor atípico 'y' es suficiente para influir completamente en el modelo de RF ajustado. Por ejemplo, si calculamos el error de predicción medio de las observaciones no contaminadas en función de la distancia entre el valor atípico y el resto de los datos, podemos ver (imagen a continuación) que la introducción de un valor atípico único (reemplazando una de las observaciones originales por un valor arbitrario en el espacio 'y') es suficiente para sacar las predicciones del modelo de RF arbitrariamente lejos de los valores que habrían tenido si se hubieran calculado sobre los datos originales (no contaminados):

 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")

ingrese la descripción de la imagen aquí

¿Cuán lejos? En el ejemplo anterior, el valor atípico único ha cambiado tanto el ajuste que las observaciones de error de predicción medio (en el no contaminado) ahora son 1-2 órdenes de magnitud más grandes de lo que hubieran sido, si el modelo se hubiera ajustado a los datos no contaminados.

Por lo tanto, no es cierto que un solo valor atípico no pueda afectar el ajuste RF.

Además, como señalo en otra parte , los valores atípicos son mucho más difíciles de manejar cuando potencialmente hay varios de ellos (aunque no necesitan ser una gran proporción de los datos para que se muestren sus efectos). Por supuesto, los datos contaminados pueden contener más de un valor atípico; Para medir el impacto de varios valores atípicos en el ajuste de RF, compare la gráfica a la izquierda obtenida de la RF en los datos no contaminados con la gráfica a la derecha obtenida cambiando arbitrariamente el 5% de los valores de las respuestas (el código está debajo de la respuesta) .

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

Finalmente, en el contexto de regresión, es importante señalar que los valores atípicos pueden destacarse del grueso de los datos tanto en el espacio de diseño como de respuesta (1). En el contexto específico de RF, los valores atípicos de diseño afectarán la estimación de los hiperparámetros. Sin embargo, este segundo efecto es más manifiesto cuando el número de dimensión es grande.

Lo que observamos aquí es un caso particular de un resultado más general. La extrema sensibilidad a los valores atípicos de los métodos de ajuste de datos multivariados basados ​​en funciones de pérdida convexa se ha redescubierto muchas veces. Ver (2) para una ilustración en el contexto específico de los métodos de LD.

Editar.

t

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

tLtRstLtRspLtLpR=1pLtR. Entonces, se puede impartir robustez en el espacio "y" a los árboles de regresión (y por lo tanto a los RF) reemplazando la varianza funcional utilizada en la definición original por una alternativa robusta. Este es esencialmente el enfoque utilizado en (4) donde la varianza se reemplaza por un robusto estimador M de escala.

  • (1) Desenmascarar valores atípicos multivariados y puntos de apalancamiento. Peter J. Rousseeuw y Bert C. van Zomeren Revista de la Asociación Americana de Estadística Vol. 85, núm. 411 (septiembre de 1990), págs. 633-639
  • (2) El ruido de clasificación aleatoria derrota a todos los potenciadores convexos potenciales. Philip M. Long y Rocco A. Servedio (2008).http://dl.acm.org/citation.cfm?id=1390233
  • (3) C. Becker y U. Gather (1999). El punto de ruptura del enmascaramiento de las reglas de identificación de valores atípicos multivariantes.
  • (4) Galimberti, G., Pillati, M. y Soffritti, G. (2007). Robustos árboles de regresión basados ​​en estimadores M 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)]))
usuario603
fuente
Gracias por tu respuesta detallada. Si hay varios valores atípicos en el mismo espacio de alta dimensión, surge la pregunta ¿cuál es nuestro criterio para llamar un "valor atípico"? En ese caso, me pregunto qué hiperparámetros se pueden establecer para poder especificar algún tipo de criterio para un valor atípico a priori.
Hunle
1
He agregado mis comentarios anteriores a mi respuesta. ¡Espero que ahora responda mejor a tu pregunta!
usuario603
1
Gracias. ¿Qué son py sen la fórmula?
Hunle
1
¿Por qué los valores atípicos combinados (1a + 2) son malos? En su ejemplo, el modelo de RF se ajusta perfectamente a la estructura de datos, 99,99% OOB MSE. La estructura del modelo de la tierra media entre los dos grupos es bastante aproximada, sí, y más un producto del modelo que de los datos. Pero, ninguna inferencia y / o predicción debe estar en esta área desconocida, por lo que no importa. La robustez absoluta hacia los valores atípicos es inevitablemente ignorar los posibles eventos raros pero quizás importantes. La mayoría de los algos de ML tomarían por defecto una posición intermedia entre robustez y 'flexibilidad', pero se pueden ajustar para aumentar la robustez.
Soren Havelund Welling
1
@ user603 Nada que agregar a la discusión técnica, aparte de que Heart of Darkness fue mi libro favorito cuando era niño, con The Trial de Franz Kafka en segundo lugar (podría haber sido el primero si se hubiera terminado y tal vez escrito en inglés, luego de nuevo, tal vez era apropiado que no estuviera terminado). Realmente no pensé en ello desde un ángulo atípico, aparte de eso, consideré Heart of Darkness y The Trials como (buenos) valores atípicos entre el mar de "literatura seria" de BS. Tenía que leer y hacer imágenes de BS oscuro y oscuro. el análisis similar en
Mark L. Stone el
11

valor atípico 1a: este valor atípico tiene uno o más valores de entidad extremos y se coloca distante de cualquier otra muestra. El valor atípico influirá en las divisiones iniciales de los árboles como cualquier otra muestra, por lo que no hay una fuerte influencia. Tendrá poca proximidad a cualquier otra muestra y solo definirá la estructura del modelo en una parte remota del espacio de características. Durante la predicción, es probable que la mayoría de las muestras nuevas no sean similares a este valor atípico, y rara vez terminarán en el mismo nodo terminal. Además, los árboles de decisión consideran las características como si fueran ordinales (clasificación). El valor es menor / igual o mayor que el punto de ruptura, por lo tanto, no importa si un valor de entidad es un valor atípico extremo.

valor atípico 1b: para la clasificación, una sola muestra puede considerarse como un valor atípico, cuando se incrusta en el medio de muchas muestras de una clase diferente. Describí anteriormente cómo un modelo de RF predeterminado se verá influenciado por esta muestra de clase impar, pero solo muy cerca de la muestra.

valor atípico 2: este valor atípico tiene un valor objetivo extremo tal vez muchas veces mayor que cualquier otro valor, pero los valores de las características son normales. Una fracción de .631 de los árboles tendrá un nodo terminal con esta muestra. La estructura del modelo se verá afectada localmente cerca del valor atípico. Observe que la estructura del modelo se ve afectada principalmente paralela al eje de la característica, porque los nodos se dividen de forma univariable.

Incluí una simulación de regresión de RF de outlier_2. 1999 puntos extraídos de una estructura redondeada lisay=(X14 4+X24 4)12 y un valor atípico con un valor objetivo mucho más alto (y = 2, X1= 0,X2= 0). El conjunto de entrenamiento se muestra a la izquierda. La estructura de modelo de RF aprendida se muestra a la derecha.

enter image description here

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)

EDITAR: comentar al usuario603

Sí, para valores extremos extremos en la escala objetivo, uno debe considerar transformar la escala objetivo antes de ejecutar RF. Agregué a continuación una función robustaModel () que ajusta randomForest. Otra solución sería registrar la transformación antes del entrenamiento.

.
##---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)]))

enter image description here

Soren Havelund Welling
fuente
Escribe "ninguna otra predicción se verá afectada". Si cambia su valor atípico individual y[1]=200, verá que, por sí solo, causa que el error de predicción en las observaciones no contaminadas salte por un factor de 20.
user603
@ user603 Es cierto que, en tales casos, la escala objetivo puede transformarse monotónicamente antes de pasarla a RF. Agregué un 'modelo robusto: hace que los modelos sean robustos' a mi respuesta ... por supuesto, predecir tales valores atípicos de objetivo aleatorio (tipo 2) sigue siendo imposible, pero la estructura del modelo restante no tiene que sufrir
Soren Havelund Welling
La transformación Log no es , en general, una solución contra los valores atípicos (simplemente oculta el problema). La robustez de RF que usted propone es esencialmente el enfoque recomendado por Galimberti, G., Pillati, M. y Soffritti, G. (vea mi respuesta). La principal diferencia es que su enfoque de '' modelo robusto '' tiene un punto de ruptura máximo del 25% en el espacio de respuesta (puede soportar el 25% o valores atípicos 'y') mientras que el suyo tiene un pib del 50%. Tenga en cuenta que ninguno de los enfoques es robusto a los valores atípicos en el espacio de diseño.
user603
8

No es el algoritmo Random Forest en sí mismo el que es robusto para los valores atípicos, sino el alumno base en el que se basa: el árbol de decisión . Los árboles de decisión aíslan las observaciones atípicas en hojas pequeñas (es decir, pequeños subespacios del espacio original). Además, los árboles de decisión son modelos locales . A diferencia de la regresión lineal, donde la misma ecuación es válida para todo el espacio, se ajusta localmente un modelo muy simple a cada subespacio (es decir, a cada hoja).

  • En el caso de la regresión, generalmente es un modelo de regresión de orden muy bajo (generalmente solo el promedio de las observaciones en la hoja).
  • Para la clasificación, es el voto mayoritario.

Por lo tanto, para la regresión, por ejemplo, los valores extremos no afectan a todo el modelo porque se promedian localmente. Por lo tanto, el ajuste a los otros valores no se ve afectado.

En realidad, esta propiedad deseable se traslada a otras estructuras en forma de árbol, como los dendogramas. La agrupación jerárquica, por ejemplo, se ha utilizado durante mucho tiempo para la limpieza de datos porque aísla automáticamente las observaciones aberrantes en pequeños grupos. Ver por ejemplo Loureiro et al. (2004) Detección de valores atípicos mediante métodos de agrupación: una aplicación de limpieza de datos .

En pocas palabras, RF hereda su insensibilidad a los valores atípicos de la partición recursiva y el ajuste del modelo local .

Tenga en cuenta que los árboles de decisión son modelos de bajo sesgo pero de alta varianza: su estructura es propensa a cambiar con una pequeña modificación del conjunto de entrenamiento (eliminación o adición de algunas observaciones). Pero esto no debe confundirse con la sensibilidad a los valores atípicos, este es un asunto diferente.

Antoine
fuente
De hecho, consideré usar un método de agrupamiento, como sugiere, para la detección de valores atípicos. Pero entonces, no estoy seguro de dónde aplicar el agrupamiento. En caso de que se aplique a labeledo unlabeleddatos? ¿Y cómo se lograría esta agrupación en datos heterogéneos que contienen características categóricas y numéricas?
Hunle