Está en la página 1de 34

UNIVERSIDAD DE CUENCA

FACULTAD DE INGENIERÍA

Aprendizaje Automático
Sección de ejercicios N°2
Torres Christian, Diego Pando
Facultad de Ingeniería, Carrera de Sistemas
Universidad de Cuenca
{marcelo.torres, diego.pando}@ucuenca.edu.ec
1.1

Torres, Pando 1 Aprendizaje Automático


UNIVERSIDAD DE CUENCA
FACULTAD DE INGENIERÍA

Torres, Pando 2 Aprendizaje Automático


UNIVERSIDAD DE CUENCA
FACULTAD DE INGENIERÍA

Torres, Pando 3 Aprendizaje Automático


UNIVERSIDAD DE CUENCA
FACULTAD DE INGENIERÍA

Torres, Pando 4 Aprendizaje Automático


UNIVERSIDAD DE CUENCA
FACULTAD DE INGENIERÍA

1.2

Torres, Pando 5 Aprendizaje Automático


UNIVERSIDAD DE CUENCA
FACULTAD DE INGENIERÍA

1.3

Torres, Pando 6 Aprendizaje Automático


UNIVERSIDAD DE CUENCA
FACULTAD DE INGENIERÍA

1.4

Torres, Pando 7 Aprendizaje Automático


UNIVERSIDAD DE CUENCA
FACULTAD DE INGENIERÍA

Torres, Pando 8 Aprendizaje Automático


UNIVERSIDAD DE CUENCA
FACULTAD DE INGENIERÍA

1.5

Torres, Pando 9 Aprendizaje Automático


UNIVERSIDAD DE CUENCA
FACULTAD DE INGENIERÍA

Torres, Pando 10 Aprendizaje Automático


UNIVERSIDAD DE CUENCA
FACULTAD DE INGENIERÍA

Torres, Pando 11 Aprendizaje Automático


UNIVERSIDAD DE CUENCA
FACULTAD DE INGENIERÍA

Torres, Pando 12 Aprendizaje Automático


UNIVERSIDAD DE CUENCA
FACULTAD DE INGENIERÍA

Torres, Pando 13 Aprendizaje Automático


UNIVERSIDAD DE CUENCA
FACULTAD DE INGENIERÍA

Torres, Pando 14 Aprendizaje Automático


UNIVERSIDAD DE CUENCA
FACULTAD DE INGENIERÍA

Torres, Pando 15 Aprendizaje Automático


UNIVERSIDAD DE CUENCA
FACULTAD DE INGENIERÍA

Torres, Pando 16 Aprendizaje Automático


UNIVERSIDAD DE CUENCA
FACULTAD DE INGENIERÍA

Torres, Pando 17 Aprendizaje Automático


UNIVERSIDAD DE CUENCA
FACULTAD DE INGENIERÍA

Torres, Pando 18 Aprendizaje Automático


UNIVERSIDAD DE CUENCA
FACULTAD DE INGENIERÍA

Torres, Pando 19 Aprendizaje Automático


UNIVERSIDAD DE CUENCA
FACULTAD DE INGENIERÍA

1.6

Torres, Pando 20 Aprendizaje Automático


UNIVERSIDAD DE CUENCA
FACULTAD DE INGENIERÍA

Torres, Pando 21 Aprendizaje Automático


UNIVERSIDAD DE CUENCA
FACULTAD DE INGENIERÍA

Torres, Pando 22 Aprendizaje Automático


UNIVERSIDAD DE CUENCA
FACULTAD DE INGENIERÍA

1.7 PROCESO PRÁCTICA WEKA, KNIME

A. En Weka, abrir el archivo zoo.arff en la vista Explorer. ¿Cuántos atributos tiene?. ¿Es
necesaria la columna animal?
Primero, el archivo contiene la clasificación de animales en base a ciertas características o
atributos que se incluyen en él, pudiendo clasificarse en alguno de 6 grupos. El archivo tiene 18
atributos. La columna animal no es tan necesaria puesto a que la clasificación se la va haciendo
según las otras características de cada animal, además nuestra variable de clasificación va a ser
“type” y esta variable “animal” no vendría a ser necesaria.
B. Ir a la pestaña Classify y seleccionar el árbol de decisión J48. Dar click en la parte derecha
del botón Choose; esto abre una ventana con los hyper-parámetros del algoritmo.
Seleccionar 10-fold cross-validation y ejecutar el algoritmo.

