You are on page 1of 14

Prctica 4 de Minera de Datos

Combinacin de modelos y costes en

Curso de Postgrado
Minera de Datos
Mster y Postgrado del DSIC
Universitat Politcnica de Valncia
Jos Hernndez Orallo. (jorallo@dsic.upv.es). Diciembre 2006

ndice
1.

Combinacin Modelos .................................................................................................................................... 2


1.1
Boosting. ................................................................................................................................................. 7
2. Matrices de coste y confusin. ...................................................................................................................... 10
En esta prctica vamos a ver cmo combinar modelos, y como analizarlos con matrices de costes,
fundamentalmente para modelos predictivos.

1. Combinacin Modelos
Retoma la ruta del monks. Habas aplicado varios modelos: red neuronal y varios rboles de decisin
(C5.0, C&RT, ...). Ninguno de ellos (si se pona el tipo de la clase a discreto) daba muy buenos
resultados. Cmo combinaras los resultados de estos tres modelos para obtener un modelo ms
potente? Proporciona Clementine una solucin directa para este problema?
No es difcil 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 debers haber aadido 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, despus de los modelos, puedes aadir ya el nodo Fundir con la siguiente configuracin

Tambin se puede hacer poniendo los tres modelos en cadena y poniendo al final un nodo Derivar, con el
mismo resultado. No obstante, grficamente es ms claro utilizar el nodo Fundir.
2

Figura 2. Nodo Fundir para combinar los modelos

Si miras (con un nodo tabla) los datos fusionados, vers 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

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

Figura 5. Datos despus de la fusin.

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

Figura 6. Renombrando los campos.

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

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

Si aadimos otro nodo Derivar para que nos convierta combinat en un valor entero 0 y 1, tenemos
un clasificador combinado.

Figura 8. Pasando de un nmero 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 Anlisis. Por ejemplo, $C-field7:

Figura 9. Renombrado el campo de clase para poder realizar el Anlisis.

Finalmente, con un nodo Anlisis deberamos obtener lo siguiente:

Figura 10. Resultado del modelo combinado.

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

Figura 11. Ruta del Monks1 con combinacin de modelos.

EJERCICIOS PROPUESTOS:

Comprueba si se ha mejorado con la combinacin de modelos. Es mejor que cada uno de


los cinco anteriores?

Se te ocurre alguna manera diferente de combinarlos para que todava aumente ms la


precisin?

Has pensado en considerar la confianza $CC de cada clasificador al hacer la ponderacin?


Hazlo. Se mejoran as los resultados?

Los nodos de derivacin que debers utilizar para hacer una combinacin ponderada son los
siguientes.

Figura 12. Frmula para la combinacin ponderada.

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

1.1 Boosting.
Existen otros procedimientos ms elaborados de combinacin que se basan en entrenar con la
misma tcnica reiteradas veces pero variando los datos de entrenamiento. Una de estas tcnicas 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 aadamos un nodo C5.0 que conectaremos a la parte de
entrenamiento. Editaremos este nodo de la siguiente forma:

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

Como ves, se activa el Utilizar aumento y tambin cambiamos el nombre del modelo para no
confundirlo con el C5.0 sin aumento. El nmero 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 Anlisis, la sorpresa es gratificante:

Figura 16. Resultado del modelo con boosting.

Es mucho mejor que el C5.0 sin boosting, mejor que cualquier otro mtodo simple e incluso bastante
mejor que el modelo combinado que hemos realizado anteriormente.
Tcnicas como boosting u otras similares (bagging) han proporcionado uno de los mayores
incrementos en precisin en las tcnicas de modelizacin en los ltimos aos y es conveniente
utilizarlo siempre que sea posible.
La desventaja, tanto de los modelos de combinacin manuales (como el del apartado anterior) o
automticos (como boosting), es que, en primer lugar, requiere ms tiempo de generacin (en el caso
de boosting con 10 ensayos unas 10 veces ms), pero fundamentalmente que no generan un modelo
comprensible sino una combinacin 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 decisin 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


