data mining

14
Práctica 4 de Minería de Datos Combinación de modelos y costes en Curso de Postgrado Minería de Datos Máster y Postgrado del DSIC Universitat Politècnica de València José Hernández Orallo. ([email protected] ). Diciembre 2006

Upload: enricoti-coti

Post on 10-Apr-2016

215 views

Category:

Documents


1 download

DESCRIPTION

Lo importante de data mining

TRANSCRIPT

Page 1: data mining

Práctica 4 de Minería de Datos

Combinación de modelos y costes en

Curso de Postgrado Minería de Datos

Máster y Postgrado del DSIC Universitat Politècnica de València

José Hernández Orallo. ([email protected]). Diciembre 2006

Page 2: data mining

2

Índice 1. Combinación Modelos .................................................................................................................................... 2

1.1 Boosting. ................................................................................................................................................. 7 2. Matrices de coste y confusión. ...................................................................................................................... 10

En esta práctica vamos a ver cómo combinar modelos, y como analizarlos con matrices de costes, fundamentalmente para modelos predictivos.

1. Combinación Modelos Retoma la ruta del monks. Habías aplicado varios modelos: red neuronal y varios árboles de decisión (C5.0, C&RT, ...). Ninguno de ellos (si se ponía el tipo de la clase a discreto) daba muy buenos resultados. ¿Cómo combinarías los resultados de estos tres modelos para obtener un modelo más potente? ¿Proporciona Clementine una solución directa para este problema?

No es difícil hacerlo aunque algo tedioso. Se trata de mezclar1 (con el nodo “Fundir”) el resultado de los tres modelos. Como los ejemplos no tienen identificador, para que esta mezcla se realice convenientemente, previamente deberás haber añadido un contador a los ejemplos, mediante un nodo “Derivar” (colocado entre el nodo de lectura de datos del fichero y el nodo Tipo), como se muestra en la siguiente figura:

Figura 1. Nodo Derivar que numera los ejemplos

Ahora, después de los modelos, puedes añadir ya el nodo “Fundir” con la siguiente configuración

1 También se puede hacer poniendo los tres modelos en cadena y poniendo al final un nodo Derivar, con el mismo resultado. No obstante, gráficamente es más claro utilizar el nodo Fundir.

Page 3: data mining

3

Figura 2. Nodo “Fundir” para combinar los modelos

Si miras (con un nodo tabla) los datos fusionados, verás que da un error, porque hay tres modelos que tienen el mismo nombre para el campo predicho $R-field7. Por tanto, hemos de renombrar (con sendos nodos filtro) las salidas del modelo Quest y del modelo Chaid, como sigue:

Figura 3. Renombrando los campos $ para el modelo Quest

Figura 4. Renombrando los campos $ para el modelo CHAID

Page 4: data mining

4

Ahora ya podemos ver que se han juntado todos los 432 datos.

Figura 5. Datos después de la fusión.

Ahora, para facilitar la tarea, vamos a renombrar todos los atributos de los modelos con nombres más cortos:

Figura 6. Renombrando los campos.

Ahora ya ponemos un nuevo nodo “Derivado” que calcule la media de los cinco, como sigue:

Page 5: data mining

5

Figura 7. Nodo Derivar que calcula la media de los tres modelos

Si añadimos otro nodo Derivar para que nos convierta “combinat” en un valor entero 0 y 1, tenemos un clasificador combinado.

Figura 8. Pasando de un número real a una clase 0 o 1

Para poder evaluar este nuevo clasificador combinado, haremos el truco de renombrar el campo “CombinatClase” a un campo que pueda ser utilizado por el nodo “Análisis”. Por ejemplo, $C-field7:

Figura 9. Renombrado el campo de clase para poder realizar el Análisis.

Page 6: data mining

6

Finalmente, con un nodo Análisis deberíamos obtener lo siguiente:

Figura 10. Resultado del modelo combinado.

La ruta propuesta para esta actividad se encuentra a continuación. Se recomienda intentarlo al menos 10 minutos antes de echar mano del mismo.

Figura 11. Ruta del Monks1 con combinación de modelos.

EJERCICIOS PROPUESTOS:

Comprueba si se ha mejorado con la combinación de modelos. ¿Es mejor que cada uno de los cinco anteriores?

¿Se te ocurre alguna manera diferente de combinarlos para que todavía aumente más la precisión?

