Anda di halaman 1dari 34

Minera de datos

Este informe tratar de reflejar los resultados obtenidos y las tareas realizadas por cada
miembro del equipo. Nuestro trabajo se engloba dentro del tercer tipo de trabajos
posibles. Se trata de una aplicacin directa de algoritmos de inteligencia artificial para a
partir de un nmero elevado de datos sacar resultados (data mining) de ellos.

El software que emplearemos ser Weka (Waikato Enviroment for Knowledge Analysis),
una biblioteca de clases de aprendizaje en Java, muy sencilla de utilizar, y desarrollada
en la universidad de Waikato, Nueva Zelanda. Funciona en Windows, Linux y
Macintosh.

En este trabajo se modelarn dos problemas, uno de tipo nominal y otro de tipo
numrico, para as poder comprobar los diferentes campos de aplicacin de los
algoritmos de que se dispone en el software a utilizar. Con ello veremos tambin que
determinados tipos de datos no permiten la aplicacin de unos algoritmos o que se
obtienen resultados sin sentido.

Cuando tratamos datos numricos debemos tener cuidado en dos aspectos esenciales:

Pgina 1 de 34
- los atributos numricos estn discretizados, el rango del atributo est
dividido en un conjunto de intervalos. Las instancias se ordenan segn el
valor de los atributos
- las fronteras se establecen donde la clase (la mayora) cambia, de forma que
se minimiza el error global.
- Hay que tener cuidado con el sobreajuste. El proceso de discretizacin es
muy sensible al ruido y una instancia con una clase equivocada puede
resultar en un grupo para esa muestra sola. La solucin ms sencilla es forzar
un nmero mnimo de instancias por clase en cada intervalo.
- Normalmente se supone que los atributos tienen un distribucin de
probabilidad gaussiana.
- El mtodo estndar de tratamiento es la divisin en grupos. El problema es
que a diferencia de los datos nominales, cada atributo presenta muchos
puntos posibles de divisin. La solucin es evaluar la ganancia de
informacin u otra variable para cada posible punto de divisin y elegir el
mejor de ellos. Sin embargo exige mayor carga computacional.

En este trabajo, para el caso nominal, estudiaremos un conjunto de datos sobre


animales, y su clasificacin zoolgica nos ayudar a determinar de qu grupo
(mamferos, reptiles, etc) son otros animales. En el caso numrico, a partir de datos
sobre coches seremos capaces de dar una buena aproximacin a su silueta.

El formato de los datos en Weka es como sigue: en un mismo archivo se especifican los
atributos y los datos. Los valores en la tabla de datos estn separados por comas y los
atributos pueden tomar valores nominales o numricos.

Los valores nominales se separan por comas y se colocan entre llaves. Los atributos
numricos se declaran real. Los datos deben aparecer separados por comas. Los datos
faltantes o desconocidos se escriben con interrogacin.

El archivo debe comenzar con @relation, seguido de algn nombre. A continuacin


debern aparecer los atributos: valor(es), los cuales son indicados con @attribute. Los
datos se escriben despus del delimitador @data.

Una de las formas de usar Weka es aplicar un mtodo de aprendizaje (clasificador) a un


conjunto de datos y analizar su salida para extraer informacin sobre los datos. Otra
forma es aplicar varios clasificadores y comparar su funcionamiento para elegir uno
para prediccin. En nuestro caso sta ser la estrategia a seguir. En primer lugar
veremos lo bien o mal que clasifica cada algoritmo disponible y a continuacin haremos
una validacin cruzada para ver la calidad del clasificador frente a otros.

1.- Descripcin de los posibles algoritmos a utilizar


De forma breve describiremos aqu los posibles algoritmos a utilizar segn los datos
sean de tipo nominal o numrico. Una vez hecho esto, elegiremos dos o tres algoritmos

Pgina 2 de 34
a aplicar en cada caso y haremos una descripcin ms detallada de la estructura de
dichos algoritmos, fiabilidad de los mismos, por qu se han elegido frente a otros, etc.

Weka dispone de una gran variedad de algoritmos para clasificar. En funcin del tipo de
datos de entrada podemos utilizar:

- Algoritmos para datos nominales

o rboles de decisin de un nivel (decisin stump)


o Clasificador 1R (OneR)
o Tabla de decisin
o ID3
o C4.5
o PART

- Algoritmos para datos numricos


o rboles de decisin de un nivel
o Tabla de decisin
o Regresin lineal
o M5

Aplicaremos los siguientes algoritmos a los datos sobre los que vamos a trabajar:
- datos nominales
o rboles de decisin de un nivel
o clasificador 1R
o C4.5
- datos numricos
o rboles de decisin de un nivel
o tabla de decisin

Se han elegido estos algoritmos por ser quiz los ms representativos. Hemos sometido
a estudio los datos con todos los algoritmos inicialmente propuestos y, como veremos,
algunos consiguen excelentes soluciones mientras que otros (como los rboles de
decisin) dan peores aproximaciones a priori. Sin embargo presentan la gran ventaja de
que se pueden usar para cualquier tipo de datos, de ah su utilizacin aqu. En cuanto a
los otros algoritmos, veremos que se basan en principios parecidos. De hecho aqu
estudiaremos el ID3 aunque por el tipo de datos disponibles deberemos usar su
evolucin, el C4.5, en la prctica. Es uno de los algoritmos ms utilizados en la prctica,
y por ello resulta interesante su estudio aqu.

A continuacin desarrollaremos cada uno de los posibles algoritmos a utilizar. Eso nos
dar ms informacin para decidirnos posteriormente por uno u otro.

- rboles de decisin

Se pueden aplicar a casi todo. Los sistemas de aprendizaje basados en rboles de


decisin son quizs el mtodo ms fcil de utilizar y de entender. Un rbol de decisin
es un conjunto de condiciones organizadas en una estructura jerrquica, de tal manera
que la decisin final a tomar se puede determinar siguiendo las condiciones que se
cumplen desde la raz del rbol hasta alguna de sus hojas. Los rboles de decisin se

Pgina 3 de 34
utilizan desde hace siglos, y son especialmente apropiados para expresar procedimientos
mdicos, legales, comerciales, estratgicos, matemticos, lgicos, etc.

Una de las grandes ventajas de los rboles de decisin es que, en su forma ms general,
las opciones posibles a partir de una determinada condicin son excluyentes. Esto
permite analizar una situacin y, siguiendo el rbol de decisin apropiadamente, llegar a
una sola accin o decisin a tomar. Estos algoritmos se llaman algoritmos de particin
o algoritmos de divide y vencers. Otra caracterstica importante de los primeros
algoritmos de aprendizaje de rboles de decisin es que una vez elegida la particin
dicha particin no se poda cambiar, aunque ms tarde se pensara que haba sido una
mala eleccin. Por tanto, uno de los aspectos ms importantes en los sistemas de
aprendizaje de rboles de decisin es el denominado criterio de particin, ya que una
mala eleccin de la particin (especialmente en las partes superiores del rbol) generar
un peor rbol.

El algoritmo bsico de los rboles de decisin es:

ALGORITMO Particin(N:nodo, E:cjto. de ejemplos)


SI todos los ejemplos E son de la misma clase c ENTONCES
Asignar la clase c al nodo N.
SALIR; // Esta rama es pura, ya no hay que seguir partiendo. N es hoja.
SI NO:
Particiones := generar posibles particiones.
MejorParticin:= seleccionar la mejor particin segn el criterio de particin.
PARA CADA condicin i de la particin elegida.
Aadir un nodo hijo i a N y asignar los ejemplos consistentes a cada hijo (Ei).
Particin(i, Ei). // Realizar el mismo procedimiento global con cada hijo.
FIN PARA
FIN SI
FIN ALGORITMO

Para clasificar un cjto de ejemplos E, se invoca con la llamada Particin(R,E),


donde R es un nodo raz de un rbol por empezar.

Simplemente, el algoritmo va construyendo el rbol (desde el rbol que slo contiene la


raz) aadiendo particiones y los hijos resultantes de cada particin. Lgicamente, en
cada particin, los ejemplos se van dividiendo entre los hijos. Finalmente, se llega a la
situacin en la que todos los ejemplos que caen en los nodos inferiores son de la misma
clase y esa rama ya no sigue creciendo. La nica condicin que hay que exigir es que las
particiones al menos separen ejemplos en distintos hijos, con lo que la cardinalidad de
los nodos ir disminuyendo a medida que se desciende en el rbol.

