martes, 14 de mayo de 2013

Un ejemplo desarrollado de ID3

Buscando por internet podemos encontrar algunos ejemplos sobre el ID3. Si los seguimos podemos entender mucho mejor su funcionamiento. En primer lugar vamos a incluir el pseudocódigo de este, de manera que podamos estudiarlo de manera teórica:

Si todos los ejemplos de E pertenecen a una misma clase C, entonces
   arbol1 <-- nodo etiquetado con C
SiNo
   Si a = f, entonces
      C <-- clase mayoritaria de los ejemplos de E
      arbol1 <-- nodo etiquetado con C
   SiNo
      A <-- mejor atributo de a
      arbol1 <-- nodo etiquetado con A
      Para cada v perteneciente a los valores de A, hacer
         EAv <-- los ejemplos de E que tienen el valor v para el atributo A
         Si EAv = f, entonces
            arbol2 <-- nodo etiquetado con la clase mayoritaria en E
         SiNo
            arbol2 <-- ID3(EAv , a-{A})
         arbol1 <-- añadir a arbol1 el arbol2, a través de una rama etiquetada con v
Devolver arbol1





A continuación vamos a desarrollar un ejemplo del ID3, con el objetivo de entender como funciona y como obtiene el árbol.


Teniendo estos datos como originales, trataremos de obtener un árbol que nos permita clasificar a los pacientes para administrarle el tratamiento o no. El primer paso sería elegir el atributo con máxima ganancia. Para ello, observamos la ganancia de cada uno de los atributos de la siguiente manera: Obtenemos la entropía de cada atributo para cada característica, obteniendo el log 2 del número de sujetos que poseen ese atributo, entre el número de los que no lo tienen. Posteriormente, estas entropías, las multiplicamos por el número de elementos totales que tiene cada característica, como se lleva a cabo a continuación:


                                   

G(S,"Presión Arterial")=0.940(5/14)0.971(4/14)(5/14)0.971=0.246





G(S,"Gota")=0.940(7/14)0.985 (7 /14) 0.592 = 0.151






G(S,"Urea en Sangre")=0.940 (4/14)1(6/14)0.918 (4/14)0.811 = 0.029






G(S,"Hipotiroidismo")=0.940 (6/14)1  (8/14)0.811 = 0.048



Una vez terminado este primer paso, nos quedamos con el atributo que más ganancia tenga; en este caso, se trataría de la presión arterial, por lo tanto, obtendríamos ya una parte del árbol, como se muestra a continuación:



Si seguimos realizando la ganancia a partir de la imagen anterior, obtenemos el siguiente árbol, con el que finalizaríamos el ejemplo:




No hay comentarios:

Publicar un comentario