Introducción Random Forests y Bagging Consistencia Lemas Ejemplos Consistencia de Random Forests y otros clasificadores promediados Andrés Castrillejo, Natalia da Silva, Gabriel Illanes Universidad de la República 19 de julio de 2010 Andrés Castrillejo, Natalia da Silva, Gabriel Illanes Random Forests Introducción Random Forests y Bagging Consistencia Lemas Ejemplos Índice 1 Introducción 2 Random Forests y Bagging 3 Consistencia 4 Lemas 5 Ejemplos Andrés Castrillejo, Natalia da Silva, Gabriel Illanes Random Forests Introducción Random Forests y Bagging Consistencia Lemas Ejemplos Introducción En el trabajo de Biau, Devroye y Lugosi se prueban varios teoremas de consistencia para algunas versiones de Random Forest y otros clasificadores promediados. En esta presentación describiremos las nociones básicas de Random Forest y las distintas variantes utilizadas en dicho trabajo. Definiremos consistencia en el sentido fuerte y débil, y esbozaremos los lemas y teoremas utilizados en las principales demostraciones. Finalmente, mostraremos una aplicación en R. Andrés Castrillejo, Natalia da Silva, Gabriel Illanes Random Forests Introducción Random Forests y Bagging Consistencia Lemas Ejemplos Clasificadores En un problema de clasificación supervisada se estudia un fenómeno representado por un vector X en Rd que puede ser clasificado de K maneras de acuerdo a un vector Y de “etiquetas”. Un clasificador permite asignar un nuevo dato x del cual no se conoce la etiqueta. Con tal fin, se dispone de Dn = {(Xi , Yi )}ni=1 llamado “conjunto de entrenamiento”, donde Xi es un suceso del fenómeno X , y Yi (en este caso valores 0 o 1) es la etiqueta que lo sitúa en la categoría (que se asume) correcta. Por ejemplo, Xi es un paciente con ciertos síntomas y Yi indica si el paciente padece una enfermedad o no. Andrés Castrillejo, Natalia da Silva, Gabriel Illanes Random Forests Introducción Random Forests y Bagging Consistencia Lemas Ejemplos Error de Bayes Si X es un punto de Rd , y Y una etiqueta que toma valores {0, 1}. Entonces, el problema puede pensarse de la manera siguiente: se sortea la variable X , y una vez decidido su valor, se sortea la variable aleatoria Y (una Bernoulli con parámetro desconocido p(x )). Y llamamos η(x ) = P(Y = 1|X = x ) = E(Y |X = x ). Por tanto si X = x y no se conoce Y , es natural pensar que Y = 1 si P(Y = 1|X = x ) > P(Y = 0|X = x ). Se puede definir entonces el anterior clasificador como 1 si η(x ) ≥ 1/2 ∗ g (x ) = 0 en otro caso Andrés Castrillejo, Natalia da Silva, Gabriel Illanes Random Forests Introducción Random Forests y Bagging Consistencia Lemas Ejemplos Se cumple el siguiente resultado. Teorema Sea g : Rd → {0, 1} un clasificador, se cumple P {g ∗ (X ) 6= Y } ≤ P {g(X ) 6= Y } y por tanto, g ∗ es una decisión óptima. Definición Llamamos “decisión de Bayes” a g ∗ y “probabilidad de error de Bayes” a L∗ = P {g ∗ (X ) 6= Y }. Nuestro objetivo entonces es construir clasificadores con una probabilidad de error cercana (necesariamente mayor) a L∗ . Andrés Castrillejo, Natalia da Silva, Gabriel Illanes Random Forests Introducción Random Forests y Bagging Consistencia Lemas Ejemplos Métodos de agregación Los métodos de agregación consisten en agregar información de clasificadores individuales mediante voto mayoritario o promedio. Se toman m clasificadores gni , i = 1, . . . , m, y definimos el clasificador por voto mayoritario P 1 si m1 ni=1 gni (x) ≥ 21 (m) gn (x) = 0 en otro caso Además, definimos el clasificador promedio como (m) g n (x) = l«ım gn (x) m→∞ que está definido casi seguramente si P{gni (x) = 1} = 6 1/2. Andrés Castrillejo, Natalia da Silva, Gabriel Illanes Random Forests Introducción Random Forests y Bagging Consistencia Lemas Ejemplos Bootstrap El bootstrap es una aproximación general a la inferencia estadística basada en construir una distribución en el muestreo para un estadístico a través de remuestreo de los datos. Se obtiene una nueva muestra con idéntica distribución de los datos a partir de la muestra original, tomando muestreo aleatorio simple con reposición del mismo tamaño que la muestra original. Andrés Castrillejo, Natalia da Silva, Gabriel Illanes Random Forests Introducción Random Forests y Bagging Consistencia Lemas Ejemplos Random Forests Random Forests es una técnica de agregación desarrollada por Leo Breiman, que mejora la precisión en la clasificación mediante la incorporación de aleatoriedad en la construcción de cada clasificador individual. Esta aleatorización puede introducirse en la partición del espacio (construcción del árbol), así como en la muestra de entrenamiento. Las distintas variantes de random forest consisten en cómo se incorpora la aleatoriedad en la construcción. Andrés Castrillejo, Natalia da Silva, Gabriel Illanes Random Forests Introducción Random Forests y Bagging Consistencia Lemas Ejemplos Random Forest original de Breiman El algoritmo tiene un parámetro 1 ≤ v < d entero positivo fijado por el usuario. La raíz del árbol es Rd . En cada paso de construcción del árbol, una hoja es elegida uniformemente aleatoria. v variables son seleccionadas uniformemente aleatorias de las d candidatas x (1) , . . . , x (d) . Entre las v variables, se selecciona la partición que minimiza el número de puntos mal clasificados de la muestra de entrenamiento (con el criterio de voto mayoritario). Este criterio es repetido hasta que cada celda contenga un punto de entrenamiento Xi (esto es siempre posible si los marginales de X son no atómicos). Andrés Castrillejo, Natalia da Silva, Gabriel Illanes Random Forests Introducción Random Forests y Bagging Consistencia Lemas Ejemplos Random Forest Puro Se asume por simplicidad que la medida definida por X , µ es soportada en [0, 1]d . Todos los nodos del árbol se asocian a celdas rectangulares tal que, en cada paso de la construcción del árbol, la colección de celdas asociadas con las hojas del árbol forman una partición en [0, 1]d . La raíz del árbol aleatorio es [0, 1]d . En cada paso de la construcción del árbol, una hoja es elegida aleatoriamente uniforme. Entonces la variable de partición J es seleccionada aleatoriamente uniforme entre los d candidatos x (1) , . . . x (d) . Finalmente, la celda seleccionada es partida, a lo largo de la variable seleccionada al azar, en un lugar al azar seleccionado de acuerdo a una variable aleatoria uniforme de la longitud del lado elegido de la celda seleccionada. El procedimiento es repetido k veces, donde k ≥ 1 es un parámetro determinístico, fijo de antemano por el usuario y dependiendo posiblemente de n. Andrés Castrillejo, Natalia da Silva, Gabriel Illanes Random Forests Introducción Random Forests y Bagging Consistencia Lemas Ejemplos Random Forest invariante por escalas La única diferencia entre este random forest y el random forest puro es cómo se introduce la aleatorización para elegir el lugar de corte de la celda. Se selecciona una hoja uniformemente al azar, y luego la dirección J donde cortar entre las d candidatas uniformemente, igual que antes. La única diferencia es que la posición de los cortes es elegida basada en los datos: si la celda a ser cortada contiene N datos X1 , . . . , XN , entonces se elige un índice aleatorio I uniformemente del conjunto {0, . . . , N} tal que, cuando se ordena por su J-ésimo componente, los I puntos con el valor más chico de caen en una de las subceldas, y el resto en la otra. Andrés Castrillejo, Natalia da Silva, Gabriel Illanes Random Forests Introducción Random Forests y Bagging Consistencia Lemas Ejemplos Bagging Bagging es un clasificador de agregación que, a diferencia de random forests, incorpora aleatoriedad sólo en las muestras boostrap. En este trabajo, se considera una generalización del bagging, donde cada par (Xi , Yi ) de la muestra de entrenamiento aparece en la muestra boostrap con probabilidad qn . Así, cada remuestra tendrá un cardinal N, distribuído binomialmente con parámetros qn , n. Si Dn es la muestra de entrenamiento original, y Z representa el proceso de selección aleatorio, entonces obtenemos un nuevo conjunto de entrenamiento Dn (Z ). Dado un clasificador gn (X , Dn ), obtenemos un nuevo clasificador aleatorizado gn (X , Dn (Z )), y a partir de él, se construye el clasificador de voto mayoritario (o el clasificador promedio). Andrés Castrillejo, Natalia da Silva, Gabriel Illanes Random Forests Introducción Random Forests y Bagging Consistencia Lemas Ejemplos Bagging NN1 promediado Construímos un clasificador bagging promedio usando el clasificador de 1 vecino más cercano. Andrés Castrillejo, Natalia da Silva, Gabriel Illanes Random Forests Introducción Random Forests y Bagging Consistencia Lemas Ejemplos Definición Definición (Consistencia debil y fuerte) Una regla de clasificación gn es consistente para una cierta distribución (X , Y ) si cuando n→∞ ELn = P{gn (X , Dn ) 6= Y } −→ L∗ y es fuertemente consistente si con Probabilidad 1: l«ım Ln = L∗ n→∞ donde L∗ es la probabilidad del Error de Bayes. Andrés Castrillejo, Natalia da Silva, Gabriel Illanes Random Forests Introducción Random Forests y Bagging Consistencia Lemas Ejemplos Consistencia Universal Definición (Consistencia universal) Una secuencia de reglas de decisión es llamada universalmente (fuertemente) consistente si es (fuertemente) consistente para cualquier distribución de los pares (X , Y ). Andrés Castrillejo, Natalia da Silva, Gabriel Illanes Random Forests Introducción Random Forests y Bagging Consistencia Lemas Ejemplos Consistencia de clasificadores de voto mayoritario Proposición Se supone una secuencia de gn de clasificadores aleatorizados que son consistentes para una cierta distribución de (X , Y ). (m) Entonces el clasificador votando gn (para cualquier valor de m) y el clasificador promedio g¯n es también consistente. Andrés Castrillejo, Natalia da Silva, Gabriel Illanes Random Forests Introducción Random Forests y Bagging Consistencia Lemas Ejemplos Teorema de Stone El teorema de Stone (1977) nos permite deducir la consistencia universal de varias reglas de clasificación. Considere una regla basada en la estimación de la probabilidad a posteriori η de la forma: ηx = n X I{Yi =1} Wni (x ) = i=1 n X Yi Wni (x ) i=0 donde los pesos Wni (x ) = Wni (x , X1 , X2 . . . , Xn ) son no negativos y P n i=1 Wni (x ) = 1. La regla de clasificación es definida como: Pn Pn si I{Yi =1} Wni (x ) ≤ i=1 I{Yi =0} Wni (x ) i=1 gn (x ) = en otro caso Pn 0 si i=1 Yi Wni (x ) ≤ 1/2 gn (x ) = 1 en otro caso ηn es un estimador promedio ponderado de η. 0 1 Andrés Castrillejo, Natalia da Silva, Gabriel Illanes Random Forests Introducción Random Forests y Bagging Consistencia Lemas Ejemplos Es intuitivamente claro que el par (Xi , Yi ) debería dar más información sobre η(x) cuando Xi está cerca de x que cuando están lejos de x. Así los pesos son mucho más grandes en los vecinos de X , por lo que ηn es aproximadamente una frecuencia relativa de los Xi que tienen etiqueta 1 entre los puntos en el vecindario de X . Así ηn podría ser como un estimador promedio local, y gn un voto mayoritario local. Andrés Castrillejo, Natalia da Silva, Gabriel Illanes Random Forests Introducción Random Forests y Bagging Consistencia Lemas Ejemplos (Stone (1977)) Asumiendo que para cualquier distribución de X , los pesos satisfacen las tres siguientes condiciones: 1 Hay una constante c tal que para toda función medible no negativa f satisface Ef (X ) < ∞ ( n ) X E Wni (X )f (Xi ) ≤ cEf (X ) i=1 2 Para todo a > 0 l«ım E ( n X Wni (X )I{kXi −X k>a} i=1 ) 3 l«ım E m« ax Wni (X ) = 0 1≤i≤n Entonces gn es universalmente consistente Andrés Castrillejo, Natalia da Silva, Gabriel Illanes Random Forests =0 Introducción Random Forests y Bagging Consistencia Lemas Ejemplos Consistencia del Random Forest Puro Teorema Asumamos que la distribución de X está soportada en [0, 1]d . Entonces el random forest puro g n es consistente cuando k → ∞ y k/n → 0 con k → ∞. Andrés Castrillejo, Natalia da Silva, Gabriel Illanes Random Forests Introducción Random Forests y Bagging Consistencia Lemas Ejemplos Consistencia del Random Forest invariante por escalas Teorema Supongamos que la distribución de X tiene marginales absolutamente continuos en Rd . Entonces el clasificador random forest invariante por escalas g n es consistente cuando k → ∞ y k/n → 0 Andrés Castrillejo, Natalia da Silva, Gabriel Illanes Random Forests Introducción Random Forests y Bagging Consistencia Lemas Ejemplos Consistencia del 1NN Bagging Teorema El “bagging averaged 1-nearest neighbor classifier” g n (x, Dn ) es consistente para toda distribución de (X , Y ) si y sólo si qn → 0 y nqn → ∞. Andrés Castrillejo, Natalia da Silva, Gabriel Illanes Random Forests Introducción Random Forests y Bagging Consistencia Lemas Ejemplos Random Forest original de Breiman El random forest original de Breiman no es universalmente consistente. Sin embargo, cambiando las reglas de parada (no dejar un sólo dato de entrenamiento en cada celda), no es tan claro qué sucede. También se puede ver que, si uno quisiera minimizar en cada corte el error teórico de clasificación (o sea, suponiendo que conocemos η(x)), hay distribuciones donde no se logra la consistencia. Dado que uno en realidad minimiza el error empírico, todo dependerá exactamente de los datos que se dispongan, y la regla de parada. Andrés Castrillejo, Natalia da Silva, Gabriel Illanes Random Forests Introducción Random Forests y Bagging Consistencia Lemas Ejemplos Ejemplo - Random Forests en R > library(help=randomForest) Information on package ’randomForest’ Description: Package: randomForest Title: Breiman and Cutler’s random forests for classification and regression Version: 4.5-35 Date: 2010-05-04 Depends: R (>= 2.0.0), stats Suggests: RColorBrewer Author: Fortran original by Leo Breiman and Adele Cutler, R port by Andy Liaw and Matthew Wiener. Description: Classification and regression based on a forest of trees using random inputs. Maintainer: Andy Liaw <andy_liaw@merck.com> License: GPL (>= 2) URL: http://stat-www.berkeley.edu/users/breiman/RandomForests Packaged: 2010-06-21 01:39:37 UTC; liawand Repository: CRAN Date/Publication: 2010-06-21 08:03:51 Built: R 2.7.1; x86_64-pc-linux-gnu; 2010-07-17 10:04:17; unix Andrés Castrillejo, Natalia da Silva, Gabriel Illanes Random Forests Introducción Random Forests y Bagging Consistencia Lemas Ejemplos Index: MDSplot classCenter combine getTree grow importance imports85 margin na.roughfix outlier partialPlot plot.randomForest predict.randomForest randomForest rfImpute rfNews treesize tuneRF varImpPlot varUsed Multi-dimensional Scaling Plot of Proximity matrix from randomForest Prototypes of groups. Combine Ensembles of Trees Extract a single tree from a forest. Add trees to an ensemble Extract variable importance measure The Automobile Data Margins of randomForest Classifier Rough Imputation of Missing Values Compute outlying measures Partial dependence plot Plot method for randomForest objects predict method for random forest objects Classification and Regression with Random Forest Missing Value Imputations by randomForest Show the NEWS file Size of trees in an ensemble Tune randomForest for the optimal mtry parameter Variable Importance Plot Variables used in a random forest Andrés Castrillejo, Natalia da Silva, Gabriel Illanes Random Forests Introducción Random Forests y Bagging Consistencia Lemas Ejemplos Random Forests en R library(randomForest) library(help=randomForest) help(randomForest) rf <- randomForest(Y~X1 + X2 + X3 ,data=misdatos) rf <- randomForest(Y~. ,data=misdatos) print(rf) Andrés Castrillejo, Natalia da Silva, Gabriel Illanes Random Forests Introducción Random Forests y Bagging Consistencia Lemas Ejemplos data: un data frame. x, formula: un data frame o matriz, o una formula con el modelo a ser ajustado. y: variable de respuesta.(factor-clasificación) xtest: data frame o matriz (como ’x’) con los predictores para el conjunto test. ytest: variable de respuesta para el conjunto test. ntree: Numero de árboles de la construcción. (500) mtry: Numero de variables seleccionadas aleatoriamente como candidatas en cada nodo. (sqrt(p) en class) replace: Muestras con o sin remplazo. (TRUE) classwt: Priors para las clases. Andrés Castrillejo, Natalia da Silva, Gabriel Illanes Random Forests Introducción Random Forests y Bagging Consistencia Lemas Ejemplos Ademas se puede elegir la forma de votar (cutoff), muestreo estratificado por una variable(strata, sampsize), el tamaño mínimo de cada nodo terminal(nodesize), la cantidad de nodos terminales en los arboles(maxnodes). importance:Se obtiene la importancia de las variables proximity: Medida de proximidad entre individuos Andrés Castrillejo, Natalia da Silva, Gabriel Illanes Random Forests Introducción Random Forests y Bagging Consistencia Lemas Ejemplos Ejemplo - pendigits http://archive.ics.uci.edu/ml/machine-learning-databases/pendigits UCI Machine Learning Repository (Blake et al., 1998) (Alimoglu, 1996; Alimoglu and Alpaydin, 1996) Se colectan datos con una tableta sensible a la presión de la escritura de números del 0 al 9. Guarda las coordenadas (x,y) del lápiz cada 100 ms. Se realizan algunos preprocesamientos de los datos. Se normalizan de forma que queden en rango 0 - 100. Otro proceso para obtener para cada trayectoria del dígito 8 puntos regularmente espaciados. Andrés Castrillejo, Natalia da Silva, Gabriel Illanes Random Forests Introducción Random Forests y Bagging Consistencia Lemas Ejemplos Se poseen 250 muestras manuscritas provenientes de 44 personas. De estos 30 se utilizan como muestra de entrenamiento y los otros 14 como test. Cada dígito es representado por 8 coordenadas (x,y), lo que lleva a un vector de atributos de 16 dimensiones. Cada atributo varia entre 0 y 100. El último atributo es la clase 0 a 9. Entrenamiento: 7494, Testing:3498 Andrés Castrillejo, Natalia da Silva, Gabriel Illanes Random Forests Introducción Random Forests y Bagging Consistencia Lemas Ejemplos Accuracy on the testing set with k-nn using Euclidean distance as the metric k = 1 : 97.74 k = 2 : 97.37 k = 3 : 97.80 k = 4 : 97.66 k = 5 : 97.60 k = 6 : 97.57 k = 7 : 97.54 k = 8 : 97.54 k = 9 : 97.46 k = 10 : 97.48 k = 11 : 97.34 Andrés Castrillejo, Natalia da Silva, Gabriel Illanes Random Forests Introducción Random Forests y Bagging Consistencia Lemas Ejemplos Call: randomForest(formula = digit ~ ., data = dat, importance = TRUE) Type of random forest: classification Number of trees: 500 No. of variables tried at each split: 4 OOB estimate of error rate: 0.71% Esta corrida demoró aprox. 14’ (proces. 3Ghz, RAM 4 Gb, Debian) Andrés Castrillejo, Natalia da Silva, Gabriel Illanes Random Forests Introducción Random Forests y Bagging Consistencia Lemas Ejemplos Confusion matrix: 0 1 2 3 4 5 6 7 8 9 0 774 0 0 0 2 0 1 0 1 2 1 0 762 14 2 0 0 0 0 0 1 2 0 6 772 1 0 0 0 1 0 0 3 0 1 1 714 0 0 0 3 0 0 4 0 0 0 0 776 0 0 0 0 4 5 0 0 0 2 0 716 0 0 1 1 6 0 0 0 0 1 1 718 0 0 0 7 0 1 1 0 0 0 0 775 1 0 8 0 0 0 0 0 0 0 1 718 0 9 0 0 0 1 2 0 0 0 0 716 Andrés Castrillejo, Natalia da Silva, Gabriel Illanes Random Forests class.error 0.007692308 0.021822850 0.010256410 0.006954103 0.005128205 0.005555556 0.002777778 0.003856041 0.001390821 0.004172462 Introducción Random Forests y Bagging Consistencia Lemas Ejemplos > pred <- predict(ranf,newdata=tes[,1:16]) > table(pred,tes[,17]) pred 0 1 2 3 4 5 6 7 8 9 0 347 0 0 0 0 0 1 0 0 0 1 0 335 5 4 0 0 0 22 0 2 2 0 26 359 0 0 0 0 2 0 0 3 0 1 0 330 0 9 0 0 0 0 4 0 1 0 0 364 0 0 0 0 0 5 0 0 0 0 0 312 0 0 0 0 6 0 0 0 0 0 0 335 0 0 0 7 0 1 0 0 0 0 0 330 0 2 8 16 0 0 0 0 0 0 0 336 1 9 0 0 0 2 0 14 0 10 0 331 > 1+5+4+22+2+26+2+1+9+1+1+2+16+1+2+14+10 [1] 119 > 1 - (119/3498) [1] 0.9659806 Andrés Castrillejo, Natalia da Silva, Gabriel Illanes Random Forests Introducción Random Forests y Bagging Consistencia Lemas Ejemplos > round(importance(ranf),2) 0 1 2 ... 7 V1 0.59 1.06 0.83 1.16 V2 0.49 1.19 0.70 1.05 V3 0.92 1.11 0.97 0.80 V4 0.62 1.20 1.11 1.02 8 1.12 1.14 0.83 1.08 9 MeanDecreaseAccuracy MeanDecreaseGini 1.26 0.41 400.15 1.16 0.38 357.31 Importancia de las variables 0.91 0.39 360.31 1.14 0.40 461.78 V1 V14 V15 V16 V10 V10 V9 V11 V14 V15 V4 V5 V7 V8 V13 V9 V16 V1 V5 V4 V3 V2 V11 V12 V2 V6 V8 V7 V12 V13 V6 V3 0.35 0.36 0.37 0.38 0.39 MeanDecreaseAccuracy 0.40 Andrés Castrillejo, Natalia da Silva, Gabriel Illanes 0 100 200 300 400 500 MeanDecreaseGini Random Forests 600 700