Como acabamos de comentar, los dos puntos ms importantes para que el algoritmo
anterior funcione bien son los siguientes:

Particiones a considerar: un conjunto de condiciones exhaustivas y excluyentes.


Cuantas ms particiones permitamos ms expresivos podrn ser los rboles de
decisin generados y, probablemente, ms precisos. No obstante, cuantas ms
particiones elijamos, la complejidad del algoritmo ser mayor. Por tanto,
debemos encontrar un buen compromiso entre expresividad y eficiencia. Debido
a esto, la mayora de algoritmos de aprendizaje de rboles decisin slo
permiten un juego muy limitado de particiones. Por ejemplo, el C4.5 contiene un

Pgina 4 de 34
solo tipo de particin para los atributos nominales y un solo tipo de particin
para los atributos numricos.

Criterio de seleccin de particiones. Incluso con slo los dos tipos de particiones
sencillas vistas, el nmero de particiones posibles en cada caso puede dispararse
(si existen n atributos y m valores posibles para cada atributo, el nmero de
particiones posibles es de nm). Los algoritmos clsicos de aprendizaje de
decisin son voraces, en el sentido de que una vez elegida la particin se
contina hacia abajo la construccin del rbol y no vuelven a plantearse las
particiones ya construidas. Por tanto se debe buscar un criterio que permita
realizar una buena eleccin de la particin que parece ms prometedora y que
esto se haga sin demasiado esfuerzo computacional.

Esto es lo que diferencia fundamentalmente los distintos algoritmos de particin


existentes hasta la fecha, como CART [Breiman et al. 1984], ID3 [Quinlan
1983][Quinlan 1986], C4.5 [Quinlan 1993], ASSISTANT [Cestnik et al. 1987], etc.

En resumen, los rboles de decisin se basan en:


- la aproximacin de divide y vencers produce el rbol
- un nodo implica testar un atributo concreto
- normalmente el atributo se comprara con una constante para su clasificacin.
Tambin puede compararse el valor de dos atributos, o usar una funcin de
uno o ms atributos
- las hojas asignan la clasificacin, el grupo de clasificacin o la distribucin
de probabilidad a las instancias
- las instancias desconocidas van bajando por el rbol

y son la base de los algorimos que aplicaremos en este informe.

- rboles de decisin de un nivel (decisin stump)

En Weka, las prestaciones de los rboles de decisin de un nivel son las siguientes:
- nombre de la clase: weka.classifiers.DecisionStump
- puede manejar instancias ponderadas por pesos
- puede procesar datos categricos
- no puede ser actualizado de forma incremental (soportar aadir nuevos datos
sin reclasificar a los anteriores)
- genera rboles de decisin binarios (de un nivel) para conjuntos de datos con
datos categricos o numricos. Toma un atributo, que considera
representativo, y lo utiliza para clasificar las instancias. Procesa los valores
vacos de atributos extendiendo una tercera rama del tronco, es decir,
tratando los valores missing como un valor diferente del atributo. Est
diseado para ser usado con los mtodos de mejora.

- Clasificador 1R (OneR)

Fue descrito por primera vez por Holte (1993), evaluando 16 hojas de datos (utilizando
validacin cruzada, por lo que los resultados eran representativos para el
comportamiento de otros datos), con un nmero mnimo de instancias de 6 (este nmero
se hall por prueba y error).

Pgina 5 de 34
Es un algoritmo sencillo que sin embargo funciona de forma parecida a complejos
rboles de decisin.
Vamos a ver un sistema muy simple (1R) que es el equivalente a un decision stump.
La idea es hacer reglas que prueban un solo par atributo-valor. Se prueban todos los
pares atributo-valor y se selecciona el que ocasione el menor nmero de errores.

Algoritmo:
Para cada atributo
Para cada valor de cada atributo, crea una regla:
Cuenta cuntas veces ocurre la clase
Encuentra la clase ms frecuente
Asigna esa clase a la regla
Calcula el error de todas las reglas
Selecciona las reglas con el error ms bajo

- Se rompe arbitrariamente los empates.


- Los valores ausentes en 1R se tratan como un nuevo valor y con los atributos
continuos se hace una divisin simple.
- Primero se ordenan los atributos con respecto a la clase (como con rboles de
decisin).
- Se sugieren puntos de particin en cada lugar donde cambia la clase.
- Si existen dos clases diferentes con el mismo valor, se mueve el punto de
particin a un punto intermedio con el siguiente valor hacia arriba o abajo
dependiendo de donde est la clase mayoritaria.
- Un problema ms serio es que el algoritmo tenda a favorecer construir
reglas para cada una de las particiones, lo cual le da una clasificacin
perfecta (pero muy poca prediccin futura). Lo que se hace es que se exige
que cada particin tenga un nmero mnimo de ejemplos de la clase
mayoritaria.
- Cuando hay clases adyacentes con la misma clase mayoritaria, stas se
juntan.

En Weka, las prestaciones del clasificador OneR son las siguientes:


- nombre de la clase: weka.classifiers.OneR
- no puede manejar instancias ponderadas por pesos
- no puede procesar datos categricos
- no puede ser actualizado de forma incremental (soportar aadir nuevos datos
sin reclasificar a los anteriores)
- es el esquema ms sencillo de los planteados aqu. Produce reglas sencillas
basadas en un solo atributo. Tiene un solo parmetro: el nmero mnimo de
instancias que deben ser cubiertas por cada regla generada (6 por defecto).

- ID3 Induction of Decision Trees

Englobado dentro del llamado aprendizaje inductivo y supervisado, ID3 es un algoritmo


de aprendizaje que pretende modelar los datos mediante un rbol, llamado rbol de
decisin. En este rbol los nodos intermedios son atributos de los ejemplos presentados,
las ramas representan valores de dichos atributos y los nodos finales son los valores de
la clase, como ya vimos al hablar de los rboles de decisin binarios. Tanto ste como
su evolucin, el C4.5, pertenecen a la familia de mtodos de induccin TDIDT (Top

Pgina 6 de 34
Down Induction Trees). Ambos generan rboles y reglas de decisin a partir de datos
preclasificados. Para construir los rboles se usa el mtodo de aprendizaje divide y
vencers, como ya hemos dicho.

El ID3 construye rboles de decisin a partir de un conjunto de ejemplos. Estos


ejemplos o tuplas estn constituidos por un conjunto de atributos y un clasificador o
clase. Los dominios de los atributos y de las clases deben ser discretos.

Para elegir qu atributos y en qu orden aparecen en el rbol se utiliza una funcin de


evaluacin: minimizacin de la entropa. Tambin pueden escribirse en forma de reglas
IF THEN.

Su principal aplicacin son los problemas de decisin. Su empleo se centra en los


llamados problemas de clasificacin (diagnstico de enfermedades dados los sntomas,
problemas de malfuncionamiento de equipos, concesin de prstamos, o como en
nuestro caso, clasificacin de un ser en una especie animal dadas unas caractersticas del
mismo).

La funcin de salida presenta valores discretos. Los datos de aprendizaje pueden


contener errores, los datos de aprendizaje pueden contener valores nulos en algn
atributo para algn ejemplo. Mejor si los atributos tienen un dominio de valores
reducido. Una vez aprendido el rbol, se emplea para clasificar nuevos casos. Como
ventajas se puede decir que tiene buenos resultados en un amplio rango de aplicaciones
y la precisin del resultado suele ser alta. Como desventajas hay que decir que los
atributos y las clases deben ser discretos y a veces los rboles son demasiado frondosos,
lo que dificulta su interpretacin.

Algoritmo ID3

Funcin Arbol-Decisin(ejemplos, atributos, default)


