Está en la página 1de 29

Prctica 1a de Minera de Datos

Introduccin al

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. El entorno de trabajo del SPSS Clementine .................................................................................................... 2 1.1 Orgenes (Sources) .................................................................................................................................. 4 1.2 Operaciones con Registros (Record Ops) ............................................................................................... 4 1.3 Operaciones con campos (Field Ops.)..................................................................................................... 5 1.4 Grficos (Graph) ..................................................................................................................................... 5 1.5 Modelado (Modelling) ............................................................................................................................ 6 1.6 Resultado (Output) .................................................................................................................................. 7 2. Un primer ejemplo .......................................................................................................................................... 9 3. Un problema de clasificacin........................................................................................................................ 16 3.1 Enunciado del problema. Seleccin de Frmaco................................................................................... 16 3.2 Resolucin del problema....................................................................................................................... 16 4. Un problema de agrupacin .......................................................................................................................... 25 4.1 Enunciado: Agrupacin de Empleados ................................................................................................. 25 4.2 Resolucin del Problema....................................................................................................................... 25 En esta primera prctica se van descubriendo paso a paso las posibilidades del Clementine utilizando ejemplos muy sencillos y sin realizar validaciones apropiadas de los modelos extrados. El objetivo de este primer boletn es manejarse con cierta soltura en el Clementine.

1. El entorno de trabajo del SPSS Clementine


El SPSS Clementine es una herramienta integrada de minera de datos, inicialmente de Integral Solutions Limited (ISL) y ahora de SPSS (www.spss.com). La versin 9.0.3 en ingls y en castellano incluye las siguientes caractersticas: Diversas fuentes de datos (ASCII, XLS, SPSS, SAS u ODBC). Interfaz visual basado en procesos/flujos de datos (rutas). Distintas herramientas de minera de datos: correlacin, reglas de asociacin (GRI, a priori, Carma, ...), reglas de asociacin secuenciales (secuencia), patrones secuenciales (regresin lineal), agrupacin/segmentacin/conglomerado (Kohonen, Two-step/bietpico y k-medias), clasificacin (redes neuronales, reglas y rboles de decisin: C5.0, QUEST, CHAID). Manipulacin de datos (pick & mix, muestreo, combinacin y separacin). Combinacin (manual) de modelos. Visualizacin anterior (datos en mltiples grficas) y posterior (rboles, curvas ROI/ROC, ..). Exportacin de modelos a distintos lenguajes (C, SPSS, SAS). Exportacin de datos integrada a otros programas (XLS). Generacin de informes. Gestin de proyectos, metodologa CRISP-DM, plantillas, ejecucin en batch, supernodos, ...

El entorno del Clementine est basado en nodos que se van disponiendo y conectando para formar un flujo (stream), traducido por Clementine en castellano como ruta. Las rutas pueden dejarse en ficheros separados (.str) o se pueden organizar en proyectos (.cpj). De hecho, tanto las rutas como los proyectos de minera de datos se almacenan en ficheros separados que se pueden abrir, modificar, reejecutar o reorganizar, y que son independientes de las fuentes de datos. La Figura 1 muestra un ejemplo de ruta con seis nodos interconectados:

Figura 1. Una ruta en Clementine.

Como se puede ver en la parte inferior de la Figura 1, el Clementine clasifica los nodos en seis categoras (aparte de la pestaa Favoritos, donde se incluyen los nodos ms usados): Sources (Orgenes): nodos para obtener los datos de trabajo (fuentes de datos). Record Ops (Oper. con registros): operadores para modificar o combinar registros (filas) de distintas fuentes. Es decir, selecciones y combinaciones. Field Ops (Oper. con campos): operadores para modificar o combinar campos (columnas). Graphs (Grficos): grficas. Modelling (Modelado): tipos de modelos/patrones que puede generar Clementine Output (Resultado): presentacin de tablas, anlisis de modelos, estadsticas, exportacin de datos.

Las categoras han sido las mismas (salvo pequeos cambios en la nomenclatura) desde, al menos, la versin 5.2 del Clementine, aunque el nmero de nodos en cada categora se ha ido incrementando lentamente hasta la versin 9. Pasemos a describir los nodos ms importantes de las categoras anteriores y en las versiones en las que estn disponibles. Los nombres los damos en castellano y en ingls porque parte de la ayuda (las cosas ms avanzadas) o informacin en webs de Clementine pueden estar splo en ingls y puede ser til saber cmo es el nombre de los nodos en ingls:

1.1 Orgenes (Sources)


La siguiente figura muestra los nodos disponibles en esta categora:

Figura 2. Nodos disponibles en la categora Orgenes

La siguiente tabla recoge una breve descripcin de cada uno de ellos:


NOMBRE Archivo variable) (Var. File) Archivo Fijo (Fixed File ) Base de Datos (database SQL/ODBC) Cache File Archivo SPSS (Import. SPSS) Archivo SAS (Import. SAS) Datos Usuario (User Input) V5.2 V6.0 V9.0 DESCRIPCIN Permiten leer datos de ficheros de texto que tengan un tamao de caracteres variable por registro pero un nmero fijo de campos. Permiten leer datos de ficheros de texto que tengan un tamao fijo de caracteres por campo, con lo que su uso se limita a fuentes perfectamente tabuladas. Permite obtener los datos de una base de datos generalmente a travs de ODBC. A partir de ah permite realizar consultas SQL y extraer tablas/vistas particulares. Para utilizar ficheros de cach creados por el propio Clementine utilizando el nodo File de la categora Output. Ya no se usa. Para importar datos de un fichero en formato SPSS (paquete estadstico). Para importar datos de un fichero en formato SAS (paquete estadstico). Nodo que no se puede insertar directamente y que sustituye a otro previamente creado, permitiendo introducir los datos manualmente.

