Anda di halaman 1dari 25

Aprendizaje Automatizado

rboles de
Clasificacin

rboles de Clasificacin
Entrada:

Objetos caracterizables mediante


propiedades.
Salida:

En rboles de decisin: una decisin (s o no).


En rboles de clasificacin: una clase.

Conjunto

de reglas.

rboles de Clasificacin
Se

clasifican las instancias desde la raz hacia


las hojas, las cuales proveen la clasificacin.

Cada

nodo especifica el test de algn atributo.

Ejemplo:

Si

(Outlook = Sunny, Temperature = Hot, Humedity = High,


Wind = Strong)

Juego al tenis?

Play Tennis
Outlook
Sunny Overcast
Yes

Humidity

High
No

Rain

Normal
Yes

Wind

Strong
No

Weak
Yes

Play Tennis
Disyuncin

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 funcin objetivo tiene valores discretos (o pueden ser


discretizados).

Pueden ser requeridas descripciones en forma de


disjuncin.

Posiblemente existen errores en los datos de


entrenamiento (robustos al ruido).

Posiblemente falta informacin en algunos de los datos


de entrenamiento.

Algoritmo bsico para obtener un


rbol de decisin
Bsqueda

exhaustiva, en profundidad (de


arriba hacia abajo), a travs del espacio de
posibles rboles de decisin (ID3 y C4.5).

Raz:

el atributo que mejor clasifica los datos

Cul atributo es el mejor clasificador?


respuesta basada en la ganancia de
informacin.

Algoritmos: ID3 (Interactive


Dichotomizer Version 3)
Entropa

Entropa(S) - p log2 p - p log2 p


p = proporcin de ejemplos positivos.
p = proporcin de ejemplos negativos.
S: conjunto de datos actual.
Por ejemplo, en el conjunto de datos Play Tennis
p= 9/14, p = 5/14 y E(S) = 0.940
En general:

Entropa(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

p = 4/7

Entropa(S1) = -3/7 log2 3/7 - 4/7 log2 4/7 = 0.985

Entropa y proporcin de positivos

Ganancia de informacin
Mide

la reduccin esperada de entropa


sabiendo el valor del atributo A
Gain(S,A)
Entropa(S) - vValores(A) (|Sv|/|S|)Entropa(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


proporcin
de
humedad

prop. de
humedad
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 raz.

Play
Tennis

Algoritmo: CART (Classification


and Regression Trees)
rboles

de clasificacin: predicen
categoras de objetos.
rboles de regresin: predicen valores
continuos.
Particin binaria recursiva.
En cada iteracin se selecciona la variable
predictiva y el punto de separacin 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 nmero de valores diferentes del

atributo

Ai.

p(Aij) es la probabilidad de que

su j-simo valor (1 <= j <= Mi).

Ai tome

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 informacin al igual que
la entropa.

Sobreentrenamiento
Se

debe evitar el sobreentrenamiento

Parar de crecer el rbol temprano.


Postprocesamiento del rbol (poda)

Cmo?

Usar un conjunto de ejemplos de validacin


Usar estadsticas

Matlab - Statistics Toolbox


La

clase @classregtree est diseada para


manipular rboles de regresin y rboles de
decisin (CART).
Ejemplo:
>> load fisheriris;
>> t = classregtree(meas, species, 'names',
{'SL' 'SW' 'PL' 'PW'})

Matlab - Statistics Toolbox


t =
Decision tree for classification
1 if PL<2.45 then node 2 else node
2 class = setosa
3 if PW<1.75 then node 4 else node
4 if PL<4.95 then node 6 else node
5 class = virginica
6 if PW<1.65 then node 8 else node
7 class = virginica
8 class = versicolor
9 class = virginica

3
5
7
9

Matlab - Statistics Toolbox

>> view(t)

Matlab - Statistics Toolbox


Clasificar

datos:

sfit = eval(t,meas);
Computar

la proporcin de clasificados
correctamente:
pct = mean(strcmp(sfit,species))
pct =
0.9800

Matlab - Statistics Toolbox


Calcular

el promedio de errores al cuadrado:

mse = mean((sfit - species).^2)

Podar

el rbol:

t2 = prune(t, 'level', 1)