Regresa un rbol de decisin
Entradas: ejemplos: conjunto de ejemplos
atributos: conjunto de atributos
default: valor de default para el predicado meta
if ejemplos = vaco then regresa default
else if todos los ejemplos tienen la misma clasificacin
then regresa la clasificacin
else if atributos = vaco then regresa VALOR-MAYORITARIO (ejemplos)
else
Mejor (ESCOGE-ATRIBUTO (atributos, ejemplos)
Arbol nuevo rbol de decisin con Mejor como raz
Para cada valor vi de Mejor do
ejemplosi {ejemplos con Mejor = vi}
subrbol (ARBOL-DECISION (ejemplosi,
atributos - mejor, VALOR-MAYORITARIO (ejemplos))
Aade una rama a rbol con etiqueta vi y subrbol Subrbol
End
return rbol

Este proceso recursivo tiene 4 posibles resultados:

Pgina 7 de 34
1. Si existen ejemplos positivos y negativos, escoge el mejor atributo para
particionarlos.
2. Si todos los atributos restantes son positivos (o negativos), termina y devuelve
True (o False)
3. No quedan ejemplos (no ha sido observado un ejemplo con esa combinacin de
atributos). Devuelve un default en base a la clasificacin mayoritaria de su nodo
padre
4. No hay ms atributos, pero se continua con ejemplos positivos y negativos.
Posiblemente por ruido y/o falta de atributos y/o dominio no determinstico.
Posible solucin: tomar la clasificacin mayoritaria.

Fue creado por Ross Quinlan en 1983.

En Weka el ID3 se considera un algoritmo implementado para fines pedaggicos. Se


trata de un rbol de decisin basado en el divide y vencers.

- C4.5

Se trata de una versin posterior del ID3. Los rboles de decisin extienden el ID3 para
que pueda trabajar con atributos numricos.

El C4.5 acaba con muchas de las limitaciones del ID3. Permite trabajar con valores
continuos para los atributos, separando los posibles resultados en dos ramas en funcin
de un umbral. Los rboles son menos frondosos porque cada hoja no cubre una clase en
particular sino una distribucin de clases.

El C4.5 genera un rbol de decisin a partir de los datos mediante particiones realizadas
recursivamente, segn la estrategia de profundidad-primero (depth-first). Antes de cada
particin de datos, el algoritmo considera todas las pruebas posibles que pueden dividir
el conjunto de datos y selecciona la prueba que resulta en la mayor ganancia de
informacin o en la mayor proporcin de ganancia de informacin. Para cada atributo
discreto, se considera una prueba con n resultados, siendo n el nmero de valores
posibles que puede tomar el atributo. Para cada atributo continuo se realiza una prueba
binaria sobre cada uno de los valores que toma el atributo en los datos.

La implementacin en Weka de este rbol de decisin de aprendizaje es el algoritmo


J4.8.

En Weka, las prestaciones del algoritmo C4.5 son las siguientes:


- nombre de la clase: weka.classifiers.j48.J48
- puede manejar instancias ponderadas por pesos
- puede procesar datos categricos
- no puede ser actualizado de forma incremental (soportar aadir nuevos datos
sin reclasificar a los anteriores)
- Weka permite utilizar rbol podado o no podado, se puede impedir el
aumento de los subrboles, lo que desemboca en algoritmos ms eficientes.
Tambin se puede fijar el umbral de confianza para el proceso de poda, y el
nmero mnimo de instancias permitido en cada hoja.
- Adems de los procesos estndar de C4.5, se permite una opcin que
disminuye el error de poda, realizndose una poda del rbol de decisin que

Pgina 8 de 34
optimiza el rendimiento en un conjunto fijo. Se puede fijar el tamao de este
grupo: el conjunto de datos se divide por igual en el nmero de grupos
fijado, y la ltima parte se usa como conjunto fijo. Tambin permite la
construccin de rboles binarios.

ID3 [Quinlan 1983][Quinlan 1986], C4.5 [Quinlan 1993] y derivados (Assistant


[Cestnik et al. 1987]): son mtodos divide y vencers y estn basados en criterios de
particin derivados de la ganancia (GainRatio). Tienen poda basada en reglas u otros
mecanismos ms sofisticados. Contiene mtodos de colapsado de ramas y muchas otras
mejoras. Una versin ms avanzada, la J4.8, es la que se distribuye con la librera
WEKA. Existe, adems, una versin comercial presumiblemente mejor que las
anteriores denominada C5 (See5) y comercializada por el propio Quinlan directamente
(RuleQuest) o a travs de paquetes de minera de datos (Clementine).

Los algoritmos de aprendizaje de rboles de decisin y conjuntos de reglas en su forma


ms sencilla obtienen un modelo que es completo y consistente con respecto a la
evidencia. Es decir, el modelo cubre todos los ejemplos vistos y los cubre todos de
manera correcta. Esto puede parecer ptimo a primera vista, pero se vuelve demasiado
ingenuo en la realidad. En primer lugar, ajustarse demasiado a la evidencia suele tener
como consecuencia que el modelo se comporte mal para nuevos ejemplos, ya que, en la
mayora de los casos, el modelo es solamente una aproximacin del concepto objetivo
del aprendizaje. Por tanto, intentar aproximar demasiado hace que el modelo sea
demasiado especfico, poco general y, por tanto, malo con otros datos no vistos. En
segundo lugar, esto es especialmente patente cuando la evidencia puede contener ruido
(errores en los atributos o incluso en las clases), ya que el modelo intentar ajustarse a
los errores y esto perjudicar el comportamiento global del modelo aprendido. Esto es
lo que se conoce como sobreajuste (overfitting).

La manera ms frecuente de limitar este problema es modificar los algoritmos de


aprendizaje de tal manera que obtengan modelos ms generales. En el contexto de los
rboles de decisin y conjuntos de reglas, generalizar significar eliminar condiciones de
las ramas del rbol o de algunas reglas. En el caso de los rboles de decisin dicho
procedimiento se puede ver grficamente como un proceso de poda.

La poda es una de las primeras y ms simples modificaciones que se han ideado para
mejorar el comportamiento de los rboles de decisin. Con posterioridad se han
definido otra serie de operadores y modificaciones, generalmente denominados
operadores de reestructuracin. Por ejemplo, el C4.5 realiza lo que se conoce como
colapsamiento (collapsing) [Quinlan 1993]. Otros operadores de modificacin de la
topologa del rbol son la transposicin, la transposicin recursiva y la poda
virtual [Utgoff et al. 1997].

- PART

Evita el paso de optimizacin global que se usa en las reglas del C4.5, genera una lista
de decisin sin restricciones usando el procedimiento de divide y vencers. Adems
construye un rbol de decisin parcial para obtener una regla. Para poder podar una
rama (una regla) es necesario que todas sus implicaciones sean conocidas. El PART
evita la generalizacin precipitada, y usa los mismos mecanismos que el C4.5 para

Pgina 9 de 34
construir un rbol. La hoja con mxima cobertura se convierte en una regla y los valores
ausentes de los atributos se tratan como en el C4.5, es decir, la instancia se divide en
piezas. En cuanto al tiempo mximo para generar una regla, es el mismo que para
construir un rbol podado, y esto ocurre cuando los datos tienen ruido. En el mejor de
los casos el tiempo necesario es el mismo que para generar una regla sencilla, y esto se
da cuando los datos no presentan ruido.

En Weka, las prestaciones del algoritmo PART son las siguientes:


- nombre de la clase: weka.classifiers.j48.PART
- puede manejar instancias ponderadas por pesos
- puede procesar datos categricos
- no puede ser actualizado de forma incremental (soportar aadir nuevos datos
sin reclasificar a los anteriores)
- PART forma regla a partir de rboles de decisin parcialmente podados
construidos usando los heursticos de C4.5. Las opciones disponibles para
este algoritmo son un subconjunto por tanto de las disponibles para J4.8. Al
igual que podamos reducir el tamao del rbol de decisin J4.8 usando poda
de error reducido, se puede reducir el nmero de reglas de PART (con lo que
se reduce tambin el tiempo de ejecucin porque la complejidad depende del
nmero de reglas que se generan). Sin embargo el podado de bajo error
reduce la precisin del rbol de decisin y reglas resultante porque reduce la
cantidad de datos que se usan en el entrenamiento. Con grandes cantidades
de datos no es necesario tener esta desventaja en cuenta.

- Tabla de decisin

Ms que un rbol, la tabla de decisin es una matriz de renglones y columnas que


indican condiciones y acciones. Las reglas de decisin, incluidas en una tabla de
decisin, establecen el procedimiento a seguir cuando existen ciertas condiciones. Este
mtodo se emplea desde mediados de la dcada de los cincuentas, cuando fue
desarrollado por General Electric para el anlisis de funciones de la empresa como
control de inventarios, anlisis de ventas, anlisis de crditos y control de transporte y
rutas.

La tabla de decisin est integrada por cuatro secciones: identificacin de condiciones,


entradas de condiciones, identificacin de acciones y entradas de acciones de la
siguiente tabla.

La identificacin de condiciones seala aquellas que son relevantes. Las entradas de


condiciones indican qu valor, si es que lo hay, se debe asociar para una determinada
condicin. La identificacin de acciones presenta una lista del conjunto de todos los
pasos que se deben seguir cuando se presenta cierta condicin. Las entradas de acciones
muestran las acciones especficas del conjunto que deben emprenderse cuando ciertas
condiciones o combinaciones de stas son verdaderas. En ocasiones se aaden notas en
la parte inferior de la tabla para indicar cundo utilizar la tabla o para diferenciarla de
otras tablas de decisin.

Las columnas del lado derecho de la tabla enlazan condiciones y acciones, forman
reglas de decisin que establecen las condiciones que deben satisfacerse para emprender
un determinado conjunto de acciones. Ntese que se omite el orden de la secuencia (en

Pgina 10 de 34
que las condiciones son examinadas) cosa que no sucede con los rboles de decisin. La
regla de decisin incorpora todas las condiciones que deben ser ciertas y no slo una a
la vez.

En Weka, las prestaciones de las tablas de decisin son las siguientes:


- nombre de la clase: weka.classifiers.DecisionTable
- puede manejar instancias ponderadas por pesos
- puede procesar datos categricos
- no puede ser actualizado de forma incremental (soportar aadir nuevos datos
sin reclasificar a los anteriores)
- la tabla se genera seleccionando un subconjunto de atributos representativos.
Esto se hace utilizando una bsqueda del primer atributo mejor. Por defecto
se prueban al menos 5 grupos de atributos en busca de la mejor solucin,
aunque es configurable. Tambin se puede variar el nmero de agrupaciones
de atributos que se hacen. Normalmente una tabla de decisin asigna la clase
mayoritaria de los datos de entrenamiento a una instancia test si sta no casa
con alguna entrada de la tabla. Sin embargo se permite tambin que se asigne
por defecto a la clase ms cercana a la instancia test (usando la opcin I).
Esto mejora significativamente el rendimiento.

- Regresin lineal

En Weka, las prestaciones de la regresin lineal son las siguientes:


- nombre de la clase: weka.classifiers. LinearRegression
- puede manejar instancias ponderadas por pesos
- no puede ser actualizado de forma incremental (soportar aadir nuevos datos
sin reclasificar a los anteriores)
- es el esquema de aprendizaje para datos numricos ms sencillo, donde los
parmetros solo controlan cmo se seleccionan los atributos que deben ser
incluidos en la funcin lineal. Por defecto se usa el heurstico por el modelo
M5, cuyo tiempo de ejecucin es lineal con el nmero de atributos. Tambin
puede reducirse el nmero de atributos a 1 o hacer una bsqueda avariciosa
hacia delante.

- M5

En Weka, las prestaciones del algoritmo M5 son las siguientes:


- nombre de la clase: weka.classifiers.m5.M5Prime
- no puede manejar instancias ponderadas por pesos
- no puede ser actualizado de forma incremental (soportar aadir nuevos datos
sin reclasificar a los anteriores)
- cuando se encuentra con un valor de atributo no determinado, M5 reemplaza
dicho hueco por la media global o la moda del conjunto de datos de
entrenamiento antes de que se construyera el rbol. Permite diferentes tipos
de salida: rbol modelo, rbol de decisin sin modelos lineales en las hojas y
regresin lineal. Presenta un proceso automtico de suavizado que puede ser
deshabilitado y tambin se puede controlar la profundidad del podado, as
como la cantidad de informacin a la salida.

Pgina 11 de 34
2.- Modelos de estudio
Aqu utilizaremos los datos elegidos y haremos variaciones de los parmetros y
utilizaremos diferentes estrategias de entrenamiento.
Aunque Weka es una potente herramienta tanto en el desarrollo de algoritmos de
clasificacin y filtrado como en el preprocesado de los datos para que tengan una
estructura adecuada, aqu utilizaremos datos ya formateados, por lo que no es necesario
el tratamiento previo de los mismos.

Conjunto de datos nominales zoo.arff

El primer conjunto de datos a estudiar se trata de un conjunto de datos nominales. En


concreto es una base de datos de un zoo imaginario creado por Richard Forsyth en
1990.
Distingue 7 clases de animales, 17 atributos (y adems el nombre de la especie, nico
para cada muestra), 15 booleanos y 2 numricos, y no hay valores perdidos de algn
atributo. Los atributos booleanos pueden tomar dos valores, verdadero o falso.
% 7. Attribute Information: (name of attribute and type of value domain)
% 1. animal name: nombre del animal Unique for each instance
% 2. hair pelo Boolean
% 3. feathers plumas Boolean
% 4. eggs huevos Boolean
% 5. milk leche Boolean
% 6. airborne volador Boolean
% 7. aquatic acutico Boolean
% 8. predator predador Boolean
% 9. toothed con dientes Boolean
% 10. backbone con espina dorsal Boolean
% 11. breathes respira Boolean
% 12. venomous venenoso Boolean
% 13. fins aletas de pez Boolean
% 14. legs patas Numeric (set of values: {0,2,4,5,6,8})
% 15. tail cola Boolean
% 16. domestic domstico Boolean
% 17. catsize Boolean
% 18. type Numeric (integer values in range [1,7])

Hay una amplia gama de animales, (el autor decide incluir a la chica como una especie
ms) clasificados en mamferos, aves, reptiles, peces, anfibios, insectos y crustceos. En
concreto tenemos 101 instancias (que se corresponden con 101 tipos de animales).

Los datos que tenemos son:

Pgina 12 de 34
Donde cada color corresponde a uno de los tipos existentes (type), en concreto:
mamferos (azul), pjaros (rojo), reptiles (azul celeste), peces (gris), anfibios (rosa),
insectos (verde) e invertebrados (amarillo).

Clasificacin

Weka permite la aplicacin de diversos algoritmos de clasificacin, y tambin permite


aplicar cuatro tipos de tests distintos:

- Use training set: se mide la calidad del clasificador para predecir la clase de
las instancias en las que ha sido entrenado. til cuando tenemos pocas
muestras en el conjunto.
- Supplied test set: se evala la calidad del clasificador para predecir la clase
de un conjunto de instancias cargadas desde un fichero. No es nuestro caso.
- Cross-validation: se evala la calidad del clasificador mediante validacin
cruzada, usando el nmero de grupos que se especifiquen.
- Percentage split: se evala la calidad del clasificador segn lo bien que
clasifique un porcentaje de los datos que se reserva para test.

En todos los casos Weka nos ofrece una pantalla de resultados dividida en bloques. El
primero de ellos (Run information) nos muestra el esquema utilizado para tratar los
datos (el nombre de la clase empleada y los parmetros usados), el nmero de instancias
(101 para zoo.arff), una lista de los atributos presentes y el modo de test de los cuatro
anteriores utilizados.

A continuacin se hace una descripcin del modelo del clasificador (Classifier model),
que depende del algoritmo utilizado. En concreto el esquema en cada uno es:

Pgina 13 de 34
- rboles de decisin de un nivel
o nombre del algoritmo empleado
o reglas de clasificacin utilizadas: por ejemplo si leche = falso se trata
de un ave y en caso contrario o ausencia es mamfero.
o Las distribuciones obtenidas en los datos en cada una de las 3 reglas
anteriores para cada una de las clases.
o El tiempo empleado para hacer el modelo
- clasificador 1R
o clasificacin de cada animal en una clase, el nmero de instancias
clasificadas de forma correcta del total de instancias
o el tiempo empleado en hacer el modelo
- C4.5
o Estructura del rbol de clasificacin resultante. En cada hoja y rama
se especifica el criterio de divisin y en las hojas finales aparece para
la clase que se especifica el nmero de casos correctamente
clasificados y el nmero de casos mal clasificados. Si todos los datos
pertenecen a la clase correcta solo aparece dicho nmero.
Las ramas que aparecen son aquellas que clasifican el mayor nmero
de casos con el menor error posible (menor nmero de casos
errneos).
o Nmero de hojas y tamao del rbol (nodos, ya sean intermedios o
finales y el raz).
o Tiempo empleado en crear el modelo

Se hace una evaluacin de los datos (Evaluation on training set cuando estamos en el
primer tipo de test y Stratified cross-validation en el resto) y se presentan las
estadsticas: porcentaje de instancias clasificadas correctamente (precisin), estadsticas
kappa (mide lo que se ajusta la prediccin a la clase real, 1.0 significa ajuste total), error
medio, error cuadrtico medio, error relativo y error cuadrtico relativo (ms tiles
cuando se hace regresin que en clasificacin). Estas medidas se obtienen mediante las
frmulas

Considerando que los valores para predecir sobre este grupo de instancias son p1, p2, ...,
pn y los valores actuales son a1, a2, ..., an.

Se presentan luego detalles de exactitud para cada clase (Detailed Accuracy By Class) y
finalmente la matriz de confusin (Confusion Matrix).

Los parmetros de exactitud para cada clase son los siguientes:

Pgina 14 de 34
- la True Positive (TP) rate es la proporcin de ejemplos que fueron
clasificados como clase x, de entre todos los ejemplos que de verdad tienen
clase x, es decir, qu cantidad de la clase ha sido capturada. En la matriz de
confusin, es el valor del elemento de la diagonal dividido por la suma de la
fila relevante.
- la False Positive (FP) rate es la proporcin de ejemplos que fueron
clasificados como clase x, pero en realidad pertenecen a otra clase, de entre
todos los ejemplos que no tienen clase x. En la matriz de confusin, es la
suma de la columna menos el valor del elemento de la diagonal dividido por
la suma de las filas de las otras clases.
- La Precision es la proporcin de ejemplos que de veras tienen clase x entre
todos los que fueron clasificados como clase x. En la matriz es el elemento
de la diagonal dividido por la suma de la columna relevante.
- La F-Measure es simplemente 2*Precision*Recall/(Precision+Recall), una
medida combinada de precisin y recall.

La matriz de confusin, o tambin tabla de contingencia, est formada por tantas filas y
columnas como clases hay. El nmero de instancias clasificadas correctamente es la
suma de la diagonal de la matriz y el resto estn clasificadas de forma incorrecta. Como
hemos visto, la informacin que se da aqu y en el apartado anterior es la misma
expresada de otra forma. Por tanto nos limitaremos a presentar los resultados de la
matriz de confusin, ya que comprobando el nmero de elementos no nulos fuera de la
diagonal principal tenemos una buena aproximacin de la calidad del clasificador.

Veamos ahora los resultados que se obtienen cuando estudiamos la calidad del
clasificador prediciendo la clase de las instancias de entrenamiento (Use training set)
para los 3 algoritmos que hemos seleccionado: rboles de decisin de un nivel,
clasificador 1R y C4.5. Cabe esperar resultados similares por ser algoritmos basados en
rboles de decisin.

a. rboles de decisin de un nivel:


=== Run information ===

Scheme: weka.classifiers.trees.DecisionStump Esquema seguido


Test mode: evaluate on training data Modo de evaluacin

=== Classifier model (full training set) ===

Decision Stump rbol de decisin binario

Classifications

milk = false : bird


milk != false : mammal
milk is missing : mammal

Class distributions Distribuciones de las clases

milk = false
Mammal bird reptile fish amphibian insect invertebrate Las 7 clases posibles
0.0 0.33 0.083 0.216 0.06 0.1 0.16 Y la distribucin para esta relacin
milk != false
Mammal bird reptile fish amphibian insect invertebrate
1.0 0.0 0.0 0.0 0.0 0.0 0.0
milk is missing
Mammal bird reptile fish amphibian insect invertebrate
0.40594059405940597 0.19801980198019803
0.04950495049504951 0.12871287128712872
0.039603960396039604 0.07920792079207921
0.09900990099009901

Pgina 15 de 34
Time taken to build model: 0.11 seconds Tiempo para construir el modelo

=== Evaluation on training set ===


=== Summary ===

Correctly Classified Instances 61 60.396 %


Incorrectly Classified Instances 40 39.604 %
Kappa statistic 0.4481
Mean absolute error 0.1332
Root mean squared error 0.2581
Relative absolute error 60.9052 %
Root relative squared error 78.3457 %
Total Number of Instances 101

=== Confusion Matrix ===

a b c d e f g <-- classified as
41 0 0 0 0 0 0 | a = mammal
0 20 0 0 0 0 0 | b = bird
0 5 0 0 0 0 0 | c = reptile
0 13 0 0 0 0 0 | d = fish
0 4 0 0 0 0 0 | e = amphibian
0 8 0 0 0 0 0 | f = insect
0 10 0 0 0 0 0 | g = invertebrate

El error de clasificacin que se produce es un 39% de instancias mal clasificadas.


Podemos ver que solo dos de los elementos no nulos estn en la diagonal principal
(mamferos y aves). El resto ha sido mal clasificado.

b. OneR
=== Classifier model (full training set) ===

animal:
aardvark -> mammal
antelope -> mammal
bass -> fish
bear -> mammal
boar -> mammal
[]
vole -> mammal
vulture -> bird
wallaby -> mammal
wasp -> insect
wolf -> mammal
worm -> invertebrate
wren -> bird
(101/101 instances correct)

Time taken to build model: 0 seconds

=== Evaluation on training set ===


=== Summary ===

Correctly Classified Instances 101 100 %


Incorrectly Classified Instances 0 0 %
Kappa statistic 1
Mean absolute error 0
Root mean squared error 0
Relative absolute error 0 %
Root relative squared error 0 %
Total Number of Instances 101

=== Confusion Matrix ===

a b c d e f g <-- classified as
41 0 0 0 0 0 0 | a = mammal
0 20 0 0 0 0 0 | b = bird
0 0 5 0 0 0 0 | c = reptile
0 0 0 13 0 0 0 | d = fish
0 0 0 0 4 0 0 | e = amphibian

Pgina 16 de 34
0 0 0 0 0 8 0 | f = insect
0 0 0 0 0 0 10 | g = invertebrate

Ahora la clasificacin ha sido perfecta. No hay elementos no nulos fuera de la matriz


principal.

c. C4.5
=== Classifier model (full training set) ===

J48 pruned tree


------------------

feathers = false
| milk = false
| | backbone = false
| | | airborne = false
| | | | predator = false
| | | | | legs <= 2: invertebrate (2.0)
| | | | | legs > 2: insect (2.0)
| | | | predator = true: invertebrate (8.0)
| | | airborne = true: insect (6.0)
| | backbone = true
| | | fins = false
| | | | tail = false: amphibian (3.0)
| | | | tail = true: reptile (6.0/1.0)
| | | fins = true: fish (13.0)
| milk = true: mammal (41.0)
feathers = true: bird (20.0)

El rbol resultante de aplicar el algoritmo se presenta aqu de forma textual.


Number of Leaves : 9

Size of the tree : 17

Time taken to build model: 0.11 seconds

=== Evaluation on training set ===


=== Summary ===

Correctly Classified Instances 100 99.0099 %


Incorrectly Classified Instances 1 0.9901 %
Kappa statistic 0.987
Mean absolute error 0.0047
Root mean squared error 0.0486
Relative absolute error 2.1552 %
Root relative squared error 14.7377 %
Total Number of Instances 101

=== Confusion Matrix ===

a b c d e f g <-- classified as
41 0 0 0 0 0 0 | a = mammal
0 20 0 0 0 0 0 | b = bird
0 0 5 0 0 0 0 | c = reptile
0 0 0 13 0 0 0 | d = fish
0 0 1 0 3 0 0 | e = amphibian
0 0 0 0 0 8 0 | f = insect
0 0 0 0 0 0 10 | g = invertebrate

2) Cross- validation con 10 folds

Ahora procedemos al estudio de los datos con 10 grupos, comprobando la calidad del
clasificador. Cabe sealar que los resultados que se obtienen con el rbol de decisin de
un nivel no cambian respecto al caso de usar todos los datos. En cuanto a los otros dos
algoritmos, se detallan a continuacin los parmetros ms relevantes. En el siguiente
apartado discutiremos los resultados obtenidos.

Pgina 17 de 34
a. OneR
=== Stratified cross-validation ===
=== Summary ===

Correctly Classified Instances 43 42.5743 %


Incorrectly Classified Instances 58 57.4257 %
Kappa statistic 0.045
Mean absolute error 0.1641
Root mean squared error 0.4051
Relative absolute error 75 %
Root relative squared error 122.9514 %
Total Number of Instances 101

=== Confusion Matrix ===

a b c d e f g <-- classified as
41 0 0 0 0 0 0 | a = mammal
20 0 0 0 0 0 0 | b = bird
5 0 0 0 0 0 0 | c = reptile
13 0 0 0 0 0 0 | d = fish
2 0 0 0 2 0 0 | e = amphibian
8 0 0 0 0 0 0 | f = insect
10 0 0 0 0 0 0 | g = invertebrate

b. C4.5
=== Run information ===

Scheme: weka.classifiers.trees.j48.J48 -C 0.25 -M 2


Test mode: 10-fold cross-validation

=== Classifier model (full training set) ===

J48 pruned tree


------------------

feathers = false
| milk = false
| | backbone = false
| | | airborne = false
| | | | predator = false
| | | | | legs <= 2: invertebrate (2.0)
| | | | | legs > 2: insect (2.0)
| | | | predator = true: invertebrate (8.0)
| | | airborne = true: insect (6.0)
| | backbone = true
| | | fins = false
| | | | tail = false: amphibian (3.0)
| | | | tail = true: reptile (6.0/1.0)
| | | fins = true: fish (13.0)
| milk = true: mammal (41.0)
feathers = true: bird (20.0)

Number of Leaves : 9
Size of the tree : 17

Time taken to build model: 0.06 seconds

=== Stratified cross-validation ===


=== Summary ===

Correctly Classified Instances 93 92.0792 %


Incorrectly Classified Instances 8 7.9208 %
Kappa statistic 0.8955
Mean absolute error 0.0225
Root mean squared error 0.14
Relative absolute error 10.2694 %
Root relative squared error 42.4999 %
Total Number of Instances 101

=== Confusion Matrix ===

a b c d e f g <-- classified as
41 0 0 0 0 0 0 | a = mammal
0 20 0 0 0 0 0 | b = bird
0 0 3 1 0 1 0 | c = reptile

Pgina 18 de 34
0 0 0 13 0 0 0 | d = fish
0 0 1 0 3 0 0 | e = amphibian
0 0 0 0 0 5 3 | f = insect
0 0 0 0 0 2 8 | g = invertebrate

3) Percentage split (66% datos de entrenamiento, resto de test)