Figura 1. Algoritmo J48 en Weka

Además, podemos observar en la siguiente imagen el árbol de decisión que se puede generar con
la propia herramienta, lo cual nos permite ir viendo cómo se lo fue creando:

Torres, Pando 23 Aprendizaje Automático


UNIVERSIDAD DE CUENCA
FACULTAD DE INGENIERÍA

Figura 2. Árbol generado

C. ¿Qué porcentaje de instancias de clasificaron correctamente? ¿Qué familias de animales


tienen peores resultados? Fijarse en la confusion matrix.
El 92.0792% de las instancias se clasificaron correctamente, mientras tanto el 7.9208% de las
instancias se clasificaron incorrectamente.
Según la matriz de confusión, ver figura 3, las familias que peor se clasificaron fueron las de
insectos e invertebrados, de las que: insectos clasificó 5 bien y 3 los clasificó como invertebrados,
mientras que a los invertebrados, 8 los clasificó bien y 2 mal.

Figura 3. Matriz de confusión

D. Ahora seleccionar el algoritmo PART de la sección rule learning y comparar resultados en


términos de interpretabilidad y precisión.

Torres, Pando 24 Aprendizaje Automático


UNIVERSIDAD DE CUENCA
FACULTAD DE INGENIERÍA

Figura 4. Algoritmo PART

Como se observar en la figura 4, el algoritmo nos arrojó la misma cantidad de elementos


clasificados de forma correcta e incorrecta que el anterior algoritmo, así como la matriz de
confusión es la misma. Se ha utilizado igualmente la técnica de Cross Validation de 10 capas, de
las cuales 9 son para entrenar al algoritmo y 1 para la prueba. El tiempo de ejecución de ambos
algoritmos resultó de 0.01s.
Los resultados del algoritmo J48 son:
Mean absolute error 0.0225
Root mean squared error 0.14
Relative absolute error 10.2478 %
Root relative squared error 42.4398 %
Mientras, que del algoritmo PART son:
Mean absolute error 0.0231
Root mean squared error 0.1435
Relative absolute error 10.5346 %
Root relative squared error 43.4854 %

Por lo tanto, la diferencia en los resultados de los algoritmos es mínima, teniendo al algoritmo
PART un poco mas de precisión por su root mean squared error.

E. Realice un análisis similar con los datasets: vehicle.arff y credit-g.arff. Siéntase en libertad
de probar otros algoritmos y analizar sus resultados.

Torres, Pando 25 Aprendizaje Automático


UNIVERSIDAD DE CUENCA
FACULTAD DE INGENIERÍA

DATASET VEHICLE.ARFF
El dataset trae una clasificación de autos, los cuales pueden ser de 4 tipos, usando una serie de
características extraídas del dataset. Aplicando el algoritmo J48

Figura 5. Algoritmo J48- vehicle.arff


Este dataset consta de 19 atributos y 846 elementos o instancias. Luego de aplicar el algoritmo
J48 (ver figura 5) se obtuvo que el 72.4586% se clasificaron correctamente, y el 27.5414% se
clasificaron incorrectamente. Obteniendo un root mean squared error de 0.3355.
De la matriz de confusión se puede observar que se obtuvo peor resultado en las clases de tipo
ope1 y saab, de las que en ope1 se clasificaron correctamente 130 instancias y 82 erróneas; del
tipo saab, se clasificaron correctamente 99 instancias y 118 fallaron, entonces se puede deducir
que el algoritmo confundió mayormente el tipo saab con el tipo ope1 ya que clasificó 96 como
ope1, cuando realmente era de tipo saab.
Así mismo, se puede generar el árbol de decisión, pero la vista que genera no ayuda mayormente
ya que es verdaderamente confusa y no es tan clara como en el caso anterior.

Ahora, aplicando el algoritmo PART se obtuvo lo siguiente:

Torres, Pando 26 Aprendizaje Automático


UNIVERSIDAD DE CUENCA
FACULTAD DE INGENIERÍA

Figura 6. Algoritmo PART.


