48 votos

¿Por qué los bosques aleatorios no son sensibles a los valores atípicos?

He leído en algunas fuentes, incluyendo este En el caso de los bosques aleatorios, no son sensibles a los valores atípicos (como lo son, por ejemplo, la regresión logística y otros métodos ML).

Sin embargo, dos intuiciones me dicen lo contrario:

  1. Siempre que se construye un árbol de decisión, hay que clasificar todos los puntos. Esto significa que incluso los valores atípicos se clasificarán y, por lo tanto, afectarán a los árboles de decisión en los que se hayan seleccionado durante el refuerzo.

  2. El Bootstrapping es una parte de cómo un RandomForest hace el submuestreo. El Bootstrapping es susceptible a los valores atípicos.

¿Hay alguna forma de conciliar mi intuición sobre su sensibilidad a los valores atípicos, con las fuentes que discrepan?

0 votos

La respuesta, a continuación, es muy buena. La respuesta intuitiva es que un árbol de decisión funciona con divisiones y las divisiones no son sensibles a los valores atípicos: una división sólo tiene que caer en cualquier lugar entre dos grupos de puntos para dividirlos.

0 votos

Así que supongo que si el min_samples_leaf_node es 1 Entonces podría ser susceptible a los valores atípicos.

0 votos

sí min/muestras y muestra bootstrap pueden eliminar completamente la influencia de los valores atípicos 1b en la regresión RF

27voto

Patrick Puntos 183

Su intuición es correcta. Esta respuesta simplemente lo ilustra con un ejemplo.

En efecto, se trata de un común La idea errónea de que el CART/RF es de alguna manera robusto a los valores atípicos.

Para ilustrar la falta de solidez de la RF ante la presencia de un único valor atípico, podemos modificar (ligeramente) el código utilizado en la respuesta de Soren Havelund Welling anterior para mostrar que a solo Los valores atípicos de 'y' bastan para que el modelo de RF ajustado se tambalee por completo. Por ejemplo, si calculamos el error medio de predicción 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 inferior) que introduciendo un solo El valor atípico (sustituyendo una de las observaciones originales por un valor arbitrario en el espacio 'y') basta para alejar arbitrariamente las predicciones del modelo de RF de los valores que habrían tenido si se hubieran calculado con 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")

enter image description here

¿A qué distancia? En el ejemplo anterior, el único valor atípico ha cambiado tanto el ajuste que el error medio de predicción (en las observaciones no contaminadas) es ahora 1-2 órdenes de magnitud mayor de lo que habría sido si el modelo se hubiera ajustado a los datos no contaminados.

Por tanto, no es cierto que un solo valor atípico no pueda afectar al ajuste de la RF.

Además, como señalo en otro lugar Los valores atípicos son mucho más difíciles de tratar cuando hay varios de ellos (aunque no es necesario que sean un gran proporción de los datos para que aparezcan 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 la RF, compare el gráfico de la izquierda obtenido a partir de la RF en los datos no contaminados con el gráfico de la derecha obtenido desplazando arbitrariamente el 5% de los valores de las respuestas (el código está debajo de la respuesta).

enter image description here enter image description here

Por último, en el contexto de la 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 en el de respuesta (1). En el contexto específico de la RF, los valores atípicos de diseño afectarán a la estimación de los hiperparámetros. Sin embargo, este segundo efecto se manifiesta más cuando el número de dimensiones 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 multivariantes basados en funciones de pérdida convexas ha sido redescubierta muchas veces. Véase (2) para una ilustración en el contexto específico de los métodos ML.

Editar.

Afortunadamente, aunque el algoritmo CART/RF básico no es en absoluto robusto frente a los valores atípicos, es posible (y muy fácil) modificar el procedimiento para dotarlo de robustez frente a los valores atípicos "y". Ahora me centraré en los RF de regresión (ya que esto es más específicamente el objeto de la pregunta del PO). Más concretamente, escribiendo el criterio de división para un nodo arbitrario $t$ como:

$$s^=\arg\max_{s} [p_L \text{var}(t_L(s))+p_R\text{var}(t_R(s))]$$

donde $t_L$ y $t_R$ son nodos hijos emergentes que dependen de la elección de $s^$ ( $t_L$ y $t_R$ son funciones implícitas de $s$ ) y $p_L$ denota la fracción de datos que recae en el nodo hijo de la izquierda $t_L$ y $p_R=1p_L$ es la proporción de datos en $t_R$ . Entonces, se puede impartir la robustez del espacio "y" a los árboles de regresión (y, por tanto, a los RF) sustituyendo el funcional de varianza utilizado en la definición original por una alternativa robusta. Este es, en esencia, el enfoque utilizado en (4), donde la varianza se sustituye por un estimador M robusto de la escala.

  • (1) Desenmascarar los valores atípicos multivariantes y los puntos de apalancamiento. Peter J. Rousseeuw y Bert C. van Zomeren Revista de la Asociación Americana de Estadística Vol. 85, No. 411 (Sep., 1990), pp. 633-639
  • (2) El ruido de clasificación aleatorio derrota a todos los reforzadores potenciales convexos. Philip M. Long y Rocco A. Servedio (2008). http://dl.acm.org/citation.cfm?id=1390233
  • (3) C. Becker y U. Gather (1999). The Masking Breakdown Point of Multivariate Outlier Identification Rules.
  • (4) Galimberti, G., Pillati, M., & Soffritti, G. (2007). Robust regression trees based on M-estimators. 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)]))