a. rbol de decisin binario


=== Evaluation on test split ===
=== Summary ===

Correctly Classified Instances 19 54.2857 %


Incorrectly Classified Instances 16 45.7143 %
Kappa statistic 0.3939
Mean absolute error 0.1444
Root mean squared error 0.2742
Relative absolute error 64.8066 %
Root relative squared error 81.3879 %
Total Number of Instances 35

=== Confusion Matrix ===

a b c d e f g <-- classified as
13 0 0 0 0 0 0 | a = mammal
0 6 0 0 0 0 0 | b = bird
0 1 0 0 0 0 0 | c = reptile
0 5 0 0 0 0 0 | d = fish
0 0 0 0 0 0 0 | e = amphibian
0 6 0 0 0 0 0 | f = insect
0 4 0 0 0 0 0 | g = invertebrate

b. OneR
=== Evaluation on test split ===
=== Summary ===

Correctly Classified Instances 13 37.1429 %


Incorrectly Classified Instances 22 62.8571 %
Kappa statistic 0
Mean absolute error 0.1796
Root mean squared error 0.4238
Relative absolute error 80.6225 %
Root relative squared error 125.7661 %
Total Number of Instances 35

=== Confusion Matrix ===

a b c d e f g <-- classified as
13 0 0 0 0 0 0 | a = mammal
6 0 0 0 0 0 0 | b = bird
1 0 0 0 0 0 0 | c = reptile
5 0 0 0 0 0 0 | d = fish
0 0 0 0 0 0 0 | e = amphibian
6 0 0 0 0 0 0 | f = insect
4 0 0 0 0 0 0 | g = invertebrate