¿Has pensado en considerar la confianza $CC de cada clasificador al hacer la ponderación? Hazlo. ¿Se mejoran así los resultados?

Los nodos de derivación que deberás utilizar para hacer una combinación ponderada son los siguientes.

Page 7: data mining

7

Figura 12. Fórmula para la combinación ponderada.

Figura 13. En este caso los negativos son 0 y los positivos 1.

1.1 Boosting. Existen otros procedimientos más elaborados de combinación que se basan en entrenar con la misma técnica reiteradas veces pero variando los datos de entrenamiento. Una de estas técnicas se denomina “boosting” y la tenemos incluida en el nodo C5.0 del Clementine (denominada “aumento”), donde se encuentra completamente automatizada.

Continuemos con la ruta anterior y añadamos un nodo C5.0 que conectaremos a la parte de entrenamiento. Editaremos este nodo de la siguiente forma:

Page 8: data mining

8

Figura 14. Activando el “boosting” en el C5.0.

Como ves, se activa el “Utilizar aumento” y también cambiamos el nombre del modelo para no confundirlo con el C5.0 sin aumento. El número de ensayos lo dejamos por defecto, a 10, con lo que generará 10 variantes del modelo. Ahora ejecutamos para obtener el modelo y lo copiamos a la zona de trabajo y pasamos a evaluarlo en la parte de test, como se ve en la siguiente figura:

Figura 15. Ruta con el nodo de boosting.

Si vemos el resultado de este modelo con el nodo de “Análisis”, la sorpresa es gratificante:

Page 9: data mining

9

Figura 16. Resultado del modelo con boosting.

Es mucho mejor que el C5.0 sin boosting, mejor que cualquier otro método simple e incluso bastante mejor que el modelo combinado que hemos realizado anteriormente.

Técnicas como boosting u otras similares (bagging) han proporcionado uno de los mayores incrementos en precisión en las técnicas de modelización en los últimos años y es conveniente utilizarlo siempre que sea posible.

La desventaja, tanto de los modelos de combinación manuales (como el del apartado anterior) o automáticos (como boosting), es que, en primer lugar, requiere más tiempo de generación (en el caso de boosting con 10 ensayos unas 10 veces más), pero fundamentalmente que no generan un modelo comprensible sino una combinación de varios.

Por ejemplo, en la siguiente figura, vemos que si intentamos visualizar el modelo obtenido, en realidad tenemos 10 modelos, cada uno un árbol de decisión distinto. Cada uno de los árboles por separado (por ejemplo, el que se ve en la Figura, que el Clementine llama Regla 6) consigue un escaso 68,52, lejos del 86,11% que consigue el boosting,

Figura 17. Viendo los 10 árboles generados por boosting.

EJERCICIOS PROPUESTOS:

Incluye el nodo de diamante modelo con boosting que acabamos de generar en la combinación manual junto a los otros cinco modelos. ¿Mejora la combinación ponderada? ¿Mejora el modelo conjunto al del boosting por sí solo? ¿qué conclusión sacas de esto?

Prueba el boosting con otro número de ensayos. ¿En qué número se suele encontrar el máximo?

Page 10: data mining

10

2. Matrices de coste y confusión. Las matrices de coste y de confusión nos permiten elegir el modelo que minimice costes. No siempre el modelo que minimiza el error es el más conveniente, simplemente porque hay clases más caras que otras o hay errores más caros que otros. Por ejemplo, no es igual de grave (costoso) predecir que un correo no es spam cuando sí lo es que predecir lo contrario, es decir, que un correo es spam cuando no lo es. Ambos son errores que hay que evitar pero uno es mucho más grave y costoso que el otro. Este mismo efecto se observa claramente en las campañas de mailings, en las que la propaganda tiene un coste fijo y sólo se obtienen beneficios si el cliente “pica” ante la oferta. También es útil en decisiones de negocio, donde para cada caso haya que optar por dos o más acciones para las que se pueda estimar un coste real o aproximado.

A continuación vamos a ver cómo trabajar con estas matrices para el caso de los medicamentos. Imagina que tienes la siguiente matriz de costes para el problema de los medicamentos:

DrugA DrugB DrugC DrugX DrugY Adm. Correctamente 100€ 200€ 550€ 100€ 150€ Adm. Incorrectamente 450€ 3250€ 1760€ 400€ 400€

