ejemploaterrizado weka

Upload: rosita-diaz

Post on 06-Jul-2018

225 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/18/2019 Ejemploaterrizado WEKA

    1/18

    Práctica de Minería de Datos

    Introducción al

    Curso de Doctorado Extracción Automática de Conocimientoen Bases de Datos e Ingeniería del Software

    Uniersitat Polit!cnica de "al!ncia

     José Hernández Orallo. (  #orallo$dsic%u&%es). Mar'o ())*

    Cèsar Ferri Ramírez. ( cferri$dsic%u&%es). Mar'o ())*

    mailto:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]

  • 8/18/2019 Ejemploaterrizado WEKA

    2/18

    (

    Índice

    +% El entorno de tra,a#o del -e.a %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    (+%+ Ex&lorer %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /

    (% Un &rimer e#em&lo%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%0/% Un &ro,lema de clasificación %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1

    /%+ Enunciado del &ro,lema% Selección de 2ármaco %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  1/%( 3esolución del &ro,lema %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4

    /%/ 2iltrado de atri,utos %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%++/%0 A&rendi'a#e Sensi,le al Coste%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+//%5 Com,inación de Modelos%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+0

    0% Un &ro,lema de agru&ación%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+50%+ Enunciado6 Agru&ación de Em&leados%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+5

    0%( 3esolución del Pro,lema%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+55% 3eglas de Asociación 7 De&endencias %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+*

    En esta práctica se vamos a descubrir paso a paso las posibilidades del Weka utilizandoejemplos muy sencillos y sin realizar validaciones apropiadas de los modelos extraídos. Elobjetivo de este boletín es manejarse con cierta soltura en el Weka.

    1. El entorno de trabajo del Weka

    Weka1

    es un conjunto de librerias J! para la extracción de conocimientos desde bases de datos.Es un so"t#are $a sido desarrollado bajo licencia %&' lo cual $a impulsado (ue sea una de las suites

    más utilizadas en el área en los )ltimos a*os.'a versión +.,.- incluye las siuientes características/

    0iversas "uentes de datos 23II4 J0536.

    Inter"az visual basado en procesos7"lujos de datos rutas6.

    0istintas $erramientas de minería de datos/ relas de asociación a priori4 8ertius4 ...64 4arupación7sementación7conlomerado 3ob#eb4 E9 y k:medias64 clasi"icación redesneuronales4 relas y árboles de decisión4 aprendizaje 5ayesiona6 y reresión ;eresión lineal42!9..6.

    9anipulación de datos pick < mix4 muestreo4 combinación y separación6.

    3ombinación de modelos 5ain4 5oostin ...6

    !isualización anterior datos en m)ltiples rá"icas6 y posterior árboles4 curvas ;=34 curvas decoste..6.

    Entorno de experimentos4 con la posibilidad de realizar pruebas estadísticas t:test6.

  • 8/18/2019 Ejemploaterrizado WEKA

    3/18

    /

    +8tt&699www%cs%wai.ato%ac%n'9:ml9we.a9index%8tml

    http://www.cs.waikato.ac.nz/~ml/weka/index.htmlhttp://www.cs.waikato.ac.nz/~ml/weka/index.html

  • 8/18/2019 Ejemploaterrizado WEKA

    4/18

    0

    Figura 1. Ventana inicial de Weka.

    3omo se puede ver en la parte in"erior de la >iura 14 Weka de"ine , entornes de trabajo

    Simple CLI / Entorno consola para invocar directamente con java a los pa(uetes de #eka

    Explorer / Entorno visual (ue o"rece una inter"az rá"ica para el uso de los pa(uetes

    Experimenter / Entorno centrado en la automatización de tareas de manera (ue se "acilite la

    realización de experimentos a ran escala.

    KnowledgeFlow / &ermite enerar proyectos de minería de datos mediante la eneración de "lujos

    de in"ormación.

    1.1 Explorer 

    En esta parte vamos a centrarnos en el entorno Explorer4 ya (ue permite el acceso a la mayoría delas "uncionalidades interadas en Weka de una manera sencilla.

    Figura 2. Ventana del Explorador 

  • 8/18/2019 Ejemploaterrizado WEKA

    5/18

    5

    3omo se puede observar existen ? sub:entornos de ejecución/

    Preprocess/ Incluye las $erramientas y "iltros para carar y manipular los datos

    Classification/ cceso a las t@cnicas de clasi"icación y reresión

    Cluster / Intera varios m@todos de arupamiento Associate/ Incluye una pocas t@cnicas de relas de asociación

    Select Attributes / &ermite aplicar diversas t@cnicas para la reducción del n)mero de atributos

    Visualize/ En este apartado podemos estudiar el comportamiento de los datos mediante

    t@cnicas de visualización.

    2. Un primer ejemplo

    !amos a empezar con un ejemplo muy sencillo. En primer luar4 aparte del Weka4 dispones de un"ic$ero zip disponible en ###.dsic.upv.es7  Ac"erri7#ek a con todos los "ic$eros de datos

    necesarios para realizar este boletín. En particular4 en este primer ejemplo4 vamos a trabajar con los datos acerca de los días (ue se $a podido juar al tenis4 dependiendo dediversos aspectos meteorolóicos. El objetivo es poder determinar predecir6 si $oy podremos juar al tenis. 'os datos de (ue disponemos están en el "ic$ero/ #eat$er.ar""B y son los siuientes/

    Sky

    Sunny

    Sunny

    Overcast

    Rain

    Temperature

    Hot

    Hot

    Hot

    Mild

    Humidity

    High

    High

    High

    High

    Wind

    Weak

    Strong

    Weak

    Weak

    PlayTennis

    No

    No

    Yes

    Yes

    Rain

    Rain

    Overcast

    Sunny

    Sunny

    Rain

    SunnyOvercast

    Overcast

    Cool

    Cool

    Cool

    Mild

    Cool

    Mild

    MildMild

    Hot

    Normal

    Normal

    Normal

    High

    Normal

    Normal

    NormalHigh

    Normal

    Weak

    Strong

    Strong

    Weak

    Weak

    Weak

    StrongStrong

    Weak

    Yes

    No

    Yes

    No

    Yes

    Yes

    YesYes

    Yes

    Rain Mild High Strong No

     brimos el Weka y lanzamos el Explorer. 'o primero (ue vamos a $acer es carar los datos en elárea de trabajo. &ara ello4 pinc$a en el botón C=pen "ileB del entorno CpreprocessB. 2eleccionamos el"ic$ero C#eat$er.ar""B y si todo $a ido bien veremos la pantalla de la >iura +. Weka utiliza un "ormatoespecí"ico de datos4 el "ormato ar"". Dn "ic$ero con este "ormato4 no sólo contiene los datos desdedonde vamos a e"ectuar el aprendizaje4 además incluye meta:in"ormación sobre los propios datos4como por ejemplo el nombre y tipo de cada atributo4 así como una descripción textual del orien delos datos. &odemos convertir "ic$eros en texto conteniendo un reistro por línea y con los atributosseparados con comas "ormato csv6 a "ic$eror ar"" mediante el uso de un "iltro convertidor.

    http://www.dsic.upv.es/http://www.dsic.upv.es/http://www.dsic.upv.es/

  • 8/18/2019 Ejemploaterrizado WEKA

    6/18

    *

    Figura 3. Cargando el dataset Weater 

    0esde esta ventana podemos conocer bastantes detalles del dataset (ue acabamos de carar. &or ejemplo4 el sistema nos indica (ue tenemos 1, reistros con atributos. 2i seleccionamos cada unode los atributos4 conoceremos más in"ormación del atributo en cuestión/ tiponominal o num@rico64valores distintos4 reistros (ue no tienen in"ormación de ese atributo4 el valor máximo y mínimo sóloen atributos num@ricos64 y "inalmente un $istorama con in"ormación sobre la distribución de los

    ejemplos para ese atributo4 re"lejando con el uso de colores la distribución de clases de cada uno delos reistros. &or ejemplo4 en la >iura + podemos observar (ue el atributo =utlook tiene tres valoresdi"erentes Sunn! "#ercast $ain   6 siendo la distribución de F4,4G. En el caso de los reistrosdonde el atributo "utloo%&sunn 4 tenemos + con clase no y H con clase es

    ' 4 cuando

    "utloo%&o#ercast los , reistros son es4 y "inalmente cuando "utloo%&rain existen + con clase es4y H con clase no.

    &ulsando en el botón C(oose en Filter 4 tendremos acceso a multitud de $erramientas para elpreprocesamiento de datos. Estas $erramientas permiten entre otras muc$as "uncionalidades6/

    ;ealizar un "iltrado de atributos

    3ambiar el tipo de los atributos discretizar o numerizar6

    ;ealizar muestreos sobre los datosormalizar atributos num@ricos

    Dni"icar valores de un mismo atributo

    Dna vez carado el "ic$ero4 ya estamos en disposición de aprender un modelo en este caso un árbolde decisión6. &ara ello4 seleccionamos en la pesta*a Classif .

    3omo podemos observar4 el entorno cambia bastante con respecto a la ventana anterior.&ulsando en el botón c(oose de 3lassifier podemos con"iurar el m@todo de clasi"icación o reresión(ue (ueramos utilizar. Estos m@todos se $an arupado a randes rasos en las siuientes "amilias

    +/

    (Podemos conocer el significado de cada color seleccionando el atri,uto clase; en este caso  play%

    /Esta clasificación no es ex8austia; 7a

  • 8/18/2019 Ejemploaterrizado WEKA

    7/18

    >

    5ayes. 9@todos basados en el paradima delaprendizaje de 5ayes

    >unciones. 9@todos CmatemáticosB/ ;edes neuronales4 reresiones4 2!9

    'azy. 9@todos (ue utilizan el paradima de aprendizaje perezoso4 es decir no construyenun modelo

    9eta. 9@todos (ue permiten combinar di"erentes m@todos de aprendizaje

    8rees. 9@todos (ue aprenden mediante la eneración de árboles de decisión

    ;ules. 9@todos (ue aprenden modelos (ue se pueden expresar como

    relas.

     demás en esta ventana podemos establecer como (ueremos e"ectuar la validación delmodelo aprendido

    Dse trainin set. 3on esta opción Weka entrenará el m@todo con todos los datos disponibles ya posteriori realiza la evaluación sobre los mismos datos.

    2upplied test set. 3on esta opción podemos carar un conjunto de datos normalmentedi"erentes a los de aprendizaje6 con los cuales se realizará la evaluación

    3ross:validation. 2e realiza la evaluación mediante la t@cnica de validación cruzada. En estecaso podemos establecer el n)mero de plieues a utilizar.

    &ercentae split. 2e de"ine un porcentaje con el (ue se aprende el modelo. 'a evaluación se

    realiza con los datos restantes.

    &ara este primer ejemplo vamos a utilizar el aloritmo clásico de aprendizaje de árboles de decisión3,. J,K es el nombre (ue se le da en Weka64 &ara ello pulsamos C(oose4 seleccionamos )*+ en,rees. 2i pulsáramos sobre la ventana (ue contiene el nombre del m@todo podríamos modi"icar losparámetros especí"icos de este m@todo. En este caso dejaremos los valores por de"ecto.

    &or )ltimo seleccionamos como opción de evaluación test options 6 la opción -se training set 4 y yaestamos listos para ejecutar el m@todo de aprendizaje. &ara ello pulsamos el botón Start (uedespierta al pájaro Weka de su letaro y realiza el aprendizaje del modelo predictivo4 en este caso unárbol de decisión.

    2i no $a $abido problemas4 el sistema nos muestra en la caja CClassifier "utput B la siuientein"ormación/

    LLL ;un in"ormation LLL

    2c$eme/ #eka.classi"iers.trees.J,K :3 M.H :9 H

    ;elation/ #eat$er 

    Instances/ 1,

     ttributes/ outlook

    temperature

    $umidity

    #indy

    play

    8est mode/ evaluate on trainin data

    LLL 3lassi"ier model "ull trainin set6 LLL

    J,K pruned tree

  • 8/18/2019 Ejemploaterrizado WEKA

    8/18

    1

    ::::::::::::::::::

    outlook L sunny

    N $umidity OL -/ yes H.M6

    N $umidity P -/ no +.M6

    outlook L overcast/ yes ,.M6

    outlook L rainy

    N #indy L 8;DE/ no H.M6

    N #indy L >'2E/ yes +.M6

    umber o" 'eaves /

    2ize o" t$e tree / K

    8ime taken to build model/ M.H seconds

    LLL Evaluation on trainin set LLL

    LLL 2ummary LLL

    3orrectly 3lassi"ied Instances 1, 1MM Q

    Incorrectly 3lassi"ied Instances

    Rappa statistic 1

    M M Q

    9ean absolute error M

    ;oot mean s(uared error M

    ;elative absolute error M Q

    ;oot relative s(uared error M Q

    8otal umber o" Instances 1,

    LLL 0etailed ccuracy 5y 3lass LLL

    8& ;ate >& ;ate &recision ;ecall >:9easure 3lass

    1 M 1 1 1 yes

    1 M 1 1 1 no

    LLL 3on"usion 9atrix LLL

    a b O:: classi"ied as

    S M N a L yes

    M N b L no

    3omo podemos observar #eka nos in"orma en primer luar de alunos parámetros del dataset.  

    continuación nos muestra de manera textual el modelo aprendido en este caso el árbol de decisión6.

  • 8/18/2019 Ejemploaterrizado WEKA

    9/18

    4

    &or ultimo nos incluye in"ormación sobre la evaluación del modelo. En este problema4 el árbolaprendido tiene una precisión máxima 1MMQ6 por lo (ue todas las medidas de error son M. demáspodemos conocer más detalles de la distribución de los ejemplos por clase en la matriz de con"usión6.

    &odemos visualizar el árbol de una manera más atractiva si pulsamos el botón derec$o sobre eltexto trees.)*+ de la caja $esult/list . 2eleccionamos la opción !isualize 8ree4 y obtendremos elárbol de decisión de la >iura ,.

     demás4 la >iura , nos muestra para cada $oja cuántos ejemplos de la evidencia son cubiertos.3on el botón derec$o sobre el texto trees.)*+ de la caja $esult/list tendremos acceso otras opcionesmás avanzadas para el análisis del modelo aprendido.

    Figura !. "rbol representado gr#$icamente.

    3. Un problema de clasi$icaci%n

    !amos a abordar problemas más complejos a partir de a$ora4 en particular en la parte de preparaciónde datos.

    3.1 Enunciado del problema. Selección de Fármaco

    En este caso se trata de predecir el tipo de "ármaco dru6 (ue se debe administrar a un pacientea"ectado de rinitis al@rica se)n distintos parámetros7variables. 'as variables (ue se recoen en los$istoriales clínicos de cada paciente son/

     e/ Edad

    2ex/ 2exo

    5& 5lood &ressure6/ 8ensión sanuínea.

    3$olesterol/ nivel de colesterol.

    a/ ivel de sodio en la sanre.

    R/ ivel de potasio en la sanre.

    Tay cinco "ármacos posibles/ 0ru4 0ru54 0ru34 0ruU4 0ruV. 2e $an recoido los datos delmedicamento idóneo para muc$os pacientes en cuatro $ospitales. 2e pretende4 para nuevospacientes4 determinar el mejor medicamento a probar.

  • 8/18/2019 Ejemploaterrizado WEKA

    10/18

    +)

    3.2 Resolución del problema

    En primer luar vamos a carar los datos del primer $ospital "ic$ero Cdru1n.ar""B4 ya (ue al ser elde menor tama*o HMM reistros64 permite $acer más pruebas inicialmente.

    'a primera preunta (ue nos podemos $acer es ver (u@ "ármacos son más comunes en eneral4para ver si todos suelen ser iualmente e"ectivos en t@rminos enerales. &ara ello seleccionamos el

    atributo drug 4 y de esta manera vemos al distribución por clases. &odemos concluir (ue el"ármaco más e"ectivo es el V4 (ue se administra con @xito en casi la mitad de los pacientes. Dnarela vular sería aplicar el "ármaco V4 en el caso (ue "alle4 el "ármaco U4 y así sucesivamentesiuiendo las "recuencias de uso con @xito.

    Weka tiene un m@todo (ue permite enerar este modelo tan simple4 es decir asinar a todos los

    ejemplos la clase mayoritaria4 recibe el nombre de 0ero$ *

    en la "amilia rules. 2i vamos a la parte de3lassi"y y ejecutamos este modelo evaluamos sobre todos los datos de entrenamiento4 veremos (uecomo era de esperar obtenemos un clasi"icador de precisión ,.Q.

    &odemos utilizar m@todos más complejos como el J,K. 2i probáis esta t@cnica ver@is (ue seobtiene el árbol de la >iura (ue obtiene una precisión del S-Q.

    Figura &. "rbol de decisi%n directamente sobre los datos

    3omo podemos observar4 el árbol tiene bastantes relas en concreto 1H6. &odemos ver cuál es elacierto tambi@n denominado precisión o accurac 6 de este árbol respecto a los datos deentrenamiento. 2in embaro4 en este caso tenemos un error de sólo el +4Q sobre los datos deentrenamiento. Este modelo es muc$ísimo mejor (ue sí sólo nos uiamos por la distribución4 (ue nosdaría un error de más del MQ el ,4Q de las veces el medicamento 0;D%V no es el adecuado6.

    0e todas maneras4 es posible $acerlo mejor... pero cómoX con otro tipo de aloritmo deaprendizaje4 una red neuronal4 p.ej.X

    Es posible (ue otros modelos p.ej. las redes neuronales6 dieran mejor resultado ya loprobaremos64 pero el asunto a(uí es (ue posiblemente no $emos examinado su"icientemente losdatos de entrada.

    0En el caso de regresión este m=todo asigna la media aritm=tica a todos los casos &redecir%

  • 8/18/2019 Ejemploaterrizado WEKA

    11/18

    ++

    !amos a analizar4 con más detenimiento4 los atributos de entrada del problema. Es posible (ue sepuedan establecer mejores modelos si combinamos alunos atributos. &odemos analizar pares deatributos utilizando di"erentes rá"icos.

    &ara comparar la relación entre atributos en Weka debemos acudir al entorno Visualize4 dondepodemos realizar rá"icas entre pares de atributos y ver si tienen aluna relación con las clases. 0eentre todas las combinaciones posibles4 destaca la (ue utiliza los parámetros de los niveles de sodio

    y potasio R y a6 ver 

    &ulsando en la parte in"erior sobre las clases4 podemos cambiar los colores asinados a las clases4mejorando la visualización del rá"ico. demás podemos ampliar y ver con más detalle aluna zonadel rá"ico con select instance y submit .

    Figura '. (esultado de un nodo )r#$ico *+a x , x -rug

    En este rá"ico sí (ue se ven alunas características muy sini"icativas. &arece $aber una claraseparación lineal entre una relación R7a alta y una relación R7a baja. 0e $ec$o4 para las

    concentraciones R7a bajas4 el "ármaco V es el más e"ectivo de una manera clara y parece mostrarse(ue por encima de un cierto cociente R7a ese medicamento deja de ser e"ectivo y se debe recurrir alos otros cuatro.

    &odemos utilizar este conocimiento (ue acabamos de extraer para mejorar nuestros modelos./emos establecido 0ue el medicamento a administrar depende en gran medida del cocienteentre ,+a. &or tanto4 vamos a realizar un nuevo modelo (ue utilice este cociente. &ara ello4 vamos acrear un nuevo atributo derivado tambi@n llamados atributos pick < mix6 mediante el uso de los "iltrosdel entorno C preprocessB.

    2eleccionamos esta parte de la aplicación4 y pulsamos C(oose en Filter . 0e entre todos los "iltrosposibles eleimos -nsuper#ised.Attribute.Addexpression . Este atributo nos permite la creación denuevos atributos mediante la combinación de atributos ya existentes &ick

  • 8/18/2019 Ejemploaterrizado WEKA

    12/18

    +(

     ceptamos con =R4 y una vez con"iurado el "iltro lo empleamos con appl . !eremos en esemomento como aparece el nuevo atributo en la lista de atributos. 2iempre podremos des$acer estoscambios pulsando en undo.

      continuación4 vamos a ver como "unciona el nuevo atributo4 para ello volvemos a aprender unárbol de decisión J,K utilizando otra vez todos los datos para la evaluación. tención (ue debemosindicarle (ue la clase es el atributo drugs ZZZ ya (ue por de"ecto toma la clase como el )ltimo atributo.

    Esto lo $acemos en la ventana de selección de la clase4 en el entorno Classif .

     $ora4 si examinamos el modelo aprendido tenemos lo siuiente/

    Figura . egundo modelo 0ue utili4a el atributo deri5ado +a6to6,

    9odelo muc$o más simple y corto (ue el anterior4 en el (ue se ve la importancia del atributo (ue$emos creado aYtoYR. demás si analizamos su calidad vemos (ue el nuevo modelo un 1MMQ deprecisión4 con lo (ue el modelo es muc$o más "iable (ue antes.

    o obstante4 los árboles de decisión pueden tener poda y tener porcentajes (ue no son del 1MMQni si(uiera con los mismos datos (ue se $an usado para el aprendizaje. 0e $ec$o si cambiamos elm@todo de evaluación a validación cruzada con 1M plieues4 podremos observar (ue la precisión bajalieramente SSQ6. 2in embaro4 tal y como vimos en la parte de teoría4 este m@todo de evaluaciónes muc$o más justo. =bservad4 (ue el modelo (ue aparece corresponde al aprendizaje al modeloaprendido con todos los datos. Weka muestra este modelo de manera sólo in"ormativa4 ya (ue no loutiliza para la evaluación

    3.3 Filtrado de atributos

    En el árbol de decisión "inal se puede observar (ue no se utilizan todos los atributos para e"ectuar una clasi"icación4 esto indica (ue $ay atributos (ue no son sini"icativos para la resolución

    del

  • 8/18/2019 Ejemploaterrizado WEKA

    13/18

    +/

    problema. Existen m@todos como los árboles de decisión4 a los cuales no les a"ecta de manerarave la presencia de atributos no sini"icativos4 ya (ue en el propio mecanismo de aprendizajerealizan una selección de atributos por su relevancia. 2in embaro4 otros m@todos no realizan esteproceso4 por lo (ue si realizamos un "iltrado de atributos previo al aprendizaje podremos mejorar demanera relevante su precisión4 y al mismo tiempo simpli"icamos los modelos.

    Dn ejemplo de m@todo de aprendizaje (ue reduce su calidad ante la presencia de atributos no

    relevantes4 es el m@todo 1ai#e 2aes. !eamos (ue precisión obtiene este m@todo4 para elloseleccionamos en Classif el m@todo 1ai#e2aes y lo evaluamos con evaluación cruzada 1Mplieues6. Este m@todo obtiene una precisión de S1Q4 por lo tanto una precisión muc$a más baja(ue los árboles de decisión.

    5ien4 en este caso probablemente los atributos no relevantes están a"ectando a la calidad delm@todo. !eamos como podemos e"ectuar un "iltrado de atributos. &ara ello vamos a la sección Select  Attributes . Esta sección esta especializada en este proceso4 y contiene una ran cantidad det@cnicas diversas para realizar la selección de atributos. 2i recordamos la parte teórica4 sabremos (ue$ay dos "amilias de t@cnicas/ los wrappers4 y los m@todos de "iltro. 0adas las características delproblema en este caso podemos probar con una t@cnica wrapper realizando una b)s(uedaex$austiva. &ara ello4 pulsamos C(oose de  AttributeE#aluator y seleccionamos el m@todo3rapperSubsetE#al . &ara con"iurarlo pulsamos en la ventana de texto. !amos a utilizar el propio

    1ai#e 2aes para el wrapper 4 por lo (ue seleccionaremos es m@todo en classifier . &or otra parte enSearc(4et(od 4 indicamos (ue (ueremos una b)s(ueda ex$austiva eliiendo Ex(austi#eSearc(. 0eesta manera tendremos la $erramienta con"iurada tal y como aparece en la >iura K.

    Figura 7. Filtrando atributos.

      continuación ejecutamos el m@todo de "iltrado pulsando Start. 8ras esperar un poco veremos4(ue este m@todo de "iltraje nos recomienda usar los atributos/  Age4 Sex 4 2P . C(olesterol y 1a5to5K .!eamos si tiene razón4 para ello volvemos a la pantalla  preprocess4 y eliminamos losatributos

  • 8/18/2019 Ejemploaterrizado WEKA

    14/18

    o 2í

    o M 1

    2í   M

    +0

    descartados a y R64 para ello los marcamos en la parte de  Attributes4 y pulsamos en $emo#e. En

    realidad4 podemos aplicar los "iltros directamente al conjunto de datos si accedemos a los m@todos atrav@s de Filter en la ventana Preprocess.

    >inalmente4 para conocer la precisión (ue obtiene 1ai#e2aes con este subconjunto de atributos4volvemos a la ventana Classif 4 y seleccionamos el m@todo 1ai#e2aes. 3on validación cruzadaa$ora se alcanzan S?. puntos de precisión.

    &or ultimo4 observad (ue tambi@n podemos utilizar los propios m@todos de aprendizaje comom@todos de "iltrado. &or ejemplo4 si seleccionamos los atributos (ue utiliza el árbol de decisión/ Age4 2P . C(olesterol y 1a5to5K . obtenemos una precisión del S?.Q con 1ai#e2aes.

    3.!  Aprendizaje Sensible al Coste

    En muc$os problemas4 nos encontraremos situaciones donde dependiendo el tipo de error (uecometamos tendremos un coste di"erente asociado. &or ejemplo4 suponed (ue en un entornobancario tenemos un modelo (ue nos recomienda si conceder o no un cr@dito a un determinadocliente a partir de las características propias de ese cliente. =bviamente4 y desde el punto de vista delbanco4 es muc$o más costoso (ue el sistema se e(uivo(ue dando un cr@dito a una persona (ue no lodevuelve4 (ue la situación contraria4 denear un cr@dito a un cliente (ue sí lo devolvería.

    &ara este tipo de problemas4 la in"ormación sobre los costes de los errores viene expresadaa trav@s de una matriz de coste. En este tipo de matrices recoe el coste de cada una de las posiblescombinaciones entre la case predic$a por el modelo y la clase real.

    Weka nos o"rece mecanismos para evaluar modelos con respecto al coste de clasi"icación4 asícomo de m@todos de aprendizaje basados en reducir el coste en vez de incrementar la precisión.

    En este ejemplo vamos a utilizar el dataset Ccredit:.ar""B. Este conjunto de datos contiene 1.MMMejemplos (ue representan clientes de una entidad bancaria (ue demandaron un cr@dito. Existen sieteatributos num@ricos y 1+ nominales. 'os atributos de cada objeto indican in"ormación sobre el clienteen cuestión/ estado civil4 edad4 parado4 etc.4 así como in"ormación del cr@dito/ propósito del cr@dito4cantidad solicitada4 etc. 'a clase es binaria e indica si el cliente puede ser considerado como "iablepara concederle el cr@dito o no.

    Este dataset4 trae in"ormación de los costes de clasi"icación errónea4 en concreto lasiuiente matriz de coste/

    ;eal

    &redic$o

    Esta tabla indica (ue es veces más costoso si se otora un cr@dito a una persona (ue no lo

    devuelve4 (ue la situación contraria4

    5ien4 vamos a ver cómo podemos evaluar los modelos con respecto a la matriz de coste en Weka.&ara ello vamos a la ventana Classif 4 y en ,est "ptions4 pulsamos 4ore "ptions. Tablilitamos laopcion Cost/Sensiti#e E#aluation. &ulsamos Set para introducir la matriz. Indicamos el n)mero declases4 H4 e introducimos la matriz de costes. Es importante (ue pulsemos enter tras escribir las ci"rasya (ue es bastante (uis(uillosa esta ventana. >inalmente cerramos todas las ventanas.

    Empezamos con la clasi"icación más simple4 asinar siempre la clase mayoritaria4 0ero$ 6.'anzamos la evaluación con validación cruzada de 1M plieues. V si todo $a ido bien4 veremos (uese obtiene una precisión del -M Q4 y un coste de de 1MM unidades. Era de esperar pues nose(uivocamos +MM veces pero en el peor de los casos. Es importante (ue con"irm@is (ue estáistrabajando con la matriz de coste con"iurada correctamente. Esto lo pod@is aseurar observando la

    5Por su&uesto no de,emos eliminar la clase%

  • 8/18/2019 Ejemploaterrizado WEKA

    15/18

    +5

    matriz de coste (ue aparece en el texto Classifier "utput 4 en la parte E#aluation cost matrix . 2i noes la correcta4 volved a con"iurarla4 en ocasiones da muc$a uerra esta ventana.

    &robemos a$ora con otro m@todo4 por ejemplo aive 5ayes. &ara ello seleccionamos41ai#e2aes de 2aes. En esta ocasión obtenemos una precisión de -.,Q y un coste de KMunidades. 9ejoramos ambas medidas4 sin embaro $emos de tener en cuenta (ue estosm@todos están inorando la matriz de costes4 por lo (ue se construyen de manera (ue intentanreducir el n)mero de errores. Weka4 o"rece varias t@cnicas (ue permiten adaptar las t@cnicas a uncontexto con costes. 0os de estas t@cnicas están interadas CostSensiti#eClassifier en 4eta.Este pa(uete o"rece dos t@cnicas bastante sencillas para (ue un m@todo de aprendizaje sea sensibleal contexto. 'a primera versión consiste en (ue los modelos aprendidos asinen las clases de manera(ue se minimicen los costes de clasi"icación errónea. ormalmente4 esta asinación se realiza demanera (ue se reduzcan los errores en la clasi"icación. 'a seunda t@cnica consiste en modi"icar lospesos asinados a cada clase de manera (ue se da más importancia a los ejemplos (ue sonsusceptibles de cometer los errores más costosos. &ara optar entre estos m@todos utilizamos laopción 4inimizeExpectedCost . 2i "ijamos esa opción como cierta4 se utiliza la primera t@cnicaasinación de clase de coste mínimo64 si la dejamos como "alsa4 se utiliza la seundacompensar los costes mediante los pesos de los ejemplos6.

    &robemos como "uncionan estos m@todos. 2eleccionad este pa(uete dejando 0ero$ como

    clasi"icador base. demás $emos de indicarle al m@todo la matriz de coste (ue $a de utilizar en elaprendizaje. Esto se $ace4 "ijando Cost4atrixSource como -se Explicit 4atriz Cost . V en Cost 4atrix introducimos la misma matriz de coste (ue $emos utilizado para la evaluación.4inimizeExpectedCost lo dejamos como "also.

    El es(uema resultante sería/

    eka!classi"iers!meta!CostSensitiveClassi"ier #cost#matri$ %&'!' (!') *!' '!'+% #S ( #W

    eka!classi"iers!rules!,eroR

    2i lanzamos el m@todo veremos (ue a$ora en vez de tomar la clase mayoritaria para clasi"icar todos los ejemplos4 toma la clase minoritaria4 de esta manera4 aun(ue la precisión es muy baja +MQ64el coste total es menor -MM.

    !eamos (ue sucede si en vez de 0ero$ utilzamos aive5ayes y tomando la misma con"iuración

    de CostSensiti#eClassifier . =btenemos4 como es de esperar un resultado bastante mejor/ ?SQ deprecisión y un coste de +M unidades. >inalmente4 si probamos el otro modo de convertir aive5ayesen un clasi"icador sensible al contexto es decir cambiamos 4inimizeExpectedCost a 8rue64 todavíareducimos más el coste/ &recisión ?S.Q y coste 1- unidades.

    3.& Combinación de Modelos

    Dno de los aspectos más destacados de Weka es la ran cantidad de m@todos de combinación demodelos (ue posee. Estos m@todos mejoran la calidad de las predicciones mediante combinando laspredicciones de varios modelos. En realidad estos m@todos implementan la estrateia de Ccuatro ojosven más (ue dosB4 aun(ue tambi@n es cierto (ue para (ue esta a"irmación se cumpla los ojos deben

    tener buena vista4 y además no deben tener un comportamiento id@ntico4 ya (ue en ese caso no$abría mejora.

    &or el contrario4 utilizar m@todos de combinación de modelos tambi@n tiene desventajas.&rincipalmente4 el modelo se complica4 perdiendo comprensibilidad. demás4 necesitamos másrecursos tiempo y memoria6 para el aprendizaje y utilización de modelos combinados.

    En este ejemplo vamos a utilizar de nuevo el dataset Ccredit:.ar""B. Iniciamos el ejercicio carandoel "ic$ero Ccredit:.ar""B. continuación4 acudimos a la pantalla Classif . !amos a ver (ue precisiónobtiene el m@todo J,K en su con"iuración por de"ecto utilizando validación cruzada con 1M plieues.&ara este problema4 J,K obtiene una precisión de -M.Q4 lo cual4 aun(ue a priori no está mal4 esrealmente un resultado muy pobre. >ijaos (ue utilizando el criterio de aceptar todos los cr@ditostendríamos una precisión del -MQ. &or lo tanto J,K casi no aporta nada a este problema.

  • 8/18/2019 Ejemploaterrizado WEKA

    16/18

    +*

    !amos a empezar con el m@todo 2agging . 3omo sabeis esta t@cnica se "undamenta enconstruir un conjunto de n modelos mediante el aprendizaje desde n conjuntos de datos. 3adaconjunto de dato se construye realizando un muestreo con repetición del conjunto de datos deentrenamiento.

    &ara seleccionar 2agging 4 pulsamos C(oose y en 4eta4 tendremos el m@todo 2agging . !amos a3on"iurarlo. En este caso las opciones más importantes son numIterations donde marcamos el

    n)mero de modelos base (ue (ueremos crear4 y Classifier 4 donde seleccionamos el m@todo basecon el cual deseamos crear los modelos base. >ijamos numIterationsLHM y Classifier L J,K. 0eesta manera tendremos el m@todo con"iurado de la siuiente manera/

    eka!classi"iers!meta!-agging #P ('' #S ( #. /' #W eka!classi"iers!trees!012 ## #C '!/* #M /

    2i lanzamos #eka4 observareis (ue obviamente le cuesta más en realidad HM veces más6.V a$ora obtenemos una precisión de -Q4 $emos mejorado puntosZZZ. &uede parecer poco4 peropensad el dinero (ue podría suponer una mejora de puntos en el acierto en la predicción decr@ditos impaados de una entidad bancaria

    !eamos (ue pasa con 2oosting . Esta t@cnica es bastante parecida al 2agging 4 aun(ue utiliza unaestrateia más ineniosa ya (ue cada iteración intenta correir los errores cometidos anteriormentedando más peso a los datos (ue se $an clasi"icado erróneamente.

    2eleccionamos Ada2oost46 en 9eta. En este m@todo las opciones más importantes son tambi@nnumIterations donde marcamos el n)mero de iteraciones máximas es decir de modelos base64 yClassifier 4 donde seleccionamos el m@todo base con el cual deseamos crear los modelos base.3omo en caso anterior4 "ijamos numIterationsLHM y Classifier L J,K. 0e esta manera tendremos elm@todo con"iurado de la siuiente manera/

    eka!classi"iers!meta!3da-oostM( #P ('' #S ( #. /' #W eka!classi"iers!trees!012 ## #C '!/* #M /

    En este caso la mejora es más modesta4 ya (ue nos (uedamos en -1.?. &robemos a incrementar el n)mero máximo de iteraciones a ,M. 3omo ver@is4 mejoramos un poco la predicción4 ya (uelleamos a -+.4 eso sí4 a base de dedicar más tiempo al aprendizaje.

    !. Un problema de agrupaci%n

    !.1 Enunciado: Agrupación de Empleados

    'a empresa de so"t#are para Internet C9emolum WebB (uiere extraer tipoloías de empleados4 con elobjetivo de $acer una política de personal más "undamentada y seleccionar a (u@ rupos incentivar.'as variables (ue se recoen de las "ic$as de los 1 empleados de la empresa son/

    2ueldo/ sueldo anual en euros.

    3asado/ si está casado o no.

    3oc$e/ si viene en coc$e a trabajar o al menos si lo aparca en el párkin de la

    empresa6. Tijos/ si tiene $ijos.

     l(7&rop/ si vive en una casa al(uilada o propia.

    2indic./ si pertenece al sindicato revolucionario de Internet

    5ajas7*o/ media del n[ de bajas por a*o

     nti\edad/ anti\edad en la empresa

    2exo/ T/ $ombre4 9/ mujer.

    'os datos de los 1 empleados se encuentran en el "ic$ero Cempleados.ar""B. 2e intenta extraer rupos de entre estos (uince empleados.

    !.2 Resolución del roblema

    !amos a utilizar un aloritmo de clusterin para obtener rupos sobre esta población. En primer luar 

    vamos a probar con tres rupos. &ara ello acudimos a la ventana Cluster . !amos a empezar a

  • 8/18/2019 Ejemploaterrizado WEKA

    17/18

    +>

    trabajar con el aloritmo de Rmedias. &ara ello en 3lusterer4 pulsamos 3$oose4 y seleccionamos2impleRmeans. 'o con"iuramos de"iniendo como + el 1umClusters.

    Figura 8. -eterminando el n9mero de clusters

     $ora podemos ejecutar el m@todo pulsando Start .

    2i examinamos el resultado conoceremos la suma media de errores cuadráticos de cada valor conrespecto a su centro. demás vemos (u@ características tiene cada cluster7conlomerados.  

    continuación4 se muestra de una manera más resumida a cómo lo muestra el Weka (ue incluyedesviaciones6/

    cluster 1 cluster 2 cluster 3

    ? Ejemplos examples , examples

    Sueldo : 29166.6667Casado : No

    Coche : NoHijos : 0.1667Alq/Prop : AlquilerSindic. : S!ajas/A"o : 6.16An#i$%edad : &.'''

    Se(o : )

    Sueldo : 16600Casado : S

    Coche : SHijos : 1.&Alq/Prop : PropSindic. : No!ajas/A"o : '.*An#i$%edad : &.*Se(o : H

    Sueldo : 1*+00Casado : S

    Coche : SHijos : 0.2+Alq/Prop : AlquilerSindic. : No!ajas/A"o : 6.2+An#i$%edad : 7.7+

    Se(o : H

    2i pulsamos el botón derec$o sobre 2impleRmeans de la parte de $esult List &odremos ver a (u@%rupo va a parar cada ejemplo. &ero además4 podemos estudiar cómo se asinan los ejemplos a losclusters dependiendo de los atributos seleccionados para dibujar la rá"ica.

    &. (eglas de :sociaci%n ; -ependencias

    !amos a estudiar a$ora los datos del $undimiento del 8itanic. 'os datos se encuentran en el "ic$eroCtitanic.ar""B y corresponden a las características de los H.HM1 pasajeros del 8itanic. Estos datos sonreales y se $an obtenido de/ 7$eport on t(e Loss of t(e 8,itanic9 :S.S.;7 :6

  • 8/18/2019 Ejemploaterrizado WEKA

    18/18

    +1

    &ara este ejemplo sólo se van a considerar cuatro variables/

    3lase M L tripulación4 1 L primera4 H L seunda4 + L tercera6

    Edad 1 L adulto4 M L ni*o6

    2exo 1 L $ombre4 M L mujer6

    2obrevivió 1 L sí4 M Lno6

    &ara ello4 vamos a ver (ue relas de asociación interesantes podemos extraer de estos atributos.&ara ejecutar los m@todos en Weka de relas de asociaciación4 seleccionamos la ventana deassociate.

    Entre otros4 este sistema de minería de datos provee el pa(uete CWER.associations.prioriB (uecontiene la implementación del aloritmo de aprendizaje de relas de asociación priori. &odemoscon"iurar este aloritmo con varias opciones/ con la opción C-pper2ound4inSupport B indicamos ellímite superior de cobertura re(uerido para aceptar un conjunto de ítems. 2i no se encuentranconjuntos de ítems su"icientes para enerar las relas re(ueridas se va disminuyendo el límite $astallear al límite in"erior opción CLower2ound4inSupport B6. 3on la opción Cmin4etric B indicamos lacon"ianza mínima u otras m@tricas dependiendo del criterio de ordenación6 para mostrar una rela deasociación] y con la opción Cnum$ulesB indicamos el n)mero de relas (ue deseamos (ue aparezcan

    en pantalla. 'a ordenación de estas relas en pantalla puede con"iurarse mediante la opciónC4etric,peB4 alunas opciones (ue se pueden utilizar son/ con"ianza de la rela4 lift con"ianza dividopor el n)mero de ejemplos cubiertos por la parte derec$a de la rela64 y otras más elaboradas.

    !eamos las relas (ue extrae este aloritmo tomando los valores por de"ecto/

    (! Clase4' 22* 445 6dad4( 22* con"78(9

    /! Clase4' Se$o4( 2:/ 445 6dad4( 2:/ con"78(9

    ;! Se$o4( So4' (;:1 445 6dad4( (;/? con"78'!?@9

    1! Clase4' 22* 445 6dad4( Se$o4( 2:/ con"78'!?@9

    *! Clase4' 6dad4( 22* 445 Se$o4( 2:/ con"78'!?@9

    :! Clase4' 22* 445 Se$o4( 2:/ con"78'!?@9

    @! So4' (1?' 445 6dad4( (1;2 con"78'!?@9

    2! Se$o4( (@;( 445 6dad4( (::@ con"78'!?:9

    ?! 6dad4( So4' (1;2 445 Se$o4( (;/? con"78'!?/9

    ('! So4' (1?' 445 Se$o4( (;:1 con"78'!?/9

    En cada rela4 tenemos la cobertura de la parte iz(uierda y de la rela4 así como la con"ianza de larela. &odemos conocer aluna rela interesante aun(ue otras los son menos. &or ejemplo4 la rela

    1 indica (ue4 como era de esperar toda la tripulación es adulta. 'a rela H nos indica lo mismo4 pero

    teniendo en cuenta a los varones. &arecidas conclusiones podemos sacar de las relas ,4 y ?. 'arela + nos indica (ue los varones (ue murieron "ueron en su mayoría adultos S-Q6. 'a rela -destaca (ue la mayoría (ue murieron "ueron adultos S-Q6. V "inalmente la 1M in"orma (ue la mayoríade los muertos "ueron $ombres SHQ6.

    3abe destacar (ue la calidad de las relas de asociación (ue aprendamos muc$as veces vienelastrada por la presencia de atributos (ue est@n "uertemente descompensados. &or ejemplo4 en estecaso la escasa presencia de ni*os provoca (ue no aparezcan en las relas de asociación4 ya (ue lasrelas con este ítemset poseen una baja cobertura y son "iltradas. &odemos mitiar parcialmente este"enómeno si cambiamos el m@todo de selección de relas.