c. C4.5
=== Evaluation on test split ===
=== Summary ===

Correctly Classified Instances 33 94.2857 %


Incorrectly Classified Instances 2 5.7143 %
Kappa statistic 0.926
Mean absolute error 0.0163
Root mean squared error 0.1278
Relative absolute error 7.3293 %
Root relative squared error 37.9199 %
Total Number of Instances 35

=== Confusion Matrix ===

a b c d e f g <-- classified as
13 0 0 0 0 0 0 | a = mammal
0 6 0 0 0 0 0 | b = bird

Pgina 19 de 34
0 0 1 0 0 0 0 | c = reptile
0 0 0 5 0 0 0 | d = fish
0 0 0 0 0 0 0 | e = amphibian
0 0 0 0 0 4 2 | f = insect
0 0 0 0 0 0 4 | g = invertebrate

Conjunto de datos nominales vehicle.arff

El segundo conjunto de datos que vamos a estudiar est compuesto por datos
numricos. Bsicamente todo lo explicado para los datos nominales del caso anterior
seguir siendo aplicable ahora. Sin embargo, al tratar datos numricos hay que tener en
cuenta que Weka produce un conjunto distinto de medidas de prestaciones.

Los datos corresponden a las siluetas de varios modelos de vehculos. Los datos
provienen del Instituto Turing, en Escocia. Para clasificar una silueta dentro de uno de
cuatro posibles tipos se utilizarn una serie de parmetros extrados de la silueta. El
vehculo se puede observar desde diferentes ngulos.

