Professional Documents
Culture Documents
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.
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:
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
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:
Ahora ya podemos ver que se han juntado todos los 432 datos.
Ahora, para facilitar la tarea, vamos a renombrar todos los atributos de los modelos con nombres ms
cortos:
Ahora ya ponemos un nuevo nodo Derivado que calcule la media de los cinco, como sigue:
Si aadimos otro nodo Derivar para que nos convierta combinat en un valor entero 0 y 1, tenemos
un clasificador combinado.
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:
La ruta propuesta para esta actividad se encuentra a continuacin. Se recomienda intentarlo al menos
10 minutos antes de echar mano del mismo.
EJERCICIOS PROPUESTOS:
Los nodos de derivacin que debers utilizar para hacer una combinacin ponderada son los
siguientes.
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:
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:
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,
EJERCICIOS PROPUESTOS:
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:
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
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.
11
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:
12
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:
13
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.
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