1.2 Operaciones con Registros (Record Ops)


La siguiente figura muestra los nodos disponibles en esta categora:

Figura 3. Nodos disponibles en la categora Operaciones con registros

La siguiente tabla recoge una breve descripcin de cada uno de ellos:


NOMBRE Seleccionar (Select) Fundir/Combinar (Merge) Muestrear (Sample) Equilibrar (Balancear) Ordenar (Sort) Distinguir (Distinct) Agregar (Aggregate) Aadir (Append) V5.2 V6.0 V9.0 DESCRIPCIN Permite imponer condiciones de inclusin o exclusin para las filas. Es similar a un SELECT en SQL. Permite combinar los datos de dos fuentes (tablas) juntando las columnas de aquellos registros que coincidan en un atributo comn de clave. Es similar a una concatenacin relacional (JOIN de SQL). Permite hacer un muestreo de los datos, ya sean de los N primeros, ir cogiendo salteados hasta N, o coger aleatoriamente un % de los registros. Permite aumentar o disminuir la proporcin de registros que cumplen unas determinadas condiciones, lo que es til para sobremuestrar. Ordena los registros de una ruta (como un ORDER BY de SQL). Elimina los registros repetidos (como el DISTINCT de SQL pero con alguna opcin ms) Permite aplicar funciones agregadas (como el SUM, AVG, COUNT del SQL) Permite unir (como UNION ALL de SQL) dos o ms fuentes de datos.

1.3 Operaciones con campos (Field Ops.)


La siguiente figura muestra los nodos disponibles en esta categora:

Figura 4. Nodos disponibles en la categora Operaciones con campos

La siguiente tabla recoge una breve descripcin de cada uno de ellos:


NOMBRE Filter (Filtrar) Derive (Derivar) Type (Tipo) Filler (Rellenar) History (Histrico) SetToFlag (Convertir a marca) V5.2 V6.0 V9.0 DESCRIPCIN Permite eliminar campos no representativos o inservibles. Tambin permite renombrar. Permite aadir nuevos campos derivados como combinacin de otros. Permite tipar los campos (si son discretos o continuos, si son de entrada o salida, etc.). Este paso suele ser necesario para poder aplicar modelos y grficos. Tambin se puede utilizar para descartar datos anmalos. Permite rellenar o sustituir campos faltantes o anmalos siguiendo unas condiciones. Permite generar campos con memoria, especialmente en series (acumulados parciales, etc.) Permite generar nuevos campos como transformacin de un valor discreto de n posibles valores a n nuevos campos booleanos (tipo flag).

1.4 Grficos (Graph)


La siguiente figura muestra los nodos disponibles en esta categora:

Figura 5. Nodos disponibles en la categora Grficos

La siguiente tabla recoge una breve descripcin de cada uno de ellos:


NOMBRE Grfico (Plot) Histograma (Histogram) Distribucin (Distribution) Malla (Web) Coleccin/Recol ectar (Collect) Directd Web (Malla direccional) Grf. mltiple (multiplot) Evaluacin (Evaluation) V5.2 V6.0 V9.0 DESCRIPCIN Permite representar la relacin entre dos valores numricos en dos dimensiones. Representa un histograma de la distribucin de los datos respecto a un valor numrico. Representa un histograma de la distribucin de los datos respecto a un valor no numrico. Representan la fuerza de asociaciones entre distintos valores de dos o ms atributos simblicos (no numricos). Permite ver las asociaciones entre campos. A partir de la versin 9 integra la versin direccional. Similar al histograma, pero muestra la distribucin de un valor numrico respecto a otro. Genera un subconjunto de las asociaciones que muestra el nodo Web. En este caso, muestra slo las conexiones entre uno o ms campos FROM a un campo TO. En la versin 9, esta funcionalidad se ha integrado en la Malla. Es un derivado del nodo Grfico/Plot. Permite definir varios campos Y respecto a un campo X Variantes de los grficos de respuesta, que permiten evaluar qu modelo se va a comportar mejor dependiendo del contexto, como los ROI (return on investment). Muy relacionado con el anlisis ROC (Receiver Operating Characteristic).

1.5 Modelado (Modelling)


La siguiente figura muestra los nodos disponibles en esta categora:

Figura 6. Nodos disponibles en la categora Modelado

La siguiente tabla recoge una breve descripcin de cada uno de ellos:


NOMBRE Red Neuronal (Train Net) V5.2 V6.0 V9.0 DESCRIPCIN Red neuronal multicapa con backpropagation. Dispone de muchos parmetros. Especialmente til para problemas de clasificacin e interpolacin (tanto los campos de entrada como los de salida, la clase, pueden ser simblicos o numricos). Requiere uno y slo un atributo SALIDA. rbol de decisin derivado del ID3 y el C4.5 de Quinlan. Dispone de diferentes opciones. Los campos de entrada pueden ser simblicos o numricos, pero la clase ha de ser discreta. Requiere uno y slo un atributo SALIDA. Redes Asociativas de Kohonen, conocidas tambin como Knets. Permite realizar agrupamiento/conglomerado/segmentaciones (clustering). El algoritmo acta slo sobre los atributos definidos como ENTRADA (el resto se ignoran). El resultado es un conjunto de condiciones que separan/segmentan las instancias en dos o ms grupos (clusters). Construye un modelo de regresin lineal, es decir, una funcin lineal de un valor numrico respecto uno o ms atributos numricos. Requiere uno y slo un atributo SALIDA. Genera reglas de asociacin orientadas de uno o ms atributos (numricos o simblicos) o un atributo simblico de ordenadas por support y accuracy. Mtodo basado en el movimiento de centros. Permite realizar segmentaciones (clustering). El algoritmo acta slo sobre los atributos definidos como IN (el resto se ignoran). El resultado es un conjunto de condiciones que separan/segmentan las instancias en dos o ms grupos (clusters). Este nodo descubre reglas de asociacin en los datos, en la forma if antecedent(s) then consequent(s). Se puede especificar confianza y soporte. Tambin llamada regresin nominal. Es como la regresin lineal, pero para clasificacin. Es decir, requiere uno y slo un atributo SALIDA y debe ser discreto (nominal). Es un mtodo de clasificacin y regresin basado en rboles, originalmente denominado CART (Classification And Regression Trees). La clase puede ser discreta (clasificacin) o continua (regresin). Requiere uno y slo un atributo SALIDA. Permite realizar Principal component analysis (PCA) o anlisis factorial. Un mtodo para agrupamiento/conglomerado/segmentacin (clustering). Al igual que el Kmeans, el algoritmo acta slo sobre los atributos definidos como IN (el resto se ignoran). El resultado es un conjunto de condiciones que separan/segmentan las instancias en dos o ms grupos (clusters). Es un tipo de rbol de decisin, similar al C&R, pero presumiblemente ms eficiente. Es un tipo de rbol de decisin, similar al C&R, pero basado en Chi cuadrado, que adems permite particiones no binarias. Es un mtodo de reglas de asociacin. Es ms flexible que A Priori o que GRI. Permite reglas de asociacin secuenciales, es decir, que se den en ms de un ejemplo en tiempo posterior, p.ej. si un cliente compra una cuchilla y una locin para despus del afeitado, la prxima vez que vaya a comprar, habr un 80% de posibilidades de que compre la crema para el afeitado". Es necesario especificar un campo de ID, un campo de tiempo opcional y uno o varios campos de contenido.

C5.0 (Build C5.0)

Tr. Kohonen

Regression (Reg. Lineal) GRI Kmedias (Train Kmeans)

A Priori Logstica (Log. Regression) rbol C&R (C&R, CART) PCA/Factorial Bietpico (TwoStep) QUEST CHAID CARMA Secuencia (Sequence)

Extraccin de Texto (Text Extraccion) Build Rule

Permite procesar datos no estructurados o semiestructurados: documentos de texto y pginas web y extraer trminos relevantes. Este nodo puede requerir una licencia especial y la traduccin de textos puede requerir una instalacin aparte. La ayuda de este nodo slo est en ingls en la versin 9.0. Genera un conjunto de reglas de clasificacin. Los campos de entrada pueden ser simblicos o numricos, pero la clase ha de ser discreta. Requiere uno y slo un atributo SALIDA.

1.6 Resultado (Output)


La siguiente figura muestra los nodos disponibles en esta categora:

Figura 7. Nodos disponibles en la categora Resultado

La siguiente tabla recoge una breve descripcin de cada uno de ellos:


NOMBRE Tabla (Table) Anlisis (Analysis) Val. globales (Set Globals) Matriz (Matrix) Estadsticos (Statistics) Informe (Report) Archivo Plano (File) Exportar SPSS (SPSS Export) Calidad (Quality) Base de Datos (Database/ODBC Output) Procedimiento SPSS (SPSS Procedure) Excel Exportar SAS (SAS Export) Auditar Datos (Data Audit) Editor (Solution Publisher) V5.2 V6.0 V9.0 DESCRIPCIN Muestra los datos de una ruta en una tabla. Se aade a la salida de un modelo para analizar su validez. Permite calcular ciertos valores (medias, mximos, mnimos, desviaciones) que al ejecutar el nodo estn disponibles para expresiones, condiciones en cualquier nodo. Genera una matriz de ocurrencias para los valores de dos campos. En cada una de las celdas se muestra la cantidad o el porcentaje de instancias con el para de valores de cada dimensin. Genera estadsticas de distribuciones de los distintos atributos. Especialmente til para calcular correlaciones. Permite realizar informes combinando los resultados de una ruta. Permite exportar a fichero, tambin permite exportar a ficheros cachs. Exporta a ficheros de datos con el formato SPSS. Proporciona un informe sobre la proporcin de datos faltantes por campo. Permite exportar y enlazar una ruta con una fuente de bases de datos, generalmente ODBC, insertando el resultado de la ruta en una tabla. Permite ejecutar in situ en el Clementine un procedimiento estadstico generado en el paquete estadstico SPSS. Permite lanzar una ruta al Excel. Exporta a ficheros de datos con el formato SAS. El nodo Auditar datos permite realizar un primer anlisis exploratorio de los datos. Se utiliza generalmente durante la exploracin de datos iniciales, y muestra estadsticos de resumen as como histogramas y grficos de distribucin para cada campo de datos. El nodo Solution Publisher permite exportar rutas completas de Clementine para poder incrustar dichas rutas en aplicaciones externas. Puede requerir una licencia especial para su funcionamiento. Este nodo ha cambiado significativamente desde las versiones 5.2 y 6.0.

