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.
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.
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:
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
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.
Como acabamos de comentar, los dos puntos ms importantes para que el algoritmo
anterior funcione bien son los siguientes:
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.
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
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.
Algoritmo ID3
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.
- 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.
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.
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.
- Tabla 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.
- Regresin lineal
- M5
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.
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).
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
- 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).
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.
Classifications
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
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
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)
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
c. C4.5
=== Classifier model (full training set) ===
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)
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
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 ===
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 ===
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
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
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 ===
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 ===
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
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.
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).
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)
Los colores corresponden con: bus (celeste), van (gris), Saab (rojo), Opel (azul).
No hay atributos con valores missing.
Scheme: weka.classifiers.trees.DecisionStump
Test mode: evaluate on training data
Decision Stump
Classifications
Pgina 21 de 34
ELONGATEDNESS <= 41.5 : saab
ELONGATEDNESS > 41.5 : van
ELONGATEDNESS is missing : bus
Class distributions
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
Decision Table:
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
Scheme: weka.classifiers.trees.DecisionStump
Test mode: 10-fold cross-validation
Decision Stump
Classifications
Class distributions
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
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
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
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:
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.
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
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):
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
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:
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.
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.
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.
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