Para este algoritmo se obtuvo como resultado un 71% de instancias clasificadas correctamente y
un 28% clasificados mal. Por lo tanto, el algoritmo J48 obtuvo una mayor eficiencia a la hora de
clasificar las instancias.
De la matriz de confusión se puede observar que nuevamente, los tipos que peor clasificó son el
ope1 y saab. En cuanto al Opel clasificó bien 94 instancias y 106 las confundió con otros tipos.
Del tipo saab se observa que clasificó bien 123 instancias y 94 incorrectamente.
Además el root mean squared error bajó a 0.326 con respecto al algoritmo J48.

DATASET CREDIT-G.ARFF
Este dataset, contiene una clasificación de clientes como buenos o malos, según una serie de
características provistas en el dataset. Es decir aquí se pueden basar para saber si es rentable dar
crédito a un cierto cliente.
Consta de 21 atributos y una variable clasificatoria que nos indica si el cliente es bueno o malo
para cierto crédito.
Primero aplicamos el algoritmo de J48, utilizando Cross validation con 10 capas, obteniendo:

Torres, Pando 27 Aprendizaje Automático


UNIVERSIDAD DE CUENCA
FACULTAD DE INGENIERÍA

Figura 7. Algoritmo J49- credit-g


Como resultado se obtuvo que el 70.5% de las instancias fueron clasificadas correctamente y el
29.5 incorrectamente. Además de obtener un 0.4796% de root mean square error.
De la matriz de confusión se puede observar que 588 instancias las clasificó correctamente como
buena y 112 como mala. En cambio 117 las clasificó correctamente como malas y 163 incorrectas.
Aquí el algoritmo podría causar problemas, debido a que es preferible que a un cliente bueno lo
clasifique como malo que un cliente malo lo clasifique como bueno.

Ahora aplicando el algoritmo PART con Cross validation de 10 capas, se obtuvo:

Figura 8. Algoritmo PART- credit-g

Torres, Pando 28 Aprendizaje Automático


UNIVERSIDAD DE CUENCA
FACULTAD DE INGENIERÍA

Como se puede observar, con este algoritmo se obtuvo un 70.2% de aciertos y un 29.8 de errores
al clasificar las instancias. Además de un root mean square error de 0.4974.
En la matriz de confusión se obtuvo una mejor clasificación de los clientes buenos que de los
malos, ya que 561 los clasificó correctamente como buenos y 139 incorrectamente como malos.
Además 141 clasificó correctamente como malos y 159 como buenos.
En cuanto a tiempo de ejecución y a porcentaje de aciertos en la clasificación, tiene una leve
mejoría el algoritmo de J49.

F. Realizar un proceso similar como con la herramienta Weka, pero en Knime utilizar el
algoritmo: Decision Tree..

Una vez descargado e instalado, nos presentará una pantalla como la siguiente:

Figura 9. Pantalla principal de Knime


Knime es una herramienta trabaja con nodos donde cada uno de ellos tiene su función, parecido
a Orange. Por lo tanto, para poder construir la estructura del algoritmo decisión tree, se tiene que
incluir ciertos nodos los que se explicarán más adelante.
1) Para incorporar un archivo de tipo arff requerimos del siguiente nodo:

El cual permite leer ese tipo de archivo de lo cual se tiene la siguiente configuración:

Torres, Pando 29 Aprendizaje Automático


UNIVERSIDAD DE CUENCA
FACULTAD DE INGENIERÍA

Fig 10. Configuración del nodo arff


En la cual se tiene que buscar el archivo a cargar y escoger si las filas tienen un id o no, luego de
ello se cargará nuestro archivo, ejecutamos el nodo y lo tenemos disponible.
2) Para eliminar una columna se hace uso de un nodo llamado, filter column, en el cual:

Figura 11. Configuración Filter Column


Se pasa al cuadro derecho todas las variables que queremos utilizar para el modelo.

3) Para generar la matriz de confusión aparte de todos los nodos que se mostrarán al final,
se hace uso de un nodo llamado “scorer” el cual permite la creación de la matriz.

Torres, Pando 30 Aprendizaje Automático


UNIVERSIDAD DE CUENCA
FACULTAD DE INGENIERÍA

Figura 11. Configuración del nodo scorer