Adems de los nodos anteriores, existen nodos para los modelos, que se representan con la figura de un diamante. A partir de ahora denominaremos a estos nodos, nodos diamante, para diferenciarlos del resto.

Para ms informacin sobre un nodo, pulsa en el men Ayuda esto? y pincha en el nodo del que requieras ms informacin.

Qu es

Tambin, si estn en el rea de trabajo, puedes pulsar Edicin y luego el icono interrogante de la esquina superior derecha tambin lleva a la ayuda de ese nodo. Los manuales del Clementine son mucho ms completos que la ayuda y pueden encontrar en PDF en Inicio -> Clementine 9.0 -> Documentacin. Normalmente lleva al directorio donde est la documentacin en ingls: C:\Archivos de programa\Clementine\9.0\Help\i18n\English_US Pero de ah al directorio donde est en castellano es fcil ir: C:\Archivos de programa\Clementine\9.0\Help\i18n\spanish_es Los ficheros ms relevantes son ClementineUsersGuide.pdf y ClementineNodeReference.pdf. El resto son ms tcnicos. Finalmente, la siguiente tabla resume los modelos que pueden usarse para diferentes tareas:
NOMBRE Train Net (Red) Build C5.0 (Crear C5.0) Tr. Kohonen Regression (Reg. Lineal) GRI Train Kmeans A Priori Log. Regression (Reg. Logstica) rbol C&R Factorial/PCA TwoStep Build Rule QUEST CHAID CARMA Secuencia (Sequence) Extraccin de Texto (Text Extraccion) Statistics1 (Estadsticos)
(secuenciales)

V5.2 V6.0 V9.0

PREDICTIVO Clasificacin Regresin

Clustering

DESCRIPTIVO Reglas asociacin

Otros

Aunque no es un modelo propiamente dicho, permite calcular correlaciones. 8

2. Un primer ejemplo
Vamos a construir la ruta de la Figura 1. En primer lugar, aparte del Clementine, dispones de un directorio llamado LabKDD con todos los ficheros de datos necesarios para realizar este boletn. En particular, en este primer ejemplo, vamos a trabajar con los datos acerca de los das que se ha podido jugar al tenis, dependiendo de diversos aspectos meteorolgicos. El objetivo es poder determinar (predecir) si hoy podremos jugar al tenis. Los datos de que disponemos estn en el fichero: ..\LabKDD\PlayTennis\playtennis-evidence.txt y son los siguientes:
Sky Sunny Sunny Overcast Rain Rain Rain Overcast Sunny Sunny Rain Sunny Overcast Overcast Rain Temperature Hot Hot Hot Mild Cool Cool Cool Mild Cool Mild Mild Mild Hot Mild Humidity High High High High Normal Normal Normal High Normal Normal Normal High Normal High Wind Weak Strong Weak Weak Weak Strong Strong Weak Weak Weak Strong Strong Weak Strong PlayTennis No No Yes Yes Yes No Yes No Yes Yes Yes Yes Yes No

Abrimos el Clementine (para ello, ve a Inicio Programas Clementine 9.0 Clementine 9.0). Al abrir el programa, las dos reas de trabajo (izquierda superior y derecha superior) te aparecen en blanco (mejor dicho, en azul y gris). Existe otra parte que incluye dos pestaas (CRISP-DM y Clases) que, de momento, no vamos a utilizar (puedes minimizarla si quieres). Lo primero que vamos a hacer es insertar un nodo fuente de datos al rea de trabajo. Para ello, pincha dos veces (o pincha una vez en el nodo y despus otra vez en el rea de trabajo) en el nodo Archivo var. que est en la categora Orgenes (abajo a la izquierda). Te aparecer el nodo en el rea de trabajo, como se muestra en la Figura 8:

Figura 8. Insertando el primer nodo en el rea de trabajo

Para borrar un nodo, simplemente se selecciona y se pulsa la tecla Supr. Tambin se puede borrar con el men de contexto asociado a un nodo, el cual se abre pulsando el botn derecho sobre un nodo. Ahora vamos a conectar el nodo con una fuente de datos. Para ello, pincharemos con el botn derecho sobre el nodo Archivo variable de la zona de trabajo y seleccionaremos Edicin. En la pantalla de edicin modificaremos el nombre del fichero, el directorio donde est y la forma de importarlo (utilizando los tabuladores). Vemoslo paso por paso. Para seleccionar el fichero, simplemente pincha en los puntos suspensivos a la derecha del campo Fichero. Busca el fichero ..\LabKDD\PlayTennis\playtennis-evidence.txt. En la siguiente pantalla (Figura 9) se muestra donde pinchar y qu aparece una vez asignado el fichero.

Figura 9. Una vez asignado el fichero de datos