0 votos

Gracias por su detallada respuesta. Si hay varios valores atípicos en el mismo espacio de alta dimensión, cabe preguntarse cuál es nuestro criterio para llamar a 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.

0 votos

Bien, como intento decir, supongo que es una cuestión de definición de "atípico". ¿Cómo se construye una definición de "atípico" en los hiperparámetros de un algoritmo de RF?

1 votos

He añadido mis comentarios anteriores a mi respuesta. Espero que ahora responda mejor a su pregunta.

12voto

ebricca Puntos 31

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

  • En el caso de la regresión, se trata generalmente de un modelo de regresión de muy bajo orden modelo de regresión (normalmente sólo la media de las observaciones de la hoja).
  • Para la clasificación, se trata de una votación por mayoría.

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

En realidad, esta deseable propiedad se traslada a otras estructuras arbóreas, 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. Véase, 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 .

Así que, en pocas palabras, la RF hereda su insensibilidad a los valores atípicos de partición recursiva y 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 tras 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, que es una cuestión diferente.

0 votos

De hecho, me planteé utilizar un método de agrupación, como sugieres, para la detección de valores atípicos. Pero entonces, no estoy seguro de dónde aplicar la agrupación. ¿Debe aplicarse a labeled o unlabeled ¿datos? ¿Y cómo se lograría esta agrupación en datos heterogéneos que contienen características tanto categóricas como numéricas?

11voto

el valor atípico 1a: Este valor atípico tiene uno o más valores extremos de características y se sitúa lejos de cualquier otra muestra. El valor atípico influirá en las divisiones iniciales de los árboles como cualquier otra muestra, por lo que no tendrá una gran influencia. Tendrá una baja proximidad a cualquier otra muestra, y sólo 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 nuevas muestras no sean similares a este valor atípico y rara vez acabará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 que no importa si el valor de una característica es un valor atípico extremo.

el atípico 1b: Para la clasificación, una sola muestra puede considerarse un valor atípico, cuando se encuentra en medio de muchas muestras de una clase diferente. Ya he descrito cómo un modelo de RF por defecto se verá influenciado por esta muestra de la clase impar, pero sólo muy cerca de la muestra.

el valor atípico 2: Este valor atípico tiene un valor objetivo extremo, quizás muchas veces superior a cualquier otro valor, pero los valores de las características son normales. Una fracción de 0,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 en paralelo al eje de la característica, porque los nodos se dividen de forma uni-variable.

He incluido una simulación de regresión de RF de outlier_2. 1999 puntos extraídos de una estructura suave y redondeada $y=(x_1^4 + x_2^4 )^{\frac 1 2}$ y un valor atípico con un valor objetivo mucho mayor (y=2, $x_1$ =0, $x_2$ =0). El conjunto de entrenamiento se muestra a la izquierda. La estructura del modelo RF aprendido 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)

EDIT: comentario al usuario603

Sí, en el caso de los valores extremos de la escala objetivo, se debería considerar la posibilidad de transformar la escala objetivo antes de ejecutar la RF. He añadido a continuación un robustModel() que modifica randomForest. Otra solución sería la transformación logarítmica 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

0 votos

Usted escribe "ninguna otra predicción se verá afectada". Si cambias tu único valor atípico para poner y[1]=200 verán que provoca por sí solo el error de predicción en las observaciones no contaminadas ¡para saltar por un factor de 20!

0 votos

@user603 Es cierto que, en estos casos la escala de destino puede ser transformada monotónicamente antes de ser entregada a RF. He añadido un 'robustModel: hace que los modelos sean robustos' a mi respuesta...... Por supuesto, predecir tales valores atípicos aleatorios del objetivo (tipo 2) sigue siendo imposible, pero el resto de la estructura del modelo no tiene que sufrir

0 votos

La transformación Log es no es, en general, una solución contra los valores atípicos (simplemente oculta el problema). La robustificación de la RF que usted propone es esencialmente el enfoque defendido en Galimberti, G., Pillati, M., & Soffritti, G. (véase mi respuesta). La principal diferencia es que tu enfoque ''robustModel" tiene un punto de ruptura máximo del 25% en el espacio de respuesta (puede soportar el 25% o los valores atípicos arbitrarios 'y') mientras que el de ellos tiene un bdp del 50%. Tenga en cuenta que ninguno de los dos enfoques es robusto a los valores atípicos en el espacio de diseño.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X