Estos datos ya han sido objeto de estudio y se ha llegado a la conclusin de que la


estructura en rbol es un buen clasificador pero depende fuertemente de la orientacin
de los objetos, y agrupa vistas similares de objetos.

Los parmetros fueron extrados de las siluetas mediante HIPS (Hierarchical Image
Processing System), que extrae una combinacin de medidas independientes de la
escala utilizando tanto las medidas basadas en los momentos clsicos como una
varianza escalada y otros parmetros estadsticos sobre los ejes mayor y menor del
vehculo, as como medidas heursticas de oquedades, circularidad, vehculo compacto,
etc.

Los cuatro modelos tomados como referencia son: un bus de dos plantas, furgoneta
Chevrolet, Saab 9000 y Opel Manta 400. Esta eleccin se dio porque las siluetas del
bus, la furgoneta y cualquiera de los coches son claramente diferentes, pero sera ms
difcil distinguir los dos turismos. Las imgenes se tomaron con una cmara apuntando
hacia abajo con un ngulo de elevacin fijo (34,2 sobre la horizontal). Los vehculos se
situaron sobre un fondo claro y se pintaron de negro mate para minimizar reflejos.
Todas las imgenes tenan la misma resolucin (128x128), se tomaron con la misma
cmara, en escala de 64 tonos de gris. Las imgenes fueron filtradas para producir
siluetas binarias de los vehculos, hechas negativo, limpiadas y almacenadas. Se
realizaron ms fotos rotando los vehculos, almacenndose al final un total de 2 juegos
de 60 fotos por vehculo, cubriendo los 360 de rotacin posibles. Despus se realizaron
dos tandas ms de 2 juegos de 60 fotos, salvo la van que tuvo 2 juegos de 46 , a dos
elevaciones diferentes (37,5 y 30,8).

Los atributos que tendrn los datos sern por tanto:


% COMPACTNESS (average perim)**2/area
% CIRCULARITY (average radius)**2/area
% DISTANCE CIRCULARITY area/(av.distance from border)**2
% RADIUS RATIO (max.rad-min.rad)/av.radius
% PR.AXIS ASPECT RATIO (minor axis)/(major axis)
% MAX.LENGTH ASPECT RATIO (length perp. max length)/(max length)
% SCATTER RATIO (inertia about minor axis)/(inertia about major axis)
% ELONGATEDNESS area/(shrink width)**2
% PR.AXIS RECTANGULARITY area/(pr.axis length*pr.axis width)