A continuacin pincha el CheckBox Tabulador y asegrate que el checkbox Leer nombres de campo del archivo est activados, como aparece en la siguiente Figura 10:

10

Figura 10. Opciones de formato para leer correctamente el fichero de datos

Pincha en Aceptar. Para ver que carga bien los datos vamos a aadir un nodo Tabla (est en la ltima categora Resultado). Una vez te aparezca en la zona de trabajo, el Clementine conecta ambos nodos automticamente, como vemos en la siguiente figura.

Figura 11. Dos nodos enlazados

En este caso la conexin realizada es correcta, pero para ver cmo conectar y desconectar nodos manualmente, vamos a desconectar ambos nodos. Para ello con el ratn pinchamos con el botn derecho encima de la flecha y nos aparecer la opcin de destruir la conexin:

Figura 12. Desconectando dos nodos

El resultado ser el siguiente:

11

Figura 13. Los dos nodos desconectados

Ahora vamos a unirlos manualmente. Para ello: Para enlazar dos nodos en Clementine, se pulsa el botn del medio del ratn sobre el nodo origen y se arrastra el ratn hasta el nodo destino, soltando en este momento el botn del medio.
(si el ratn no tiene botn del medio, tambin se puede realizar pulsando el botn izquierdo y derecho a la vez)

Veamos paso a paso esta delicada operacin:

Figura 14. Enlazando dos nodos

El resultado es el siguiente:

Figura 15. Dos nodos enlazados

Una vez conectados, pulsa sobre el nodo Tabla con el botn derecho y seleccionas EJECUTAR. Te debern aparecer los datos importados en una tabla, tal y como se muestra a continuacin:

Figura 16. Los datos se han enganchado correctamente

12

Como se muestra en la tabla, el problema que estbamos intentando tratar era el de ver los das que podemos jugar al tenis. Para poder abordar este problema, hemos de decir que los campos Sky, Temperature, Humidity, Wind son predictores (es decir de entrada), mientras que el campo Playtennis es la clase a predecir, el resultado (es decir la salida). Para ello vamos a aadir un nodo Tipo, que se encuentra en la categora Operaciones con Campos. Ahora enlazamos el nodo playtennis-evidence... con el nodo tipo. A continuacin, vamos a editar el nodo tipo. Para ello pinchamos con el botn derecho en tipo y pinchamos en EDICIN. Como vemos todos los nodos tienen direccin Entrada. Como la salida va a ser playtennis modificamos su direccin a Salida, como vemos en la siguiente figura:

Figura 17. Tipando los atributos.

Una vez hecho esto, le damos a Aceptar y ya estamos en disposicin de intentar aprender un modelo a partir de los datos, en este caso, una funcin, que dados unos determinados valores de los atributos de entrada nos d un valor para el valor de salida. Para ello aadimos un nuevo nodo C5.0 (est en la categora de Modelado) para construir un rbol de decisin sobre los datos. El Clementine nos conecta el nodo Tipo con el nodo C5.0, que pasa a llamarse Playtennis, quedando el resultado como se muestra en la siguiente figura.

Figura 18. Ruta resultante.

Ahora ya estamos en disposicin de aprender un modelo (en este caso un rbol de decisin). Para ello, cogemos carrerilla y sobre el nodo C50 (llamado Playtennis) le damos al botn derecho y seleccionamos Ejecutar. A minerizar!!!! Como puedes observar, se ha generado un nuevo icono en el rea de trabajo de la derecha (pestaa de Modelos, con la forma de un diamante). Somos ricos?

13

No, de momento. Pinchamos dos veces en el diamante de la derecha y nos aparece en el rea de trabajo de la izquierda.

Figura 19. Modelo generado y una copia en el rea de trabajo.

Ahora pinchamos con el botn derecho en el diamante que hemos copiado en el rea de trabajo (el que aparece a la izquierda del todo en la Figura 19) y pinchamos en Editar. En la pantallita que sale aparecen algunas reglas del rbol. Para verlas todas pulsamos en Todos, con lo que tendremos ya todas las reglas. Adems pinchamos en el %, con lo que veremos el nmero de elementos que caen por cada regla y el porcentaje de aciertos. Ahora tienes el rbol etiquetado como se muestra en la siguiente figura:

Figura 20. rbol generado y su cobertura/confianza.

14

Adems, la Figura 20 nos muestra para cada hoja cuntos ejemplos de la evidencia son cubiertos y con qu confianza (en este caso el 100% en todas las ramas). Cmo interpretramos el rbol anterior? Si pulsamos en Visor, tenemos una representacin grfica::

Figura 21. rbol representado grficamente.

La representacin lgica del rbol anterior sera: (Outlook=Sunny AND Humidity=Normal) OR (Outlook=Overcast) OR (Outlook=Rain AND Wind=Weak) Finalmente, podemos utilizar el modelo para predecir si podemos jugar o no jugar al tenis hoy. Supongamos que tenemos, p.ej., la instancia (Sky = rain, Temperature = cool, Humidity = high, Wind = strong). Podemos ver en el rbol que la clase es NO, con lo que no jugaremos al tenis. No nos haremos ricos pero nos ahorraremos un constipado. Hemos acabado, de momento, con este ejemplo sencillo. Podemos grabar lo que hemos realizado en un fichero .str mediante Archivo Guardar Ruta. Tambin, si cerramos el Clementine (aunque no es necesario hacerlo ahora), nos permitir (por defecto) grabar los modelos generados, en un fichero con nombre ModelosGenerados.gen.