Esta matriz incluye, en el caso de administración incorrecta, los costes medios del resto de medicamentos, porque además del propio coste de probar un medicamento no efectivo habrá que seguir probando con el resto de medicamentos.

Esto quiere decir que el mejor modelo no tiene por qué ser el más barato (Nótese que DrugB y DrugC tienen unos costes importantes para paliar efectos secundarios cuando se administran incorrectamente). Queremos, por tanto, ver cómo obtener un modelo que minimice costes.

Retoma la ruta de este problema en el que realizabas la partición 1.700 – 500. Elimina el nodo que generaba el atributo derivado Na_to_K. Haz la partición ahora de 1.100 – 1.100 aproximadamente (con un nodo partición al 50%). Genera todos los modelos y evalúalos con los datos de test. La ruta será como sigue:

Figura 18. Ruta para evaluar los costes.

Verás que la precisión ahora ya no es del 100%. Ahora vamos a ver la matriz de confusión. Para ello modifica los nodos “Análisis” de los tres modelos para activar la matriz de confusión/coincidencia, como se muestra en la siguiente figura:

Page 11: data mining

11

Figura 19. Nodo Análisis. Activando las matrices de coincidencia.

El resultado es similar al de la siguiente figura (para el primer clasificador):

Figura 20. Matriz de coincidencia para el modelo C5.0

Nota: tus datos pueden diferir según la partición aleatoria realizada durante el entrenamiento, por lo que los comentarios a continuación se refieren a los resultados de la figura, que pueden diferir ligeramente con los tuyos.

Desgraciadamente, el Clementine no permite aplicar a esa matriz de coincidencias una matriz de costes directamente. Para ello vamos a usar el Excel.

Ahora si vais a “Edición” y marcáis “copiar todo”, tendréis el texto (incluyendo la matriz) y lo copiamos en el bloc de notas, como se ve en la siguiente figura.

Page 12: data mining

12

Figura 21. Grabando la matriz de coincidencia en un fichero de texto.

Realiza lo mismo con los otros dos modelos, llamándolos a los tres: matrizC50.txt, matrizRN.txt, matrizCRT.txt.

Ahora, para cada modelo, edita los ficheros y deja sólo el texto de la matriz, como se muestra en la siguiente figura:

Figura 22. Dejando sólo la matriz de coincidencia en el fichero de texto.

Ahora arranca el Excel e importa el fichero cada fichero, p.ej. “matrizc50.txt”:

Figura 23. Abriendo el fichero de texto desde el Excel.

Page 13: data mining

13

Figura 24. Importando el fichero de texto.

Después dale a siguiente a todo... y voilà, ya tienes los datos en el Excel:

Figura 25. Matriz importada en el Excel.

Ahora realiza lo mismo para los otros dos ficheros. Ahora crea una nueva hoja de cálculo e introduce la matriz de costes, como se muestra en la siguiente figura:

Figura 26. Matriz de costes en el Excel.

Ahora copia en esa hoja de cálculo la matriz de confusión/coincidencia del C5.0.

Luego multiplica la matriz de costes por la de confusión, como se muestra en la siguiente figura:

Page 14: data mining

14

Figura 27. Multiplicando las matrices de costes y confusión en Excel.

Realiza lo mismo con las otras dos matrices de confusión. Además, para cada matriz producto, suma todas sus filas y columnas, para calcular el coste total. Ahora mira qué matriz resultante es mejor. El resultado ha de ser el que se muestra en la siguiente figura:

NOTA: como hemos dicho anteriormente, tus datos pueden diferir según la partición aleatoria realizada durante el entrenamiento, por lo que los comentarios a continuación se refieren a los resultados de la figura, que pueden diferir ligeramente con los tuyos.

Figura 28. Matrices resultantes y costes globales de cada modelo.

Como vemos, el primer modelo, aunque tenía menos precisión, es más barato, por lo que, en el caso de que se trate de tratamientos para enfermedades no graves, se podría optar por el primer modelo en vez del segundo.

EJERCICIOS PROPUESTOS:

Por lo que acabamos de realizar: ¿proporciona Clementine una solución para automatizar este problema? ¿Se te ocurre alguna manera para no tener que salir del Clementine?

El C5.0 y el C&RT incluyen la definición de una matriz de coste durante el entrenamiento (no durante el análisis) en la pestaña de “costes”. Introduce la matriz de coste y entrena los dos modelos con costes. Evalúalos en términos de precisión y en términos de coste. ¿Qué observas?