Pgina 20 de 34
% MAX.LENGTH RECTANGULARITY area/(max.length*length perp. to this)
% SCALED VARIANCE (2nd order moment about minor axis)/area
% ALONG MAJOR AXIS
% SCALED VARIANCE (2nd order moment about major axis)/area
% ALONG MINOR AXIS
% SCALED RADIUS OF GYRATION (mavar+mivar)/area
% SKEWNESS ABOUT (3rd order moment about major axis)/sigma_min**3
% MAJOR AXIS
% SKEWNESS ABOUT (3rd order moment about minor axis)/sigma_maj**3
% MINOR AXIS
% KURTOSIS ABOUT (4th order moment about major axis)/sigma_min**4
% MINOR AXIS
% KURTOSIS ABOUT (4th order moment about minor axis)/sigma_maj**4
% MAJOR AXIS
% HOLLOWS RATIO (area of hollows)/(area of bounding polygon)

Tendremos 4 clases y un total de 846 instancias, adems de 18 atributos.

Ahora los datos son:

Los colores corresponden con: bus (celeste), van (gris), Saab (rojo), Opel (azul).
No hay atributos con valores missing.

1) Use training test


o rboles de decisin de un nivel
=== Run information ===

Scheme: weka.classifiers.trees.DecisionStump
Test mode: evaluate on training data

=== Classifier model (full training set) ===

Decision Stump

Classifications

Pgina 21 de 34
ELONGATEDNESS <= 41.5 : saab
ELONGATEDNESS > 41.5 : van
ELONGATEDNESS is missing : bus

Class distributions

ELONGATEDNESS <= 41.5


opel saab bus van
0.38481675392670156 0.387434554973822 0.22774869109947643 0.0
ELONGATEDNESS > 41.5
opel saab bus van
0.1400862068965517 0.14870689655172414 0.2823275862068966 0.42887931034482757
ELONGATEDNESS is missing
opel saab bus van
0.25059101654846333 0.2565011820330969 0.2576832151300236 0.23522458628841608

Time taken to build model: 0.11 seconds

=== Evaluation on training set ===


=== Summary ===

Correctly Classified Instances 347 41.0165 %


Incorrectly Classified Instances 499 58.9835 %
Kappa statistic 0.2189
Mean absolute error 0.3372
Root mean squared error 0.4106
Relative absolute error 89.964 %
Root relative squared error 94.8494 %
Total Number of Instances 846

=== Confusion Matrix ===

a b c d <-- classified as
0 147 0 65 | a = opel
0 148 0 69 | b = saab
0 87 0 131 | c = bus
0 0 0 199 | d = van

o tabla de decisin
=== Run information ===

Scheme: weka.classifiers.rules.DecisionTable -X 1 -S 5
Test mode: evaluate on training data

=== Classifier model (full training set) ===

Decision Table:

Number of training instances: 846


Number of Rules : 122
Non matches covered by Majority class.
Best first search for feature set,
terminated after 5 non improving subsets.
Evaluation (for feature selection): CV (leave one out)
Feature set: 1,2,6,12,19

Time taken to build model: 1.76 seconds

=== Evaluation on training set ===


=== Summary ===

Correctly Classified Instances 650 76.8322 %


Incorrectly Classified Instances 196 23.1678 %
Kappa statistic 0.6913
Mean absolute error 0.1559
Root mean squared error 0.2792
Relative absolute error 41.5886 %
Root relative squared error 64.4893 %
Total Number of Instances 846

=== Confusion Matrix ===

a b c d <-- classified as
127 42 23 20 | a = opel
41 117 26 33 | b = saab

Pgina 22 de 34
0 4 212 2 | c = bus
2 0 3 194 | d = van

o M5, Regresin lineal


Al tener como ltimo atributo (el de salida) la clase, de tipo nominal, tanto el M5 como
la regresin lineal no permiten procesar los datos. Por ello es necesario elegir alguna
variable numrica para que clasifique en funcin de ella, o transformar
convenientemente los datos.

2) Cross validation con 10 folds


o rboles de decisin de un nivel
=== Run information ===

Scheme: weka.classifiers.trees.DecisionStump
Test mode: 10-fold cross-validation

=== Classifier model (full training set) ===

Decision Stump

Classifications

ELONGATEDNESS <= 41.5 : saab


ELONGATEDNESS > 41.5 : van
ELONGATEDNESS is missing : bus

Class distributions

ELONGATEDNESS <= 41.5


opel saab bus van
0.38481675392670156 0.387434554973822 0.22774869109947643 0.0
ELONGATEDNESS > 41.5
opel saab bus van
0.1400862068965517 0.14870689655172414 0.2823275862068966 0.42887931034482757
ELONGATEDNESS is missing
opel saab bus van
0.25059101654846333 0.2565011820330969 0.2576832151300236 0.23522458628841608

Time taken to build model: 0 seconds

=== Stratified cross-validation ===


=== Summary ===

Correctly Classified Instances 338 39.9527 %


Incorrectly Classified Instances 508 60.0473 %
Kappa statistic 0.2059
Mean absolute error 0.3374
Root mean squared error 0.4109
Relative absolute error 90.0086 %
Root relative squared error 94.9032 %
Total Number of Instances 846

=== Confusion Matrix ===

a b c d <-- classified as
52 95 0 65 | a = opel
61 87 0 69 | b = saab
34 53 0 131 | c = bus
0 0 0 199 | d = van

o tabla de decisin
=== Run information ===

Scheme: weka.classifiers.rules.DecisionTable -X 1 -S 5
Test mode: 10-fold cross-validation

=== Classifier model (full training set) ===

Decision Table:

Pgina 23 de 34
Number of training instances: 846
Number of Rules : 122
Non matches covered by Majority class.
Best first search for feature set,
terminated after 5 non improving subsets.
Evaluation (for feature selection): CV (leave one out)
Feature set: 1,2,6,12,19

Time taken to build model: 1.87 seconds

=== Stratified cross-validation ===


=== Summary ===

Correctly Classified Instances 549 64.8936 %


Incorrectly Classified Instances 297 35.1064 %
Kappa statistic 0.5319
Mean absolute error 0.1986
Root mean squared error 0.3515
Relative absolute error 52.9841 %
Root relative squared error 81.1977 %
Total Number of Instances 846

=== Confusion Matrix ===

a b c d <-- classified as
75 74 40 23 | a = opel
59 103 26 29 | b = saab
6 7 198 7 | c = bus
8 10 8 173 | d = van

3.- Anlisis de los resultados


Tanto de forma grfica como textual pasaremos a comentar los aspectos ms destacados
de los estudios realizados y las conclusiones que de ellos podemos derivar, as como las
diferencias que se obtienen entre los distintos algoritmos utilizados.

Para el primer conjunto de datos (zoo.arff) los resultados obtenidos son

- Use training set


Instancias Tiempo para Kappa
clasificadas construir el statistic
correctamente (%) modelo (s)
rbol de decisin 60,396 0.11 0,4481
de un nivel
OneR 100 0 1
C4.5 99,0099 0.11 0,987
Tabla de decisin 98,0198 0.72 0,9739
PART 99,0099 0.16 0,987

Como puede verse, se han incluido los resultados que se obtienen tambin con tablas de
decisin y PART. Podemos ver que en el primer caso la precisin es peor que en otros y
el tiempo de ejecucin es el muy superior a los dems. En el caso de PART los
resultados son similares a los obtenidos con C4.5 pero algo ms lentos. sta es una
razn para el descarte de estos dos algoritmos.

En cuanto a la comparacin de los tres sometidos a estudio, podemos ver que el OneR
no comete ningn error. Esto es lgico porque el algoritmo funciona probando todos los
pares atributo-valor disponibles y clasifica con los de menos error. Al tener ahora como
conjunto de entrenamiento todos los datos no hay posibilidad de fallo. Vemos que el
C4.5 funciona bastante bien y que el rbol de decisin binario comete muchos errores.

Pgina 24 de 34
El rbol generado por el C4.5 es el siguiente:

- Cross validation con 10 folds

Instancias Tiempo para Kappa


clasificadas construir el statistic
correctamente (%) modelo (s)
rbol de decisin 60,396 0.11 0,4481
de un nivel
OneR 42,5743 0,05 0,045
C4.5 92,0792 0.06 0,8955
Tabla de decisin 91,0891 0.16 0,8811
PART 92,0792 0.06 0,8955

Como vemos, de nuevo los resultados de PART son los mismos que los del C4.5. Ahora
vemos que OneR no funciona bien en la validacin cruzada; como caba esperar,
generaliza mal, mientras que el rbol de decisin no vara y C4.5 empeora pero muy
poco.