combinacin manual junto a los otros cinco modelos. Mejora la combinacin ponderada?
Mejora el modelo conjunto al del boosting por s solo? qu conclusin sacas de esto?

Prueba el boosting con otro nmero de ensayos. En qu nmero se suele encontrar el


mximo?

2. Matrices de coste y confusin.


Las matrices de coste y de confusin nos permiten elegir el modelo que minimice costes. No siempre
el modelo que minimiza el error es el ms conveniente, simplemente porque hay clases ms caras
que otras o hay errores ms 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 ms grave y costoso que
el otro. Este mismo efecto se observa claramente en las campaas de mailings, en las que la
propaganda tiene un coste fijo y slo se obtienen beneficios si el cliente pica ante la oferta. Tambin
es til en decisiones de negocio, donde para cada caso haya que optar por dos o ms acciones para
las que se pueda estimar un coste real o aproximado.
A continuacin vamos a ver cmo trabajar con estas matrices para el caso de los medicamentos.
Imagina que tienes la siguiente matriz de costes para el problema de los medicamentos:
Adm. Correctamente
Adm. Incorrectamente

DrugA
100
450

DrugB
200
3250

DrugC
550
1760

DrugX
100
400

DrugY
150
400

Esta matriz incluye, en el caso de administracin incorrecta, los costes medios del resto de
medicamentos, porque adems 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 ms barato (Ntese que DrugB y
DrugC tienen unos costes importantes para paliar efectos secundarios cuando se administran
incorrectamente). Queremos, por tanto, ver cmo obtener un modelo que minimice costes.
Retoma la ruta de este problema en el que realizabas la particin 1.700 500. Elimina el nodo que
generaba el atributo derivado Na_to_K. Haz la particin ahora de 1.100 1.100 aproximadamente
(con un nodo particin al 50%). Genera todos los modelos y evalalos con los datos de test. La ruta
ser como sigue:

Figura 18. Ruta para evaluar los costes.

Vers que la precisin ahora ya no es del 100%. Ahora vamos a ver la matriz de confusin. Para ello
modifica los nodos Anlisis de los tres modelos para activar la matriz de confusin/coincidencia,
como se muestra en la siguiente figura:

10

Figura 19. Nodo Anlisis. 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 segn la particin aleatoria realizada durante el entrenamiento, por lo
que los comentarios a continuacin 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 Edicin y marcis copiar todo, tendris el texto (incluyendo la matriz) y lo
copiamos en el bloc de notas, como se ve en la siguiente figura.

11

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

Realiza lo mismo con los otros dos modelos, llamndolos a los tres: matrizC50.txt, matrizRN.txt,
matrizCRT.txt.
Ahora, para cada modelo, edita los ficheros y deja slo el texto de la matriz, como se muestra en
la siguiente figura:

Figura 22. Dejando slo 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.

12

Figura 24. Importando el fichero de texto.

Despus 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 clculo 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 clculo la matriz de confusin/coincidencia del C5.0.


Luego multiplica la matriz de costes por la de confusin, como se muestra en la siguiente figura:

13

Figura 27. Multiplicando las matrices de costes y confusin en Excel.

Realiza lo mismo con las otras dos matrices de confusin. Adems, 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 segn la particin aleatoria
realizada durante el entrenamiento, por lo que los comentarios a continuacin 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 tena menos precisin, es ms barato, por lo que, en el caso
de que se trate de tratamientos para enfermedades no graves, se podra optar por el primer modelo
en vez del segundo.
EJERCICIOS PROPUESTOS:

Por lo que acabamos de realizar: proporciona Clementine una solucin 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 definicin de una matriz de coste durante el entrenamiento (no
durante el anlisis) en la pestaa de costes. Introduce la matriz de coste y entrena los dos
modelos con costes. Evalalos en trminos de precisin y en trminos de coste. Qu
observas?

14

You might also like