Práctica 3

Anuncio
Aprendizaje Automático para el
Análisis de Datos
GRADO EN ESTADÍSTICA Y EMPRESA
Ricardo Aler Mur
PRÁCTICA 3 (2 puntos)
Vamos a trabajar con temas de distribución y coste en Weka. Ahora utilizaremos el
fichero oil.arff. Aquí el objetivo es la detección de escapes de petróleo. Abajo se puede
ver una imagen con un escape. Oil.arff tiene 41 instancias positivas y 896 negativas y es
por tanto una muestra desequilibrada.

Apartados de la práctica:
1.
2.
3.
4.
Aprendizaje teniendo en cuenta la distribución de los datos: SMOTE
Evaluación teniendo en cuenta el coste en Weka
Aprendizaje teniendo en cuenta el coste: cost-sensitive classifier
Curvas ROC en Weka
1. Aprendizaje teniendo en cuenta la distribución de los datos: SMOTE
En el problema oil.arff una de las clases es bastante minoritaria. Como sabemos, en
ocasiones esto implica que el clasificador aprenderá bien la clase mayoritaria a costa de
ignorar la minoritaria.
Comprobar si esto ocurre en oil.arff usando el clasificador J48 (que genera árboles de
decisión). ¿Cuáles son los porcentajes de aciertos de cada una de las clases? ¿Hay
alguna que se aprenda particularmente mal?
Vamos a usar SMOTE para requilibrar la muestra (es decir, incrementar el número de
datos de la clase minoritaria). SMOTE es un filtro (transforma el conjunto de datos).
Para aplicar ese filtro utilizaremos un meta-clasificador: FilteredClassifier. Este metaclasificador tiene dos parámetros: Classifier y Filter. En Filter, pondremos SMOTE, que
es un filtro de tipo supervised/instance. En classifier pondremos J48. SMOTE también
tiene un parámetro que es necesario modificar: percentage. Este parámetro representa el
porcentaje de instancias a crear: si vale 100% significa que se duplicarán las instancias
de la clase minoritaria. Si vale 200%, se cuadruplicarán. Experimentad con varios
valores. ¿Se puede mejorar el porcentaje de aciertos de la clase minoritaria sin empeorar
demasiado la clase mayoritaria?
2. Evaluación teniendo en cuenta el coste en Weka
En este apartado se trata de evaluar modelos aprendidos utilizando matrices de coste en
lugar de usar sólo el porcentaje de aciertos. Para ello, en Weka es necesario activar la
opción “Cost-sensitive evaluation” en el botón “More options” en la pestaña Classify.
Una vez activado, es necesario introducir una matriz de costes pulsando el botón “Set”.
Es necesario poner el número de clases (2) y pulsar “Resize”. Aparecerá una matriz de
costes, con los costes de error a 1.
Vamos a suponer que el coste de clasificar mal un dato de la clase mayoritaria es de 25
euros, mientras que el coste de clasificar mal uno de la clase minoritaria es de 1000
euros. Introducir los valores apropiados en la matriz de costes.
Usar los siguientes clasificadores. El coste se puede ver en Total Cost:
 ZeroR (este es el clasificador que clasifica como la clase mayoritaria)
 IB1: Clasificador de vecino más cercano con K=1
 J48: Genera árboles de decisión
 Naive Bayes
 Bayes Net (red bayesiana)
Anotar los costes resultantes y los porcentajes de aciertos. ¿Cuál es el algoritmo que nos
proporciona un mejor coste? ¿Coincide con el que tiene menor error (mayor porcentaje
de aciertos)?.
3. Aprendizaje teniendo en cuenta el coste: cost-sensitive classifier
En el apartado anterior vimos que uno de los algoritmos es mejor que los demás para
minimizar el coste. Sin embargo, cada uno de los algoritmos intenta minimizar el error
de clasificación, no el coste, simplemente por casualidad uno de ellos es mejor. Vamos
ahora a intentar minimizar directamente el coste usando el meta-clasificador costsensitive classifier. Este meta-clasificador tiene dos parámetros: classifier y costMatrix.
En el primero pondremos el clasificador que obtuvo los mejores resultados en el
apartado 2. En costMatrix pondremos la matriz de costes. ¿Se consigue mejorar el coste
conseguido en el apartado 2?
Probad también con J48. ¿Se mejora el coste también?
4. Curvas ROC en Weka
Visualizar la curva ROC para la clase minoritaria con los algoritmos NaiveBayes y J48
(visualize threshold-curve). Poned en la memoria los volcados de pantalla
correspondiente. Ahora vamos a comparar ambas curvas, pero no podemos hacerlo
dentro de Weka: tendremos que exportar los datos. Desde la ventana que contiene la
curva ROC, usad save para exportar los datos a un fichero de texto en formato arff.
Después, importad ambos ficheros a Excel (pestaña datos / Obtener datos externos).
Las columnas 2 y 4 contienen los TP y FP, respectivamente. Haced un gráfico de
dispersión con ambas curvas. ¿Qué conclusión podemos sacar al ver ambas curvas
juntas?
Usando la matriz de costes del apartado 2 y sabiendo que la proporción de positivos
Pos=41/937 (41 datos positivos y 937 instancias en total), cual es aproximadamente el
coste normalizado esperado (usad “a ojo” la curva de coste que podéis ver en “Visualize
cost curve”).
NORMAS DE ENTREGA
Será necesario entregar una memoria respondiendo a las preguntas, incluyendo volcados
de pantalla donde sea necesario.
Esta práctica vale 2 puntos. La fecha de entrega es el día del examen (o antes).
Descargar