15

3. Un problema de clasificacin
Vamos a abordar problemas ms complejos a partir de ahora, en particular en la parte de preparacin de datos.

3.1 Enunciado del problema. Seleccin de Frmaco


En este caso se trata de predecir el tipo de frmaco (drug) que se debe administrar a un paciente afectado de rinitis alrgica segn distintos parmetros/variables. Las variables que se recogen en los historiales clnicos de cada paciente son: Age: Edad Sex: Sexo BP (Blood Pressure): Tensin sangunea. Cholesterol: nivel de colesterol. Na: Nivel de sodio en la sangre. K: Nivel de potasio en la sangre.

Hay cinco frmacos posibles: DrugA, DrugB, DrugC, DrugX, DrugY. Se han recogido los datos del medicamento idneo para muchos pacientes en cuatro hospitales (los ficheros estn en el directorio ..\LabKDD\drugs). Se pretende, para nuevos pacientes, determinar el mejor medicamento a probar.

3.2 Resolucin del problema


En primer lugar vamos a coger los datos del primer hospital, ya que al ser el de menor tamao (200 registros), permite hacer ms pruebas inicialmente. Limpiamos la zona de trabajo (podemos seleccionar y borrar todos los nodos o ir al men Archivo -> Nueva Ruta). Los datos del fichero drug1n tienen cabecera, con lo que aadiremos un nodo fuente Archivo Var. y al editar, indicaremos el nombre y directorio del fichero y marcaremos el checkbox para que lea el nombre de los campos a partir de la primera lnea del fichero (es el valor por defecto):

Figura 22. Abriendo el fichero del primer hospital

16

Ahora aadiremos un nodo tabla y lo engancharemos con el nodo Archivo Var.. Podemos ver los datos ya cargados al ejecutar la tabla, como se ve en la siguiente figura:

Figura 23. Datos del primer hospital

La primera pregunta que nos podemos hacer es ver qu frmacos son ms comunes en general, para ver si todos suelen ser igualmente efectivos en trminos generales. Para ello aadimos un nodo Distribucin en la categora Grficos y lo enlazamos con la fuente de datos drug1n. La situacin debe ser similar a la siguiente:

Figura 24. Primeros pasos analizando los frmacos

Si editamos el nodo distribucin, podemos elegir el atributo por el cual vamos a representar el grfico. Seleccionamos drug como el atributo para mostrar las distribuciones.

17

Figura 25. Pasos para visualizar la distribucin de los frmacos

Ahora ya podemos ejecutar la ruta y ver la distribucin del uso de frmacos en el hospital 1.

Figura 26. Distribucin de los frmacos en el hospital 1

Vemos que el frmaco ms efectivo es el Y, que se administra con xito en casi la mitad de los pacientes. Una regla vulgar sera aplicar el frmaco Y, en el caso que falle, el frmaco X, y as sucesivamente siguiendo las frecuencias de uso con xito. Con la herramienta Clementine seguro que lo podemos hacer mucho mejor... Apliquemos lo mismo que hemos realizado en el ejemplo anterior. Intentemos generar un rbol de decisin. Construyamos y ejecutemos una ruta con un nodo Tipo (donde el atributo drug se ha puesto como salida) y con un nodo C5.0. Aadamos el modelo generado al rea de trabajo como se ve en la siguiente figura:

Figura 27. Realizacin de un modelo directamente sobre los datos

18

El modelo resultante es el siguiente (para verlo slo tienes que pinchar con el botn derecho en el diamante y EDITAR. Una vez all mostrar Todos los niveles y tambin el %):

Figura 28. rbol de decisin directamente sobre los datos

Como podemos observar, el rbol tiene bastantes ramas (en concreto 13). Podemos ver cul es el acierto (tambin denominado precisin o accuracy) de este rbol respecto a los datos de entrenamiento. Para ello, conectamos el nodo Tipo al nodo diamante Drug y ste a un nuevo nodo Anlisis de la categora Resultado, como se ve en la siguiente figura:

Figura 29. Ruta para analizar la calidad de un modelo

Si ejecutamos el nodo anlisis (con el men contextual pulsando el botn derecho) obtenemos los siguientes resultados:

19

Figura 30. Calidad del modelo generado para los datos de entrenamiento

Con lo que tenemos un 96,5% de acierto. Es decir un error de slo el 3,5% sobre los datos de entrenamiento. Este modelo es muchsimo mejor que s slo nos guiamos por la distribucin, que nos dara un error de ms del 50% (el 54,5% de las veces el medicamento DRUGY no es el adecuado). De todas maneras, es posible hacerlo mejor... pero cmo? con otro tipo de algoritmo de aprendizaje, una red neuronal, p.ej.? Es posible que otros modelos (p.ej. las redes neuronales) dieran mejor resultado (ya lo probaremos), pero el asunto aqu es que igual no hemos examinado suficientemente los datos de entrada. Vamos a analizar, con ms detenimiento, los atributos de entrada del problema. Es posible que se puedan establecer mejores modelos si combinamos algunos atributos. Podemos analizar pares de atributos utilizando diferentes grficos. Para comparar los atributos discretos, el grfico Malla suele ser conveniente. Creemos un nodo malla y enganchemos el nodo de fuentes de datos drug1n con l. Al editarlo, decimos que vamos a examinar los campos discretos (Sex, BP, Cho, Drug):