El variar el nmero de grupos no afecta en los resultados de clasificacin.

En cuanto al error cometido, Weka ofrece una representacin grfica de los errores que
comete el clasificador. Las instancias clasificadas correctamente se representan por
cruces y las errneas por cuadrados. Cada color identifica la clase a la que pertenece la
instancia. Weka ofrece la posibilidad de ver grficamente en qu atributo comete ms
error o menos (por ejemplo cunto se equivoca el clasificador cuando estudiamos si las
instancias tienen o no pelo, o tienen leche, o ponen huevos).

Pgina 25 de 34
- rbol de decisin

- OneR

Pgina 26 de 34
Al ver este grfico se advierte que el OneR solo ha acertado clasificando mamferos y a
un par de anfibios.

- C4.5

Vemos que ahora se acierta mucho en la clasificacin.

- Percentage split (66 % datos entrenamiento)

Instancias Tiempo para Kappa


clasificadas construir el statistic
correctamente (%) modelo (s)
rbol de decisin 54,2857 0 0,3939
de un nivel
OneR 37,1429 0 0
C4.5 94,2837 0 0,926

Como vemos, al evaluar los algoritmos utilizando un porcentaje de los datos de test, es
decir, sin tener a priori informacin de clasificacin sobre esos datos, aplicando
directamente el algoritmo, los resultados son algo peores en el caso del rbol binario (54
% frente al 60 % en los casos anteriores) . Para el OneR el porcentaje de acierto tambin
disminuye (de 42% a 37%) y sin embargo los resultados del C4.5 son mejores (94%
frente a 92%). Esto nos da a entender que ste es el mejor algoritmo de clasificacin de
los que hemos estudiado.

Pgina 27 de 34
Pasamos ahora a estudiar los datos referentes a las siluetas de los vehculos
(vehicle.arff):

- Use training set


Instancias Tiempo para Kappa
clasificadas construir el statistic
correctamente (%) modelo (s)
rbol de decisin 41,0165 0.11 0,2189
de un nivel
Tabla de decisin 76,8322 1.76 0,6913

Como vemos, la tabla de decisin da mejores resultados que el rbol, pero tarda bastante
ms.
- Cross validation con 10 folds
Instancias Tiempo para Kappa
clasificadas construir el statistic
correctamente (%) modelo (s)
rbol de decisin 39,9527 0 0,2059
de un nivel
Tabla de decisin 64,8936 1.87 0,5319

Al tratar ahora con datos numricos disminuye el porcentaje de instancias clasificadas


correctamente con el rbol de decisin y con tabla de decisin respecto al caso anterior.

Weka permite de nuevo representar grficamente el error de clasificacin. Adems se


puede obtener informacin exacta sobre cada instancia, en concreto el valor de sus
parmetros y la estimacin hecha por el algoritmo. Por ejemplo en el caso anterior
obtenemos:

Pgina 28 de 34
Como podemos ver, la instancia seleccionada es precisamente una de las mal
clasificadas, ya que el algoritmo ha considerado que era una furgoneta pero era un bus.

Adems de visualizar los errores del clasificador, Weka permite tambin obtener
grficas de la curva marginal (el margen se define como la diferencia entre la
probabilidad prevista para la clase real y la mayor probabilidad prevista para las otras
clases), la curva umbral, que genera un grfico ilustrando las diferencias de prediccin
que se obtienen variando el umbral entre las clases, y la curva de coste. Todas estas
curvas tambin estn disponibles para datos nominales, pero no son representativas en
general al tener los atributos valores de entre un conjunto dado y no ser reales. Ahora
veremos algunas de estas curvas para nuestros datos:

Curva marginal, tabla de decisin

Podemos ver cmo en los extremos la diferencia entre la probabilidad prevista para la
clase y la probabilidad para las otras clases es casi de 1 en valor absoluto, es decir son
muy diferentes, pero cuando el nmero de instancias no es demasiado bajo ni muy alto
(menores a 600 instancias aprox.) la evolucin de la diferencia es lineal, llegando a
hacerse 0 para unas 400 instancias.

Pgina 29 de 34
Curva de umbral

- Opel - Van

- Saab - Bus

Para los dos turismos las curvas de umbral son similares. La precisin decae
rpidamente cuando aumentamos el recall, mientras que en la furgoneta la
cada es mucho ms suave y casi nula en el bus.

Curvas de coste

Opel Saab

Pgina 30 de 34
Bus Van

Podemos ver qu silueta cuesta ms para ser clasificada. Como era de esperar, el
sistema encuentra muchos ms problemas clasificando los dos turismos que
distinguiendo entre un bus y una furgoneta.

Adems podemos ver que para minimizar el coste en el caso de los turismos se requiere
un umbral parecido (0.2, 0.3), para la furgoneta el umbral es un poco mayor y para el
autobs el umbral se sita por encima del 0.5. Parece que el umbral vara linealmente
con el tamao de los vehculos.

Para el rbol de decisin los resultados son:

Curva marginal:

Pgina 31 de 34
Ahora las diferencias entre probabilidades son mucho menores, y tienden a 0 a medida
que se aumenta el nmero de instancias.

Curvas umbral:

Las curvas ahora son diferentes al caso de tablas de decisin. Salvo en el caso de la
furgoneta, presentan un crecimiento lineal, con ms o menos pendiente, hasta alcanzar
un punto de mxima precisin, y luego decae de forma exponencial. El mximo se
alcanza precisamente en valores altos del umbral. En cuanto a la furgoneta, presenta un
crecimiento lineal y un mnimo de precisin para el mnimo de umbral.

Curvas de coste:

Pgina 32 de 34
Podemos ver que los costes se agrupan en valores extemos del umbral y que se dan los
mayores costes en todos los casos precisamente en dichos extremos. Por otro lado los
costes presentan una simetra que no se daba en la tabla de decisin. Los costes son
similares para el caso de los turismos, ms dispersos para el caso del bus y ligeramente
asimtricos en el caso de la furgoneta.

Ahora s se aprecian diferencias al incrementar el nmero de grupos. Los resultados


obtenidos son:

N Instancias clasificadas Tiempo para construir Kappa


grupos correctamente (%) el modelo (s) statistic
rbol de
decisin de un 10 39,9527 0 0,2059
nivel
Tabla de
decisin
10 64,8936 1.87 0,5319
rbol de
decisin de un 20 39,1253 0.06 0,1949
nivel
Tabla de
decisin
20 65,0118 1.92 0,5334
rbol de
decisin de un 30 38,2979 0 0,1841
nivel
Tabla de
decisin
30 65,8392 1.82 0,5445

Pgina 33 de 34
Como puede verse, los resultados obtenidos con la tabla van mejorando paulatinamente
mientras que los del rbol de decisin van empeorando.

Finalmente, si vemos los resultados que se obtienen destinando un 33 % de los datos a


test:

Instancias Tiempo para Kappa


clasificadas construir el statistic
correctamente (%) modelo (s)
rbol de decisin 39,5833 0.06 0,2127
de un nivel
Tabla de decisin 62,8472 2.09 0,5082

El porcentaje de acierto para rbol de decisin ha disminuido levemente, mientras que


para tabla de decisin el resultado es ms lento y algo peor. An as la tabla de decisin
ofrece un mejor resultado global que el rbol de decisin de un nivel.

Si lo comparamos con los resultados obtenidos clasificando datos nominales podemos


decir que en ese caso el clasificador por rbol de decisin binario era mejor que cuando
clasifica datos numricos. En ambos casos la tabla de decisin daba mejores resultados,
pero es ms lenta y con grandes volmenes de datos la diferencia en el tiempo de
ejecucin se hace importante.

REFERENCIAS
- Weka explorer user guide for versin 3-3-4 Richard Kirkby, Universidad
de Waikato, 2003
- Captulo 8 de Data Mining: Practical Machine Learning Tools and
Techniques with Java Implementations. Witten, Frank. 2000 Morgan
Kaufmann Publishers
- http://www.itba.edu.ar/capis/webcapis/RGMITBA/articulosrgm/R-ITBA-26-
datamining.pdf
- http://www.ppgia.pucpr.br/~picolotto/Weka.doc
- http://satlab.mor.itesm.mx:8080/biditec/tesis/CueMati2002MariaIrasemaCru
zPerez.pdf

Pgina 34 de 34

Anda mungkin juga menyukai