You are on page 1of 26

RANDOM FOREST

Introducción
Random forest también conocidos en castellano como
'"Bosques Aleatorios"' es una combinación de árboles
predictores tal que cada árbol depende de los valores de un
vector aleatorio probado independientemente y con la misma
distribución para cada uno de estos. Es una modificación
sustancial de bagging que construye una larga colección de
árboles no correlacionados y luego los promedia.
Historia
El algoritmo para inducir un random forest fue desarrollado
por Leo Breiman y Adele Cutler y Random forests es su marca de
fábrica. El término aparece de la primera propuesta de Random
decision forests, hecha por Tin Kam Ho de Bell Labs en 1995. El
método combina la idea de bagging de Breiman y la selección
aleatoria de atributos, introducida independientemente por Ho,
Amit y Geman para construir una colección de árboles de
decisión con variación controlada.
Definición de Random forest
Cada árbol es construido usando el siguiente algoritmo:
 Sea N el número de casos de prueba, M es el número de
variables en el clasificador.
 Sea m el número de variables de entrada a ser usado para
determinar la decisión en un nodo dado; m debe ser mucho
menor que M
 Elegir un conjunto de entrenamiento para este árbol y usar el
resto de los casos de prueba para estimar el error.
 Para cada nodo del árbol, elegir aleatoriamente m variables en
las cuales basar la decisión. Calcular la mejor partición del
conjunto de entrenamiento a partir de las mvariables.
Predicción
Para la predicción un nuevo caso es empujado hacia abajo por el
árbol. Luego se le asigna la etiqueta del nodo terminal donde
termina. Este proceso es iterado por todos los árboles en el
ensamblado, y la etiqueta que obtenga la mayor cantidad de
incidencias es reportada como la predicción.
Ventajas y características
• Es uno de los algoritmos de aprendizaje más certeros que hay
disponible. Para un set de datos lo suficientemente grande
produce un clasificador muy certero.
• Corre eficientemente en bases de datos grandes.
• Puede manejar cientos de variables de entrada sin excluir
ninguna.
• Da estimados de qué variables son importantes en la
clasificación.
• Tiene un método eficaz para estimar datos perdidos y
mantener la exactitud cuando una gran proporción de los
datos está perdida.
Desventajas
• Se ha observado que Random forests sobreajusta en ciertos
grupos de datos con tareas de clasificación/regresión ruidosas.
• A diferencia de los árboles de decisión, la clasificación hecha por
random forests es difícil de interpretar por el hombre.
• Para los datos que incluyen variables categóricas con diferente
número de niveles, el random forests se parcializa a favor de
esos atributos con más niveles. Por consiguiente, la posición que
marca la variable no es fiable para este tipo de datos. Métodos
como las permutaciones parciales se han usado para resolver el
problema
Árboles de Clasificación
• Entrada: Objetos caracterizables mediante propiedades.
• Salida:
• En árboles de decisión: una decisión (sí o no).
• En árboles de clasificación: una clase.
• Conjunto de reglas.
Árboles de Clasificación
• Se clasifican las instancias desde la raíz hacia las hojas, las
cuales proveen la clasificación.
• Cada nodo especifica el test de algún atributo.
• Ejemplo: Si
(Outlook = Sunny, Temperature = Hot, Humedity = High,
Wind = Strong)
Juego al tenis?
Play Tennis
Outlook

Sunny Overcast Rain

Humidity Yes Wind

High Normal Strong Weak

No Yes No Yes
Play Tennis
• Disyunción de conjunciones:

(Outlook = Sunny And Humidity = Normal)


Or (Outlook = Overcast)
Or (Outlook = Rain And Wind = Weak)
Play Tennis
Problemas Apropiados

• Las instancias pueden ser representadas por pares (atributo,


valor) .
• La función objetivo tiene valores discretos (o pueden ser
discretizados).
• Pueden ser requeridas descripciones en forma de
disjunción.
• Posiblemente existen errores en los datos de entrenamiento
(robustos al ruido).
• Posiblemente falta información en algunos de los datos de
entrenamiento.
Algoritmo básico para obtener
un árbol de decisión
• Búsqueda exhaustiva, en profundidad (de arriba hacia abajo),
a través del espacio de posibles árboles de decisión (ID3 y
C4.5).
• Raíz: el atributo que mejor clasifica los datos
Cuál atributo es el mejor clasificador?
 respuesta basada en la ganancia de información.
Algoritmos: ID3 (Interactive
Dichotomizer Version 3)

• Entropía
Entropía(S) - p log2 p - pQ log2 pQ
p = proporción de ejemplos positivos.
pQ = proporción de ejemplos negativos.
S: conjunto de datos actual.
Por ejemplo, en el conjunto de datos Play Tennis
p = 9/14, pQ = 5/14 y E(S) = 0.940
En general: Entropía(S) = -  i=1,c pi log2 pi
Algoritmos: ID3 (Interactive
Dichotomizer Version 3)
• Por ejemplo:
Si S1 es el subconjunto de S en el cual
Humedity = High
Entonces:
• p = 3/7
• pQ = 4/7
• Entropía(S1) = -3/7 log2 3/7 - 4/7 log2 4/7 = 0.985
Entropía y proporción de
positivos
Ganancia de información
• Mide la reducción esperada de entropía sabiendo el valor del
atributo A
Gain(S,A) 
Entropía(S) - vValores(A) (|Sv|/|S|)Entropía(Sv)
Valores(A): Conjunto de posibles valores del atributo A
Sv: Subconjunto de S en el cual el atributo A tiene el valor v

Ej: Gain(S, Humedad) = 0.940 - (7/14)0.985 - (7/14)0.592

proporción de prop. de humedad


humedad alta normal
Play Tennis
Play Tennis

Gain(S,Outlook) = 0.246
Gain(S,Humidity) = 0.151
Gain(S,Wind) = 0.048
Gain(S,Temperature) = 0.029

 Outlook es el atributo del nodo raíz.


Play
Tennis
Algoritmo: CART
(Classification and Regression
Trees)
• Árboles de clasificación: predicen categorías de objetos.
• Árboles de regresión: predicen valores continuos.
• Partición binaria recursiva.
• En cada iteración se selecciona la variable predictiva y el
punto de separación que mejor reduzcan la ‘impureza’.
Índice de diversidad de Gini
Índice de diversidad de Gini
• Ai es el atributo para ramificar el árbol.
• Mi es el número de valores diferentes del atributo Ai.
• p(Aij) es la probabilidad de que Ai tome su j-ésimo
valor (1 <= j <= Mi).
Índice de diversidad de Gini
• p(Ck|Aij) es la probabilidad de que un ejemplo
pertenezca a la clase Ck cuando su atributo Ai toma su
j-ésimo valor.
• p(¬Ck|Aij) es 1 - p(Ck|Aij).
• Este índice es utilizado como una medida de impureza
de la información al igual que la entropía.
Sobreentrenamiento
• Se debe evitar el sobreentrenamiento
• Parar de crecer el árbol temprano.
• Postprocesamiento del árbol (poda)
Cómo?
• Usar un conjunto de ejemplos de validación
• Usar estadísticas

You might also like