Figura 31. Configurando un nodo malla

Usaremos valores Absolutos. Ahora ejecutaremos el nodo:

20

Figura 32. Relacin (asociaciones) entre los atributos discretos Sex x BP x Cho x Drug con un nivel de 5 (izquierda) y uno de 35 (derecha)

Las lneas ms gruesas representan asociaciones ms fuertes. A un nivel absoluto de 5 no parece ver ninguna relacin especial entre los distintos valores de los atributos discretos, exceptuando la clase (valor de salida drug), que va decreciendo la intensidad de una manera regular para los frmacos menos usuales. Pero si movemos el lmite a 35 podemos ver algunas cosas interesantes: la presin High y Low est ms asociada a hombres que a mujeres (slo se asocia la presin High). En cualquier caso, este tipo de grfico nos permite conocer un poco mejor la relacin entre los atributos discretos (no numricos) pero no parece aportar mucha informacin de cmo podemos intentar mejorar el modelado. Estudiemos la relacin que hay entre los atributos continuos (numricos) y su influencia en la clase. Para ello vamos a utilizar el nodo grfico de la categora grficos. Aadimos el nodo al rea de trabajo y lo enganchamos con el nodo de entrada drug1n. Lo editamos y seleccionaremos que queremos comparar el Na y el K. Para ello al editar el nodo grfico pondremos en el Campo X el campo Na, en el Campo Y el campo K y en el Superponer la clase Drug, tanto en color como en forma. Lo dems se deja por defecto, como se ve en la siguiente figura:

Figura 33. Editando un nodo Grfico

En la pestaa de Aspecto podemos cambiar el fondo del grfico a color blanco, para que se vean ms claros los colores. El resultado al ejecutar el grfico es el siguiente:

21

Figura 34. Resultado de un nodo Grfico (Na x K x Drug)

En este grfico s que se ven algunas caractersticas muy significativas. Parece haber una clara separacin lineal entre una relacin K/Na alta y una relacin K/Na baja. De hecho, para las concentraciones K/Na bajas, el frmaco Y es el ms efectivo de una manera clara y parece mostrarse que por encima de un cierto cociente K/Na ese medicamento deja de ser efectivo y se debe recurrir a los otros cuatro. Podemos utilizar este conocimiento que acabamos de extraer para mejorar nuestros modelos. Hemos establecido que el medicamento a administrar depende en gran medida del cociente entre K/Na. Por tanto, vamos a realizar un nuevo modelo que utilice este cociente. Para ello, vamos a crear un nuevo atributo derivado (tambin llamados atributos pick & mix) mediante el nuevo nodo Derivar de la categora Oper. con campos, que enganchamos con el nodo drug1n.

Figura 35. Definiendo un atributo derivado

Ahora duplica (para duplicar un nodo, en el men contextual con el botn derecho pulsamos en copiar y luego en el rea de trabajo pulsamos pegar) los nodos Tipo y el nodo C5.0 Drug que

22

tenamos de antes y engnchalos al ruta que sale del nodo Na_to_Ka. Cambia el nombre del nodo Drug (C5.0) a Drug2, para no liarte. Para ello, pulsa el botn derecho sobre Cambiar Nombre y Anotaciones:

Figura 36. Cambiando el nombre del nodo

Ahora vamos a la pestaa Modelo y cambiamos el nombre del campo de salida, como se ve en la siguiente figura:

Figura 37. Cambiando el nombre del modelo a generar

Ahora ejecuta ese nodo y te generar un nuevo modelo Drug2. Adelo al rea de trabajo, engnchalo con el nodo Tipo de abajo y aade un nodo de Anlisis como hicimos con el primer modelo. El grafo de rutas resultante debe ser el de la siguiente figura:

Figura 38. Rutas realizadas para el problema del frmaco

23

Ahora, si examinamos el modelo Drug2 tenemos lo siguiente:

Figura 39. Segundo modelo que utiliza el atributo derivado Na_to_K

Modelo mucho ms simple y corto que el anterior, en el que se ve la importancia del atributo que hemos creado Na_to_K. Podemos verlo de manera grfica (pestaan Visor) tambin:

Figura 40. Visin grfica del segundo modelo que utiliza el atributo derivado Na_to_K

24

Adems si analizamos su calidad con el nodo de anlisis, tenemos:

Figura 41. Calidad del segundo modelo que utiliza el atributo derivado Na_to_K

Tenemos con el nuevo modelo un 99.5% de precisin, con lo que el modelo es mucho ms fiable que antes. La precisin no es exactamente 100% en este caso porque hay un ejemplo con Na_to_K = 14,642. El rbol lo toma slo con dos dgitos 14,64 y por tanto le asigna DrugX, mientras que el anlisis lo toma con los tres dgitos y le asigna DrugY, ya que la regla principal depende de si es mayor o menor de 14,64. No obstante, los rboles de decisin pueden tener poda y tener porcentajes que no son del 100% ni siquiera con los mismos datos que se han usado para el aprendizaje. Todos estos detalles los trataremos ms adelante. De hecho, como veremos, los modelos los evaluaremos con datos de validacin/prueba, nunca con los mismos datos de entrenamiento, como hemos hecho ahora. Ahora graba la ruta en un fichero .str, p.ej. drug1.str, porque volveremos sobre este problema.

