Documentos de Académico
Documentos de Profesional
Documentos de Cultura
6
! " # $% &'(
&
') * +,-. .- -./ / . ." 0 1 2 3
4 10
))555 3 )1
Esta es una de las reglas finales, pero cubre sólo tres casos para los cuales la recomendación es lentes
duros. Con lo cual, si aplicamos nuevamente el algoritmo para la clase duros, sin tener en cuenta los casos
cubiertos por la regla anterior, obtendremos:
Una vez que cubrimos todos los casos de clase dura, se repite el procedimiento para las otras dos clases.
6. LA FAMILIA TDIDT
La familia de los Top Down Induction Trees (TDIDT) pertenece a los métodos inductivos del
Aprendizaje Automático que aprenden a partir de ejemplos preclasificados. En Minería de Datos, se
utiliza para modelar las clasificaciones en los datos mediante árboles de decisión.
Los árboles TDIDT, a los cuales pertenecen los generados por el ID3 y el C4.5, se construyen a partir del
método de Hunt. El esqueleto de este método para construir un árbol de decisión a partir de un conjunto T
de datos de entrenamiento es muy simple. Sean las clases {C1, C2,. . ., Ck}. Existen tres posibilidades:
1. T contiene uno o más casos, todos pertenecientes a un única clase Cj: El árbol de decisión para T
es una hoja identificando la clase Cj .
- 27 -
CENTRO DE INGENIERÍA DEL SOFTWARE E INGENIERÍA DEL CONOCIMIENTO
6
! " # $% &'(
&
') * +,-. .- -./ / . ." 0 1 2 3
4 10
))555 3 )1
2. T no contiene ningún caso: El árbol de decisión es una hoja, pero la clase asociada debe ser
determinada por información que no pertenece a T. Por ejemplo, una hoja puede escogerse de
acuerdo a conocimientos de base del dominio, como ser la clase mayoritaria.
3. T contiene casos pertenecientes a varias clases: En este caso, la idea es refinar T en subconjuntos
de casos que tiendan, o parezcan tender hacia una colección de casos pertenecientes a una única
clase. Se elige una prueba basada en un único atributo, que tiene uno o más resultados,
mutuamente excluyentes {O1, O2,. . ., On}. T se particiona en los subconjuntos T1, T2,. . ., Tn donde
Ti contiene todos los casos de T que tienen el resultado Oi para la prueba elegida. El árbol de
decisión para T consiste en un nodo de decisión identificando la prueba, con una rama para cada
resultado posible. El mecanismo de construcción del árbol se aplica recursivamente a cada
subconjunto de datos de entrenamientos, para que la i-ésima rama lleve al árbol de decisión
construido por el subconjunto Ti de datos de entrenamiento.
A continuación se presenta el algoritmo del método ID3 para la construcción de árboles de decisión en
función de un conjunto de datos previamente clasificados.
Función ID3
(R: conjunto de atributos no clasificadores,
C: atributo clasificador,
S: conjunto de entrenamiento) devuelve un árbol de decisión;
Comienzo
Si S está vacío,
devolver un único nodo con Valor Falla;
Si todos los registros de S tienen el mismo valor para el atributo clasificador,
Devolver un único nodo con dicho valor;
Si R está vacío, entonces
devolver un único nodo con el valor más frecuente del atributo clasificador en los
registros de S [Nota: habrá errores, es decir, registros que no estarán bien clasificados en
este caso];
Si R no está vacío, entonces
D atributo con mayor Ganancia(D,S) entre los atributos de R;
Sean {dj| j=1,2, .., m} los valores del atributo D;
Sean {Sj| j=1,2, .., m} los subconjuntos de S correspondientes a los valores de dj
respectivamente;
Devolver un árbol con la raíz nombrada como D y con los arcos nombrados d1, d2, .., dm
que van respectivamente a los árboles
ID3(R-{D}, C, S1), ID3(R-{D}, C, S2), .., ID3(R-{D}, C, Sm);
- 28 -
CENTRO DE INGENIERÍA DEL SOFTWARE E INGENIERÍA DEL CONOCIMIENTO
6
! " # $% &'(
&
') * +,-. .- -./ / . ." 0 1 2 3
4 10
))555 3 )1
Fin
En los casos, en los que el conjunto T contiene ejemplos pertenecientes a distintas clases, se realiza una
prueba sobre los distintos atributos y se realiza una partición según el “mejor” atributo. Para encontrar el
“mejor” atributo, se utiliza la teoría de la información, que sostiene que la información se maximiza
cuando la entropía se minimiza. La entropía determina la azarosidad o desestructuración de un conjunto.
Supongamos que tenemos ejemplos positivos y negativos. En este contexto la entropía de un subconjunto
Si, H(Si), puede calcularse como:
H ( S i ) = − pi+ log pi+ − pi− log pi−
Donde pi+ es la probabilidad de que un ejemplo tomado al azar de Si sea positivo. Esta probabilidad
puede calcularse como
ni+
pi+ = (1)
ni+ + ni−
Si el atributo at divide el conjunto S en los subconjuntos Si, i = 1,2, . .. . . , n, entonces, la entropía total del
sistema de subconjuntos será:
n
H ( S , at ) = P (S i ) ⋅ H (S i ) (2)
i =1
I (S , at ) = H (S ) − H (S , at ) (4)
El uso de la entropía para evaluar el mejor atributo no es el único método existente o utilizado en
Aprendizaje Automático. Sin embargo, es el utilizado por Quinlan al desarrollar el ID3 y su sucesor el
C4.5.
6.1.2. Entropía
- 29 -
CENTRO DE INGENIERÍA DEL SOFTWARE E INGENIERÍA DEL CONOCIMIENTO
6
! " # $% &'(
&
') * +,-. .- -./ / . ." 0 1 2 3
4 10
))555 3 )1
¿Qué pasaría si la moneda no estuviese tocada? ¿Cuánto aprendemos si sale cara? 1bit (no estábamos
seguros acerca de cuál de los dos resultados igualmente probables saldría y ahora lo sabemos). Entonces,
una distribución “uniforme” tiene poca incertidumbre y, por ende, aprendemos menos porque aprendemos
a partir de resultados altamente probables.
Supongamos ahora, que tenemos una moneda en la cual la probabilidad de que salga cara es muy alta
(0.99). Si tiramos la moneda y sale ceca, nos sorprendemos, aprendemos más si nos dicen que un evento
muy poco probable ha ocurrido. En general, la cantidad de aprendizaje es inversamente proporcional a la
probabilidad del evento.
Ahora supongamos que tenemos un dado normal. Si nos dicen el resultado de una tirada, ¿cuánto hemos
aprendido? 2.6 bits (cada posibilidad ocurre 1/6 de las veces, log2(1/(1/6))
Ahora, supongamos que S es una variable aleatoria con n valores posibles. Entonces, como explicamos
anteriormente, la entropía se define como
n
H (S i ) = − p i log p i
i =1
donde pi es la probabilidad de que un ejemplo tomado al azar pertenezca a la clase i y se calcula en base a
la frecuencia de los datos de dicha clase en los datos de entrenamiento. Vemos que la entropía es
simplemente la cantidad de información esperada de observar un evento que ocurre según una
distribución de probabilidades. La entropía mide la cantidad de incertidumbre que tenemos dada una
distribución de probabilidades.
Si tomamos un conjunto con elementos positivos y negativos, la entropía variará entre 0 y 1 y puede
representarse de la siguiente manera.
1.2
1
0.8
Entropía
0.6
0.4
0.2
0
0 0.5 1 1.5
p+
Notemos que la entropía es 0 si todos los ejemplos pertenecen a la misma clase, y es 1 cuando hay igual
número de ejemplos positivos y negativos en el conjunto de datos.
- 30 -
CENTRO DE INGENIERÍA DEL SOFTWARE E INGENIERÍA DEL CONOCIMIENTO
6
! " # $% &'(
&
') * +,-. .- -./ / . ." 0 1 2 3
4 10
))555 3 )1
Una interpretación de la entropía desde el punto de vista de la Teoría de la Información es que especifica
el número mínimo de bits de información necesarios para codificar un ejemplo arbitrario S (un ejemplo
sacado al azar del conjunto de datos). Por ejemplo, si p+ es 1, el receptor sabe que el ejemplo es positivo,
con lo cual no es necesario enviar ningún bit. En cambio, si p+ es 0.5, se necesita 1 bit para indicar si el
ejemplo es positivo o negativo. Si p+ es 0.8, se pueden utilizar varios mensajes de menos de 1 bit para
indicar la clase de varios ejemplos.
Volviendo al tema de la elección del “mejor” atributo para realizar ña división de los datos, encontramos
que la ganancia favorece a aquellos atributos que tienen muchos valores frente a los que tienen pocos
valores. Tomemos, por ejemplo, unos registros diarios, cada uno con la fecha. Si particionamos el
conjunto de datos según el campo fecha, dicha partición será perfecta, sin embargo, el árbol resultante no
servirá para clasificar casos futuros. Como el campo fecha tiene tantos valores, divide a los datos de
entrenamiento en conjuntos pequeños, con lo cual tendrá una alta ganancia de información en relación a
los datos de entrenamiento.
Para evitar esto puede utilizarse otra medida para dividir a los datos. Una de estas medida alternativas es
la ganancia de información. Esta medida penaliza a los atributos como fecha al incorporar el término de
información de la división, que es sensible a que tan amplia y uniformemente cada atributo divide a los
datos:
n T Ti
I _ división( X ) = −
i
× log 2
i =1 T T
La información de la división no es otra cosa que la entropía del conjunto con respecto al atributo i. Se
define, entonces, a la proporción de ganancia como:
I (T , X )
proporción _ de _ ganancia( X ) =
I _ división( X )
Cabe destacar que la información de la división penalizará a aquellos atributos con muchos valores
uniformemente distribuidos. Si tenemos n datos separados perfectamente por un atributo, la información
de la división para ese caso será log2n. En cambio, un atributo que divide a los ejemplos en dos mitades,
tendrá una información de la división de 1.
¿Qué pasa cuando la información de la división es cercana a cero? Para resolver este inconveniente
pueden aplicarse varias heurísticas. Por ejemplo, puede utilizarse la ganancia como medida y utilizar la
proporción de ganancia sólo para los atributos que estén sobre el promedio.
Los árboles de decisión pueden generarse tanto a partir de atributos discretos como de atributos
numéricos. Cuando se trabaja con atributos discretos, la partición del conjunto según el valor de un
atributo es simple. Por ejemplo, agrupamos todos los animales que tengan pico, siendo tiene_pico un
atributo y sus posibles valores si y no. En el caso de los atributos numéricos esta división no es tan fácil.
Por ejemplo, si queremos partir los días de un mes en función a la cantidad de lluvia caída, es casi
imposible que encontremos dos días con exactamente la misma cantidad de precipitaciones caídas.
- 31 -
CENTRO DE INGENIERÍA DEL SOFTWARE E INGENIERÍA DEL CONOCIMIENTO
6
! " # $% &'(
&
') * +,-. .- -./ / . ." 0 1 2 3
4 10
))555 3 )1
Para solucionar este problema, puede recurrirse a la binarización. Este método consiste en formar dos
rangos de valores de acuerdo al valor de un atributo, que pueden tomarse como simbólicos. Por ejemplo,
si en un día hubo 100ml de lluvia, pueden crearse los intervalos [0,100) y [100, +∝) y el cálculo de la
entropía se realiza como si los dos intervalos fueran los dos valores simbólicos que puede tomar el
atributo.
Existen varias razones para la poda de los árboles generados por los métodos de TDIDT [Michalski y
otros, 1998]. Entre ellas podemos nombrar la sobregeneralización, la evaluación de atributos poco
importantes o significativos, y el gran tamaño del árbol obtenido. En el primer caso, un árbol puede haber
sido construido a partir de ejemplos con ruido, con lo cual algunas ramas del árbol pueden ser engañosas.
En cuanto a la evaluación de atributos no relevantes, deben podarse ya que sólo agregan niveles en el
árbol y no contribuyen a la ganancia de información. Por último, si el árbol obtenido es demasiado
grande, se dificulta la interpretación por parte del usuario, con lo cual hubiera sido lo mismo utilizar un
método de caja negra.
Existen dos enfoques para podar los árboles: la pre-poda (preprunning) y la post-poda (postprunning). En
el primer caso se detiene el crecimiento del árbol cuando la ganancia de información producida al dividir
un conjunto no supera un umbral determinado. En la post-poda se podan algunas ramas una vez que se ha
terminado de construir el árbol.
El primer enfoque, conocido como pre-poda, tiene la atracción de que no se pierde tiempo en construir
una estructura que luego será simplificada en el árbol final. El método típico en estos casos es buscar la
mejor manera de partir el subconjunto y evaluar la partición desde el punto de vista estadístico mediante
la teoría de la ganancia de información, reducción de errores, etc. Si esta evaluación es menor que un
límite predeterminado, la división se descarta y el árbol para el subconjunto es simplemente la hoja más
apropiada. Sin embargo, este tipo de método tiene la contra de que no es fácil detener un particionamiento
en el momento adecuado, un límite muy alto puede terminar con la partición antes de que los beneficios
de particiones subsiguientes parezcan evidentes, mientras que un límite demasiado bajo resulta en una
simplificación demasiado leve.
El segundo enfoque, es entonces, el utilizado por el ID3 y el C4.5. Una vez construido el árbol se procede
a su simplificación según los criterios propios de cada uno de los algoritmos.
El fin último de los sistemas de aprendizaje es aprender una “teoría” del dominio de los ejemplos, una
teoría que es predictiva en el sentido de que es capaz de predecir la clase de nuevos instancias. Al hablar
de teorías podemos estar refiriéndonos a árboles o reglas de decisión entre otros.
Existe un principio de la ciencia conocido como Afeitadora de Occam (Occam’s Razor) [Mitchell,
2000a], que determina que cuando todas las condiciones son iguales, se prefieren las teorías simples. Es
decir, la mejor teoría científica es la que explica todos los hechos y tiene el menor tamaño. Como Einstein
sostuvo: “Todo debe hacerse lo más simple posible, pero no más simple que eso”. ¿Cómo aplicamos la
Afeitadora de Occam al aprendizaje automático? En el caso de estos sistemas, todas las teorías generadas
contienen errores, podemos decir que estos errores son como las excepciones a la misma. Entonces, para
asegurarnos que todas las condiciones sean iguales, debemos incluir las excepciones en la teoría.
- 32 -
CENTRO DE INGENIERÍA DEL SOFTWARE E INGENIERÍA DEL CONOCIMIENTO
6
! " # $% &'(
&
') * +,-. .- -./ / . ." 0 1 2 3
4 10
))555 3 )1
El Principio de Longitud de Descripción Mínima (MDL) ([Quinlan, 1993d], [Mitchell, 2000b], [Quinlan y
Cameron-Jones, 1995], [Quinlan, 1995], [Joachims y otros, 1995]) sostiene que la mejor teoría para un
conjunto de datos es aquella que minimiza el tamaño de la teoría y la cantidad de información necesaria
para especificar las excepciones. Desde el punto de vista del Aprendizaje Automático esto significa que
dado un conjunto de instancias, un sistema de aprendizaje infiere una teoría a partir de ellas. Supongamos
una analogía con el campo de las comunicaciones: la teoría con las excepciones debe ser transmitida por
un canal perfecto. El MDL sostiene que la mejor generalización es la que requiere la menor cantidad de
bits para comunicar la generalización junto con los ejemplos a partir de la cual fue generada. Esto evita las
teorías que satisfacen los datos al extremo sobreajuste, ya que los ejemplos se transmiten también, y las
teorías demasiado extensas serán penalizadas. Por otro lado, también se puede transmitir la teoría nula que
no ayuda en lo más mínimo al transmitir los ejemplos. Entonces, pueden transmitirse tanto las teorías
simples como aquellas muy complejas y el MDL provee una forma de medir la performance de los
algoritmos basándose en los datos de entrenamiento únicamente. Esta parece ser la solución ideal al
problema de medir la performance.
Veamos cómo aplicamos el principio MDL. Supongamos que un sistema de aprendizaje genera una teoría
T, basada en un conjunto de entrenamiento E, y requiere una cierta cantidad de bits L[T] para codificar la
teoría. Dada la teoría, el conjunto de entrenamiento puede codificarse en una cantidad L[E/T] de bits.
L[E/T] está dada por la función de ganancia de información sumando todos los miembros del conjunto de
entrenamiento. La longitud de descripción total de la teoría es L[E]+L[E/T]. El principio MDL
recomienda la teoría T que minimiza esta suma.
Cuando hablamos de cómo elegir el “mejor” atributo en cada partición de los datos para construir un árbol
de decisión según el método de divide y reinarás, dijimos que podíamos utilizar la entropía tal como lo
hace el ID3. No obstante, la entropía no es la única medida que podemos utilizar. Existen medidas
alternativas que también nos dan una idea del éxito de cada atributo para particionar los datos. Vamos a
ver una de ellas, la función de pérdida cuadrática.
Dada una instancia con k clases posibles a la que puede pertenecer, el sistema aprendiz devuelve un vector
de probabilidades p1, p2, .....,pk de las clases de la instancia. Es decir, pi indica la probabilidad que tiene la
instancia de pertenecer a la clase i. Con lo cual, los elementos del vector suman 1.
El resultado verdadero de la clasificación de la instancia será una de las clases posibles, entonces, si lo
expresamos en un vector a1, a2, .....,ak donde ai=1 si el elemento es de clase i y es 0 en caso contrario.
Entonces, utilizamos la siguiente función para evaluar la pérdida de información según cada atributo:
Ejemplo
(p − a j ) = 1 + 2 pi +
k k
2 2
j pj
j =1 j =1
Cuando explicamos el método de Hunt, consideramos que todos los resultados de todas las pruebas para
todos los casos eran conocidos. Dividimos el conjunto T de datos de entrenamiento en los subconjuntos
- 33 -
CENTRO DE INGENIERÍA DEL SOFTWARE E INGENIERÍA DEL CONOCIMIENTO
6
! " # $% &'(
&
') * +,-. .- -./ / . ." 0 1 2 3
4 10
))555 3 )1
{Ti} según los resultados de una prueba en particular, y, una vez construido el árbol, clasificamos un caso
tomando la rama correspondiente al resultado de la prueba de cada nodo de decisión. Como cada prueba
se basa en un único atributo, el resultado de una prueba no puede determinarse si no se conoce el valor del
atributo.
¿Qué pasa cuando los datos están incompletos como ocurre generalmente con cualquier conjunto de datos
de la vida real? Podemos tomar dos caminos posibles ante los datos incompletos: descartar una proporción
importante de los datos por incompletos y declarar algunos casos como inclasificables, o adaptar los
algoritmos para poder trabajar con valores de atributos faltantes. En la mayoría de los casos, la primera
opción es inaceptable. Para poder aplicar la segunda opción, hay tres cuestiones importantes que deben ser
tenidas en cuenta:
Selección de una prueba en la cual la partición del conjunto de entrenamiento se realiza en base a un
criterio heurístico como ser la ganancia o la proporción de ganancia. Si dos pruebas distintas utilizan
atributos con distinta cantidad de valores desconocidos, ¿cómo debe tenerse esto en cuenta al medir su
importancia relativa?
Una vez que una prueba ha sido seleccionada, los casos de entrenamiento con valores desconocidos para
los atributos relevantes no pueden ser asociados con una respuesta particular de la prueba, y, por lo tanto,
no pueden asignarse a un subconjunto {Ti}. ¿Cómo deben tratarse estos casos durante la partición?
Cuando el árbol de decisión se utiliza para clasificar un caso nuevo, ¿cómo debe proceder el sistema al
encontrarse con un valor de atributo desconocido para el nodo de decisión que está tratando de evaluar?
Varios autores han tratado de resolver estos problemas, generalmente rellenando los valores desconocidos
con los valores más frecuentes. En un estudio realizado por Quinlan, [Quinlan,1989], se comparan las
soluciones más comunes a este problema. El autor llega a la conclusión general de que existen varios
enfoques que son notablemente inferiores, pero no existe ningún enfoque que sea claramente superior. A
continuación se presenta un resumen del estudio.
Todos los enfoques descriptos a continuación fueron implementados como variantes de un programa que
construye un árbol de decisión utilizando la proporción de ganancia [Quinlan, 1989]. Los árboles
producidos no fueron podados. Varios enfoques para solucionar los tres problemas fueron explorados.
Cada uno de ellos tiene una letra identificatoria, tal que una combinación de letras implica una
combinación de métodos.
- 34 -
CENTRO DE INGENIERÍA DEL SOFTWARE E INGENIERÍA DEL CONOCIMIENTO
6
! " # $% &'(
&
') * +,-. .- -./ / . ." 0 1 2 3
4 10
))555 3 )1
I- Ignorar el caso
S- Determinar el valor de A utilizando el método de Shapiro y asignarlo al subconjunto
correspondiente.
C- Tratar el caso como si tuviera el valor más común de A.
P- Asignar el caso a uno de los subconjuntos con probabilidad proporcional al número
de casos con valores conocidos en cada subconjunto.
F- Asignar una fracción del caso a cada subconjunto utilizando las proporciones
explicadas en el inciso anterior.
A- Incluir el caso en todos los subconjuntos
U- Desarrollar una rama separada para los casos de valores desconocidos de A.
Al clasificar un caso nuevo con un valor desconocido del atributo A que debe ser evaluado.
Valores desconocidos al particionar: los resultados de las pruebas revelan una clara superioridad del RFF
(asignar casos fraccionales a los subconjuntos) y una clara desventaja del RIF (ignorar los casos de
entrenamiento con valores desconocidos).
Valores desconocidos al clasificar: la estrategia de parar ante los valores desconocidos dio muy malos
resultados, mientras que todos las otras estrategias dieron resultados similares
Valores desconocidos al seleccionar las pruebas: ignorar los valores desconocidos dio resultados peores
que reducir la ganancia o completar los valores, pero no existió un método claramente superior entre estos
dos últimos.
Cuando el conjunto de entrenamiento se parte ignorando los casos con valores desconocidos para el
atributo probado, se obtienen resultados pobres (esta es la forma en que el ID3 realiza las particiones). El
enfoque de dividir los casos entre los subconjuntos resultó muy bueno.
- 35 -
CENTRO DE INGENIERÍA DEL SOFTWARE E INGENIERÍA DEL CONOCIMIENTO
6
! " # $% &'(
&
') * +,-. .- -./ / . ." 0 1 2 3
4 10
))555 3 )1
Durante la clasificación, tratar de determinar el resultado más probable de una prueba, funciona bien en
algunos dominios (aquellos en los cuales la sustitución puede realizarse con confianza), pero muy mal en
otros. La combinación de todos los resultados posibles es más resilente, dando una mayor certeza en la
clasificación general.
Los árboles de decisión demasiado grandes son difíciles de entender porque cada nodo debe ser
interpretado dentro del contexto fijado por las ramas anteriores. Cada prueba tiene sentido, solamente, si
se analiza junto con los resultados de las pruebas previas. Cada prueba en el árbol tiene un contexto único
que es crucial a la hora de entenderla y puede ser muy difícil comprender un árbol en el cual el contexto
cambia demasiado seguido al recorrerlo. Además, la estructura de árbol puede hacer que un concepto en
particular quede fragmentado, lo cual hace que el árbol sea aún más difícil de entender. Existen dos
maneras de solucionar estos problemas: definir nuevos atributos que estén relacionados con las tareas o
cambiar de método de representación, por ejemplo, a reglas de decisión.
En cualquier árbol de decisión, las condiciones que deben satisfacerse cuando un caso se clasifica por una
hoja pueden encontrarse analizando los resultados de las pruebas en el camino recorrido desde la raíz. Es
más, si el camino fuese transformado directamente en una regla de producción, dicha regla podría ser
expresada como una conjunción de todas las condiciones que deben ser satisfechas para llegar a la hoja.
Consecuentemente, todas los antecedentes de las reglas generadas de esta manera serían mutuamente
excluyentes y exhaustivos.
Diremos que una regla cubre un caso si el caso satisface todas las condiciones en el antecedente de la
misma.
En esta sección se presentarán un árbol y un conjunto de reglas de decisión obtenidos utilizando el ID3,
para ejemplificar su aplicación. Supongamos que queremos analizar cuáles días son convenientes para
jugar al tenis basándonos en la humedad, el viento y el estado del tiempo. Los datos que se utilizarán se
presentan en la siguiente tabla:
- 36 -
CENTRO DE INGENIERÍA DEL SOFTWARE E INGENIERÍA DEL CONOCIMIENTO
6
! " # $% &'(
&
') * +,-. .- -./ / . ." 0 1 2 3
4 10
))555 3 )1
En el caso de este ejemplo, los árboles y las reglas obtenidos utilizando la ganancia y la proporción de
ganancia son iguales. Se mostrarán ambos ejemplos juntos con fines prácticos.
A partir de todos los datos disponibles, el ID3 analiza todas las divisiones posibles según los distintos
atributos y calcula la ganancia y/o la proporción de ganancia. Comencemos analizando el atributo Estado.
Para calcular la ganancia y, por lo tanto, también la proporción de ganancia, es necesario calcular la
entropía del conjunto. Entonces,
10 10 4 4
H ( S ) = − p Si log 2 p Si − p No log 2 p No = − log 2 − log 2 = 0.86312bits
14 14 14 14
Calculamos ahora la entropía que tendrían los conjuntos resultantes de la división de datos según este
atributo.
2
5 1 1 4 4 4 0 0 4 4 5 3 3 2 2
H ( S , Estado) = P (S i ) ⋅ H (S i ) = − log 2 − log 2 + − log 2 − log 2 + − log 2 − log 2
i =1 14 5 5 5 5 14 4 4 4 4 14 5 5 5 5
5 4 5
H ( S , Estado) = × 0.7219 + × 0 + 0.97095 = 0.6046bits
14 14 14
- 37 -
CENTRO DE INGENIERÍA DEL SOFTWARE E INGENIERÍA DEL CONOCIMIENTO
6
! " # $% &'(
&
') * +,-. .- -./ / . ." 0 1 2 3
4 10
))555 3 )1
Ahora calculamos la ganancia resultante de dividir al subconjunto según el atributo Estado, tendremos:
Para calcular la proporción de ganancia debemos conocer primero la información de la división que se
calcula como:
n Si Si 5 5 4 4 5 5
I _ división(S ) = − × log 2 =− × log 2 − × log 2 − × log 2 = 1.577bits
i =1 S S 14 14 14 14 14 14
Ganancia( S )
proporción _ de _ ganancia( S ) = = 0.491042bits
I _ división( S )
De la misma manera en que calculamos la ganancia y la proporción de ganancia para el caso anterior,
calculamos para el atributo Humedad los siguientes valores:
Una vez que hemos calculado las ganancias y proporciones de ganancia para todos los atributos
disponibles, debemos elegir el atributo según el cual dividiremos a este conjunto de datos. Recordemos
que tanto en el caso de la ganancia como en el de la proporción de ganancia, el mejor atributo para la
división es aquel que la maximiza. En este ejemplo, la división según el atributo Estado es la que mayor
ganancia y proporción de ganancia ofrece. Esto significa que el nodo raíz del árbol será un nodo que
evalúa el atributo Estado. La figura 8 esquematiza la construcción de un árbol de decisión utilizando el
ID3 para el conjunto de datos en cuestión. La figura 9 presenta el árbol de decisión obtenido.
- 38 -
CENTRO DE INGENIERÍA DEL SOFTWARE E INGENIERÍA DEL CONOCIMIENTO
6
! " # $% &'(
&
') * +,-. .- -./ / . ." 0 1 2 3
4 10
))555 3 )1
Estado Humedad Viento JuegoTenis Estado Humedad Viento JuegoTenis Estado Humedad Viento JuegoTenis
Lluvia Alta Leve Si Nublado Alta Leve Si Soleado Alta Leve No
Lluvia Normal Leve Si Nublado Normal Fuerte Si Soleado Alta Fuerte No
Lluvia Normal Fuerte No Nublado Alta Fuerte Si Soleado Alta Leve No
Lluvia Normal Leve Si Nublado Normal Leve Si Soleado Normal Leve Si
Lluvia Alta Fuerte Si SI Soleado Normal Fuerte Si
Viento HUMEDAD
Ganancia=0.170951 Humedad
Proporción de ganancia =0.358525 HUMEDAD
Ganancia=0.970951
VIENTO Proporción de ganancai=2.03632
Ganancia=0.321928
Alta VIENTO
Proporción de ganancia =0.675162 Normal
Ganancia=0.0199731
Proporción de ganancia=0.0418885
Leve
Normal
Alta
- 39 -
CENTRO DE INGENIERÍA DEL SOFTWARE E INGENIERÍA DEL CONOCIMIENTO
6
! " # $% &'(
&
') * +,-. .- -./ / . ." 0 1 2 3
4 10
))555 3 )1
Estado
Lluvia Soleado
Nublado
Viento Humedad
SI
SI NO SI
Humedad
Normal
Alta
SI NO
Como se explicó anteriormente para pasar un árbol de decisión a reglas de decisión, el ID3 lo recorre en
preorden y cada vez que llega a una hoja, escribe la regla que tiene como consecuente el valor de la
misma, y como antecedente, la conjunción de las pruebas de valor especificados en todos los nodos
recorridos desde la raíz para llegar a dicha hoja. Analicemos el pasaje del árbol de la figura 9 a reglas de
decisión.
El recorrido del árbol comienza por la raíz Estado, continúa por los nodos Viento y Humedad hasta llegar
a la hoja “SI”. La regla generada para este recorrido será:
Regla 0
SI Estado = Lluvia
Y Viento = Fuerte
Y Humedad = Alta
ENTONCES JuegoTenis = Si
Si seguimos el recorrido preorden, llegamos a continuación a la hoja “NO”, obteniendo en este caso la
siguiente regla:
- 40 -
CENTRO DE INGENIERÍA DEL SOFTWARE E INGENIERÍA DEL CONOCIMIENTO
6
! " # $% &'(
&
') * +,-. .- -./ / . ." 0 1 2 3
4 10
))555 3 )1
Regla 1
SI Estado = Lluvia
Y Viento = Fuerte
Y Humedad = Normal
ENTONCES JuegoTenis = No
Recorriendo en este sentido el árbol, el resto de las reglas obtenidas se muestran a continuación.
Regla 2
SI Estado = Lluvia
Y Viento = Leve
ENTONCES JuegoTenis = Si
Regla 3
SI Estado = Nublado
ENTONCES JuegoTenis = Si
Regla 4
SI Estado = Soleado
Y Humedad = Alta
ENTONCES JuegoTenis = No
Regla 5
SI Estado = Soleado
Y Humedad = Normal
ENTONCES JuegoTenis = Si
La evaluación es la clave del progreso en la minería de datos. Existen varias maneras de inferir estructuras
a partir de los datos; para determinar cuál es el mejor método para cada conjunto de datos, debe existir
una manera de evaluar los métodos de aprendizaje y compararlos entre sí.
Si se cuenta con una gran cantidad de datos, la evaluación no es problema: se genera un modelo a partir de
un conjunto grande de entrenamiento y, luego, se lo prueba con otro gran conjunto de datos. Sin embargo,
aunque la minería de datos implica por su definición trabajar con grandes cantidades de datos, los
conjuntos de datos de buena calidad son pocos. Los datos de entrenamiento deben ser cuidadosamente
generados y analizados por expertos humanos, un recurso que escasea.
- 41 -
CENTRO DE INGENIERÍA DEL SOFTWARE E INGENIERÍA DEL CONOCIMIENTO
6
! " # $% &'(
&
') * +,-. .- -./ / . ." 0 1 2 3
4 10
))555 3 )1
Para los problemas de clasificación, como los de la familia TDIDT, es natural medir la performance del
clasificador con una proporción de error. El clasificador predice la clase de cada instancia: si la
predicción es correcta, estamos ante un éxito; si no lo es, estamos ante un error. La proporción de error,
entonces, es simplemente la cantidad de errores sobre la cantidad total de instancias clasificadas.
Por supuesto, lo que nos interesa es estimar la proporción de errores sobre los nuevos datos y no sobre los
datos de entrenamiento, los cuales ya están clasificados. ¿Podemos decir que la proporción de error
estimada a partir de los datos de entrenamiento es correcta para los datos futuros? No, si los datos sobre
los que se estima el error fueron utilizados al generar el clasificador. La proporción de error sobre los
datos de entrenamiento no es un buen indicador de los errores futuros, dado que el clasificador se generó a
partir de estos datos, la proporción de error es subjetiva y totalmente optimista. La proporción de error
generada a partir de los datos de entrenamiento se conoce como error de sustitución, ya que Se calcula al
sustituir las instancias en un clasificador que fue construido a partir de ellas. A pesar de que no es un buen
estimador para la predicción de futuros errores, es muy útil conocerlo.
Para predecir la performance del clasificador en los datos futuros, necesitamos evaluar la proporción de
error sobre datos no utilizados durante la construcción del mismo. El conjunto independiente de datos
utilizado con este propósito es el conjunto de prueba. Es esencial que el conjunto de prueba no haya sido
utilizado para nada en la generación del clasificador. Entonces, aquellos esquemas en que la construcción
- 42 -
CENTRO DE INGENIERÍA DEL SOFTWARE E INGENIERÍA DEL CONOCIMIENTO
6
! " # $% &'(
&
') * +,-. .- -./ / . ." 0 1 2 3
4 10
))555 3 )1
se realiza en dos etapas o requieren probar el clasificador, trabajan con dos conjuntos de datos: el de
entrenamiento y el de prueba.
Podemos decir que a mayor cantidad de datos, mejor clasificador y mejor estimador de error. El problema
está cuando hay una pequeña cantidad de datos de entrenamiento. En muchas situaciones, los datos de
entrenamiento y prueba deben clasificarse manualmente. Debemos encontrar la forma de encontrar un
buen estimador de error, aún cuando los datos de prueba escasean. A continuación, se explican varios
métodos para evaluar los algoritmos de clasificación.
Cuando existe una cantidad limitada de datos de entrenamiento y prueba, puede aplicarse el método de
retención (holdout) para estimar la proporción de error [Witten y Frank, 2000]. Este método reserva una
cierta cantidad de datos al azar para prueba y utiliza el resto para el entrenamiento. En general, se reserva
un tercio para prueba y se utilizan dos tercios como datos de entrenamiento.
Por supuesto, siempre cabe la posibilidad de que los datos utilizados para entrenamiento y prueba no sean
representativos. En general, no se puede afirmar si un conjunto es representativo o no, pero existe una
prueba muy simple que vale la pena realizar: cada una de las clases del conjunto total de datos debería
estar representada en la misma proporción en los datos de entrenamiento y prueba, y esta proporción
debería ser similar a la que se presentará cuando se aplique el modelo generado al caso real. Supongamos
que todos los ejemplos de una clase determinada no entran en el conjunto de entrenamiento, el
clasificador generado será incorrecto. Al trabajar con la hipótesis del Universo Cerrado, no podemos
pretender que clasifique correctamente los miembros de una clase que no sabía que existía. Si en el
conjunto de prueba hay datos de esa clase, la proporción de error obtenida será muy grande. Entonces, al
dividir al azar los datos preclasificados entre los conjuntos de entrenamiento y prueba, debemos garantizar
que cada clase esté correctamente representada tanto en los datos de prueba como en los de
entrenamiento. Este procedimiento se conoce como estratificación (stratification), y podemos hablar de
una retención estratificada.
Una manera de evitar la tendencia introducida por los datos retenidos, es repetir el proceso completo
(entrenamiento y prueba) varias veces con distintas divisiones de los datos. En cada iteración, una misma
proporción de los datos se retiene al azar para las pruebas y el resto se utiliza para el entrenamiento. Las
proporciones de error obtenidas en las múltiples iteraciones se promedian para obtener una proporción de
error general. Este método se conoce como retención repetida (repeated holdout).
En un procedimiento de retención general podríamos elegir cambiar los roles de los datos de
entrenamiento y de prueba entre sí. No obstante, esto es factible únicamente si trabajamos con una
proporción 50:50, lo cual no es ideal ya que conviene utilizar más del 50% de los datos para el
entrenamiento. Para solucionar este problema utilizamos una variación del método estadístico de
validación cruzada (cross-validation).
En la validación cruzada, se determina con anterioridad una cierta cantidad de pliegos o particiones de los
datos. Supongamos que utilizamos tres, es decir, los datos se dividen al azar en tres particiones de
aproximadamente la misma cantidad, y cada una a su turno se utiliza para prueba mientras que las otras
dos se utilizan para entrenamiento. Por lo tanto, utilizamos un tercio para prueba y dos tercios para
entrenamiento, y repetimos el procedimiento tres veces. Las tres proporciones de error obtenidas se
promedian para llegar a una proporción de error general. Este procedimiento conocido como validación
- 43 -
CENTRO DE INGENIERÍA DEL SOFTWARE E INGENIERÍA DEL CONOCIMIENTO
6
! " # $% &'(
&
') * +,-. .- -./ / . ." 0 1 2 3
4 10
))555 3 )1
cruzada de tres pliegues (threefold cross-validation), puede trabajar con datos estratificados, en cuyo caso
sería validación cruzada de tres pliegues estratificada.
Podemos generalizar el método para llegar a una validación cruzada de n pliegues, estratificada o no. El
caso más utilizado para predecir la proporción de error de una técnica de aprendizaje es utilizar una
validación cruzada de diez pliegues. Además, las pruebas han demostrado que el uso de la estratificación
mejora los resultados levemente [Witten y Frank, 2000]. Utilizar una validación cruzada de diez pliegues
puede no ser suficiente para obtener un buen estimador de la proporción de error. Distintas validaciones
cruzadas de diez pliegues dan distintos resultados dado que la división en pliegues se realiza al azar. La
estratificación reduce la variación entre los resultados pero no la elimina. Si se quiere obtener una
estimación de la proporción de error muy precisa, generalmente, se repite la validación cruzada de diez
pliegues diez veces y se promedian los resultados. Esto implica invocar al algoritmo de aprendizaje cien
veces con conjuntos de datos del tamaño del 90% del conjunto original. Obtener una buena medida de la
performance es un método que consume grandes recursos computacionales.
La validación cruzada de diez pliegues es una manera normalmente utilizada para estimar la proporción
de error, pero no es la única. Existen otras técnicas bastante populares como la de dejar-uno-afuera. Esta
técnica es simplemente una validación cruzada de n pliegues donde n es el número de instancias del
conjunto de datos. Por turnos, cada una de las instancias se deja afuera y se entrena el clasificador con el
resto de las instancias. Se lo evalúa según el resultado de la clasificación de la instancia que había
quedado afuera. Los resultados de las n evaluaciones luego se promedian para determinar la proporción de
error.
Este procedimiento es atractivo por dos razones [Witten y Frank, 2000]. Primero, se utiliza la mayor
cantidad de ejemplos posibles para el entrenamiento, lo cual se presume incrementa la posibilidad de que
el clasificador sea correcto. Segundo, el procedimiento es determinístico: no se parten los datos al azar.
Además, no tiene sentido repetir el procedimiento diez ni cien veces, ya que siempre se obtendrá el mismo
resultado. Debe tenerse en cuenta que dado el alto costo computacional de aplicar este método, no es
factible utilizarlo para grandes conjunto de datos. Sin embargo, este método es el mejor para pequeños
conjuntos de datos porque, en cierta medida, evalúa todas las posibilidades.
7.2.3. Bootstrap
Este método está basado en el procedimiento estadístico de obtener muestras con sustitución. En los
métodos anteriores, cuando se tomaba una muestra de los datos de entrenamiento o de prueba, se lo hacía
sin reemplazo. Es decir, la misma instancia, una vez seleccionada, no podía seleccionarse nuevamente. La
mayoría de las técnicas de aprendizaje pueden, no obstante, utilizar la misma instancia dos veces, y el
hecho de repetirse genera una diferencia.
La idea del bootstrap es tomar muestras del conjunto de datos con remplazo para formar un conjunto de
entrenamiento. Para ello, un conjunto de n instancias se muestrea n veces, con reemplazo, y se obtiene
otro conjunto de datos de n instancias. Como algunas instancias del segundo conjunto estarán repetidas,
deben existir algunas instancias del conjunto original que no fueron seleccionadas. Utilizaremos estas
instancias para el conjunto de prueba.
- 44 -
CENTRO DE INGENIERÍA DEL SOFTWARE E INGENIERÍA DEL CONOCIMIENTO
6
! " # $% &'(
&
') * +,-. .- -./ / . ." 0 1 2 3
4 10
))555 3 )1
La probabilidad de que una instancia particular sea elegida para el conjunto de entrenamiento es de 1/n, y,
por lo tanto, hay un 1-1/n de probabilidad de que no sea elegida. Si multiplicamos esto según las n
oportunidades de ser elegida, obtenemos la siguiente probabilidad de que no sea escogida:
n
1
1- = e -1 = 0.368
n
El error estimado sobre el conjunto de prueba será pesimista porque el clasificador tiene en cuenta sólo el
63% de los datos del conjunto original, lo cual es poco frente al 90% de la validación cruzada de diez
pliegues. Para compensar el error del conjunto de entrenamiento se combina con el error en el conjunto de
prueba de la siguiente manera:
Luego, todo el proceso de bootstrap se repite varias veces, y todos los estimadores de error se promedian.
Hasta ahora no hemos considerado el costo de tomar malas decisiones y malas clasificaciones. La
optimización de las proporciones de clasificación sin considerar el costo de los errores, generalmente lleva
a resultados extraños. Existe un ejemplo famoso de un sistema de inducción utilizado para predecir los
períodos fértiles de las vacas en un tambo. Las vacas se controlaron con un identificador electrónico en la
oreja, y otros atributos como el volumen de leche y su composición química. En las primeras pruebas del
sistema de aprendizaje automático, los resultados afirmaban que las vacas nunca estaban en el período
fértil. El período menstrual de las vacas es similar al de los humanos, con lo cual la regla generada era
correcta el 97% de las veces, un grado de precisión impresionante para el dominio de la agricultura. Sin
embargo, lo que se buscaba eran reglas que predijeran cuando una vaca estaba fértil y no cuando no lo
estaba, con lo cual, los costos de los dos casos de error son distintos. La evaluación por exactitud en la
clasificación asume costos iguales por naturaleza.
Si los costos son conocidos, pueden incluirse en el análisis de los métodos. Restringiremos nuestro
análisis a los casos que tienen clases sí y no únicamente. Los cuatro resultados posibles de una predicción
pueden listarse en una matriz de confusión como la que se muestra a continuación.
Clase predicha
Sí No
Clase Sí Verdadero Falso Negativo
verdadera positivo
No Falso Positivo Verdadero
Negativo
- 45 -