Random Forests

Anuncio
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 <[email protected]>
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
Descargar