4. Un problema de agrupacin
4.1 Enunciado: Agrupacin de Empleados
La empresa de software para Internet Memolum Web quiere extraer tipologas de empleados, con el objetivo de hacer una poltica de personal ms fundamentada y seleccionar a qu grupos incentivar. Las variables que se recogen de las fichas de los 15 empleados de la empresa son: Sueldo: sueldo anual en euros. Casado: si est casado o no. Coche: si viene en coche a trabajar (o al menos si lo aparca en el prking de la empresa). Hijos: si tiene hijos. Alq/Prop: si vive en una casa alquilada o propia. Sindic.: si pertenece al sindicato revolucionario de Internet Bajas/Ao: media del n de bajas por ao Antigedad: antigedad en la empresa Sexo: H: hombre, M: mujer.

Los datos de los 15 empleados se encuentran en el directorio ..\LabKDD\empleados\empleados.txt). Se intenta extraer grupos de entre estos quince empleados.

4.2 Resolucin del Problema


En primer lugar vamos a leer los datos de los empleados. Limpiamos la zona de trabajo o creamos una nueva ruta. Los datos del fichero empleados tienen cabecera y estn tabulados, con lo que

25

aadiremos un nodo fuente Archivo Var. y al editar, indicaremos el nombre y directorio del fichero y marcaremos el checkbox para que obtenga el nombre de los atributos a partir de la primera lnea del fichero y adems marcaremos el checkbox Tabulador:

Figura 42. Abriendo el fichero fuente empleados.txt

A continuacin aadimos un nodo Tipo y lo enganchamos. Todos los atributos deberan ser de ENTRADA exceptuando el nmero de ejemplo (#Ej), que es irrelevante y pondremos NINGUNA, como se muestra en la siguiente figura:

Figura 43. Tipando los datos de los empleados

Ahora vamos a utilizar un algoritmo de clustering para obtener grupos sobre esta poblacin. En primer lugar vamos a probar con tres grupos. Para ello aadimos un nodo Kmedias (en modelado), lo enganchamos al nodo Tipo y modificamos el campo Nmero de conglomerados a 3, tambin

26

marcamos que nos genere el campo de distancia y que nos muestra la proximidad de conglomerados, como se ve en la siguiente figura:

Figura 44. Determinando el nmero de clusters

Ahora podemos ejecutar la ruta, obteniendo un nodo diamante K-medias. Lo podemos aadir y enganchar al nodo Tipo, como se muestra en la siguiente figura:

Figura 45. Ruta para el problema de los empleados

Si examinamos el nodo diamante Kmeans vemos qu caractersticas tiene cada cluster/conglomerados. A continuacin, se muestra de una manera ms resumida a cmo lo muestra el Clementine (que incluye desviaciones y distancias): cluster 1 5 examples Sueldo : 226000 Casado : No -> 0.8 S -> 0.2 Coche : No -> 0.8 S -> 0.2 Hijos : 0 Alq/Prop : Alquiler -> 1.0 Sindic. : No -> 0.8 S -> 0.2 Bajas/Ao : 8 Antigedad : 8 Sexo : H -> 0.6 cluster 2 4 examples Sueldo : 225000 Casado : No -> 1.0 Coche : S -> 1.0 Hijos : 0 Alq/Prop : Alquiler -> 0.75 Prop -> 0.25 Sindic. : S -> 1.0 Bajas/Ao : 2 Antigedad : 8 Sexo : H -> 0.25 M -> 0.75 cluster 3 6 examples Sueldo : 188333 Casado : S -> 1.0 Coche : S -> 1.0 Hijos : 2 Alq/Prop : Alquiler -> 0.17 Prop -> 0.83 Sindic. : No -> 0.67 S -> 0.33 Bajas/Ao : 5 Antigedad : 8 Sexo : H -> 0.83 M -> 0.17

27

Podemos verlo de una manera grfica tal y como lo muestra el Clementine en la pestaa de Visor:

Figura 46. Visualizacin grfica de las distribuciones por grupos formados.

En esta visualizacin grfica podemos ver adems a qu campos el K-medias les asigna mayor o menor importancia a la hora de haber realizado los grupos. Si aadimos un nodo tabla a la salida del nodo diamante Kmedias podemos observar qu ejemplos exactamente han cado en qu clster.

28

Figura 47. Ejemplos agrupados por clusters.

Podemos ver a qu conglomerado va a parar cada ejemplo. Pero adems, podemos ver la distancia al centro de su conglomerado. Cuanto menor es ese valor la pertenencia a su conglomerado es ms fuerte. En cambio, cuanto mayor es ese valor el empleado no est tan claramente asignado dentro de su conglomerado. EJERCICIOS PROPUESTOS: Cmo interpretaras los tres grupos anteriores? Vara el nmero de clusters (2, 4, 5, ...) y vuelve a ejecutar la ruta para cada uno de estos valores. qu se puede observar? Analiza las distancias entre grupos y las distancias de los elementos al centro Ahora graba la ruta en un fichero .str, p.ej. empleados.str, porque volvemos sobre este problema a continaucn.

29

También podría gustarte