En este nodo se elige la variable que trae el dataset para clasificar y la variable de la predicción
del modelo que se ejecute.
4) Para el cross validation, se utilizan los siguientes nodos:

Donde X-partitioner es el primero en un bucle de validación cruzada. Al final del ciclo debe haber
un X-Aggregator para recolectar los resultados de cada iteración. Todos los nodos entre estos dos
nodos se ejecutan tantas veces como se deben realizar las iteraciones. En donde se configura lo
siguiente:

Figura 12. Configuración X-Partitioner

Torres, Pando 31 Aprendizaje Automático


UNIVERSIDAD DE CUENCA
FACULTAD DE INGENIERÍA

Se escoge el número de capas que se requiere para el modelo y además la variable clasificatoria.
Y el X-Agregator es el final de un ciclo de validación cruzada y debe seguir un nodo X-Partitioner.
Recopila el resultado de un nodo predictor, que en nuestro caso es el Decision Tree Predictor,
compara la clase pronosticada y la clase real y genera las predicciones para todas las filas y las
estadísticas de iteración.
La estructura del modelo queda de la siguiente manera:

Figura 13. Estructura del modelo


En donde el decisión tree learner es el que crea el árbol de decisiones clasificatorio y el Decision
Tree Predictor se encarga de realizar la predicción y enviar al X-Agregator.x|
Para la clasificación que se plantea realizar, se cargaron los archivos obteniendo los siguientes
resultados:
DATASET ZOO.ARF
Como se puede observar en la Figura 14, para este Dataset, los peores resultados en cuanto a la
clasificación fueron los de tipos reptiles e invertebrados.

Figura 14. Matriz de confusión para zoo.arff


Contrastando con weka, se coincide en que Weka también obtuvo a los invertebrados como uno
de los peores resultados. Este algoritmo clasificó 85 instancias bien y 16 mal, obteniendo un
porcentaje del 84.15% de acierto en clasificar, siendo claramente menor a los algoritmos j49 y
PART en weka.
Otra parte muy interesante es que con el nodo de Decision Tree Learner, se puede observar como
ha sido creado el árbol de decisión:

Torres, Pando 32 Aprendizaje Automático


UNIVERSIDAD DE CUENCA
FACULTAD DE INGENIERÍA

Figura 15. Árbol de decisión


En el cual se puede ver un fragmente de cómo se va creando el árbol, y si se hace click en los
íconos de +, se podrá observar el árbol completo.

DATASET VEHICLE.ARFF
Aplicando el mismo modelo para este dataset se obtuvo los siguientes resultados:

Figura 16. Matriz de confusión- vehicle.arff


Para este dataset, se obtuvo los peores resultados a la hora de clasificar con los autos de tipo Opel
y saab, ya que del tipo opel clasificó 110 adecuadamente y 102 erróneos; del tipo saab clasificó
bien 114 y 103 mal, lo cual es un gran porcentaje de mala clasificación, pero se apega a los
resultados de Weka en los cuales se obtuvo los mismos tipos con mas porcentaje de mala
clasificación.
El modelo tuvo un acierto del 71.27% de acierto, lo cual es un poco menor a los resultados
obtenidos en Weka que fueron del 72% . Obteniendo 603 instancias bien clasificadas y 243 mal
clasificadas. Todos estos resultados nos proporciona la propia herramienta, al crear la matriz de
confusión.

Figura 17. Datos de acierto y error

Torres, Pando 33 Aprendizaje Automático


UNIVERSIDAD DE CUENCA
FACULTAD DE INGENIERÍA

DATASET CREDIT-G
Finalmente, con el tercer dataset que se trata de dar un crédito a un cliente, se obtuvo lo siguiente:

Figura 18 Matriz de Confusión- credit-g


De lo cual se puede observar que nuevamente, como en Weka, se obtuvo un peor porcentaje de
clasificación con los clientes malos que confundió como buenos, debido a que 178 los clasificó
como malos siendo buenos, y solo 122 los clasificó como buenos.
Para el dataset se obtuvo un porcentaje del 69.5% de acierto, clasificando 695 instancias
correctamente, y 305 clasificó incorrectamente.
A comparación de los algoritmos J49 y Part de weka, no hay una gran diferencia en el acierto, ya
que varía 0.7%.

Torres, Pando 34 Aprendizaje Automático

También podría gustarte