d3 clustering

Upload: jose-luis-borja-davila

Post on 12-Oct-2015

51 views

Category:

Documents


0 download

TRANSCRIPT

  • 5/21/2018 D3 Clustering

    1/14

    Sistemas Inteligentes de Gestin: Cl

    &

    FICHEROS DE DATOS

    Datos de empleados.saviris.csv

    ETREGA DE LA PRCTICA

    Clustering.doc

    DatosApplet3ClustersSinOutliers{.data|

    3ClustersConOutliers(.data| ClusteringDifcil.data

    Clustering_DatosApplet.kni Clustering_DatosApplet.spo

    centroides_*.pmmlIris

    Clustering_Iris.knime.zipDatosEmpleados

    DatosEmpleados.muestra.csvClustering_DatosEmpleados.

    stering 1

    .sav}

    .sav}

    e.zip

    nime.zip

  • 5/21/2018 D3 Clustering

    2/14

    Para la realizacinque nos permitir c(k-means):

    http://home.dei.poli

    Nuestro conjuntovariables de tipo nu

    tuplas de nuestro co

    Seleccionando la[Initialize], pulse S van cambiando los

    cercanos.

    A continuacin, creque ir guardando lo

    Ejecute ahora el siguiente ahttp://www.cs.ualberta.ca/Este applet nos permitir c

    1. En la lista de conjucorrespondiente a c

    2. Como algoritmo [C3. Cree un conjunto d4. Pulse el botn Start5. Pulse el botn Sho

    Sistemas Inteligentes de Gestin: Cl

    e esta prctica, comenzaremos ejecutando elomprobar el funcionamiento del algoritmo

    mi.it/matteucc/Clustering/tutorial_html/Appl

    e datos, en este caso, estar formado pormrico, representables por tanto en el plano.njunto de datos corresponder a un punto.

    pcin para mostrar el historial [Show Hiarty ejecute paso a paso el algoritmo [Stepcentroides y la asignacin de los puntos a su

    e con el WordPad un fichero llamado Clustresultados obtenidos durante la realizacin

    pplet:

    yaling/Cluster/Applet/Code/Cluster.html

    ear nuestro propio conjunto de datos a golpe

    tos de datos [Choose a Dataset], escoja la onjuntos de datos definidos por el usuario [

    hoose an Algorithm], elijaK-Means.

    datos haciendo click sobre el rea entre los

    para ejecutar el algoritmo de clustering.

    para visualizar los clusters obtenidos como

    stering 2

    s iguiente aplet,de las k medias

    etKM.html

    tuplas con dosCada una de las

    tory], inicialice] para ver cmos centroides ms

    ering.docen ele los ejercicios.

    de ratn:

    cinser Define].

    jes X e Y.

    resultado.

  • 5/21/2018 D3 Clustering

    3/14

    Sistemas Inteligentes de Gestin: Clustering 3

    Al mostrar los resultados, con Show, se muestra cada punto con un color que representael cluster al que ha sido asignado cada punto. Los puntos en rojo corresponden a loscentroides de cada agrupamiento.

    Usando la opcinImport/Export, podemos generar el conjunto de datos correspondientea los puntos que hayamos introducido manualmente. Los pares de valores mostrados porel applet van separados por un espacio en blanco y se pueden importar fcilmente enotras herramientas.

    Cree una nube de 8 puntos cualesquiera en el plano. Cuando haya generado su conjunto

    de datos, incluya sus pares de valores al fichero Clustering.docy capture la pantallade la nube de 8 puntos (conAlt+ImprPant). Inclyala en el fichero Clustering.doc(con Ctrl+V).

    A continuacin, escoja aleatoriamente dos centroides (indquelos en Clustering.doc)y realice una ejecucin manual del algoritmo, incluyendo, para cada iteracin, loscentroides y la tabla de distancias de todos los puntos a los centroides (tantas filas comocentroides y tantas columnas como puntos). Termine la ejecucin en cuanto hayantranscurrido 5 iteraciones o no varen los centroides.

    El ajuste del modelo puede medirse a travs de la suma total de distancias al cuadradode los puntos a sus centroides (SSE). Calcule el ajuste del modelo determinado por elvalor final de SSE.

  • 5/21/2018 D3 Clustering

    4/14

    Sistemas Inteligentes de Gestin: Clustering 4

    Utilizando el mismo applet del ejercicio anterior, construiremos los siguientes ficherosde datos, con al menos 40 puntos en cada uno de ellos:

    3ClustersSinOutliers.data (nube de puntos con 3 clusters sin outliers). 3ClustersConOutliers.data (nube de puntos con 3 clusters bien definidos,

    ms 5 valores anmalos o outliers que no pertenezcan a ningn cluster).

    A los dos ficheros anteriores, adales una primera lnea de texto con el nombre de lasvariables (a saber, X, Y).

    Capture la pantalla (conAlt+ImprPant) de las tres nubes de puntos generadas y cpielasen el fichero Clustering.doc(Ctrl+V).

    MUY IMPORTATE:Cada alumno deber trabajar con sus propios datos.

    o se admitirn dos prcticas con los mismos conjuntos de datos.

  • 5/21/2018 D3 Clustering

    5/14

    Sistemas Inteligentes de Gestin: Clustering 5

    Cree un proyecto en KNIME llamado Clustering_DatosApplet con los siguientesnodos que nos permitan agrupar los datos de 3ClustersSinOutliers.data:

    Un nodo para leer el fichero. Un nodoData Manipulation > Column > ormalizerpara normalizar los datos,

    ya que KNIME implementa k-Means sin normalizar previamente las variables.Con los datos obtenidos desde el applet no hay ningn problema, ya que ambasvariables tienen magnitudes similares. Sin embargo, es bueno que nosacostumbremos a normalizar las variables.

    NOTA: Recordemos que, en SPSS, se haca de la forma siguiente:Analizar > Estadsticos Descriptivos > Descriptivos > Guardar

    valores tipificados como variables.

    Un nodoMining > Clustering > k-Meanspara realizar el clustering. Este nodoaadir una columna Cluster, indicando el agrupamiento asignada a cada tuplade nuestro conjunto de datos. En su configuracin, debemos indicar los atributosque se usarn para establecer los clusters. En nuestro ejemplo, usaremos ambos.

    Un nodoDataViews > Property > Color Managerpara colorear los datoscorrespondientes a la columna Clusterdel nodo anterior.

    Un nodoDataViews > Interactive Tablepara ver los resultados. Dos nodosDataViews > Scatter Plotpara ver la nube de puntos original y la

    coloreada con los clusters obtenidos.

    Para ver los centroides obtenidos, seleccione con la derecha el nodo k-Meansy muestrelos resultados (View: Cluster View).

  • 5/21/2018 D3 Clustering

    6/14

    Para escribir en un ficheronodoIO > Writer > PMMconfiguracin del nodo Pcentroides_3ClustersSi

    El fichero PMML no es mde minera de datos. Puedehttp://www.dmg.or

    http://en.wikipedia. http://www.frandzi.Observe que, en nuestro prmuestran los datos normalisiguiente:

    De la salida de k-identificador de filaColumn Filteraplic

    A continuacin, comediante un nodo Jcomo mtodo de re

    As quedara nuestro proye

    Abra ahora los nodosInterla nube de puntos y con elcomo naranja y, adems, tainteractiva.

    Dentro del mismo proyectootro conjunto de datos, 3ClEn el fichero Clustering.centroides obtenidos por Kaproximadamente con los a

    Sistemas Inteligentes de Gestin: Cl

    os valores asociados a los centroides, seleccWritery lo enlazamos con el nodo k- eans

    ML, debemos indicar el nombre del ficheronOutliers.pmmlen nuestro caso.

    s que un fichero XML que se utiliza para deencontrar ms informacin sobre el estndar/rg/wiki/Predictive_Model_Markup_Langua

    corex.es/PWP/frandzi/dm4pmml.html

    yecto actual, tanto la tabla como la nube deados. Si queremos ver los datos originales,

    ans, mantenga nicamente el atributo Clust

    (RowID). Esto lo podemos hacer con un noado sobre la salida de Color Manager.

    bine el resultado del Column Filtercon losoiner (eligiendo elRowIDcomoJoin Colum

    nin).

    cto KNIME tras realizar estas modificacione

    ctive Tabley Scatter Plot. Si pinchamos soatn derecha seleccionamosHilite, dicho pumbin se marca el dato correspondiente en la

    KNIME, cree ahora un modelo anlogo al austersConOutliers.data .

    doc, introduzca despus de cada nube de pu-Means y analice si los clusters generados segrupamientos que cabra esperar.

    stering 6

    onamos un. En lae salida,

    cribir modelosPMML en:

    ge

    puntos nosasta hacer lo

    ry el

    o de tipo

    datos originaleseInner Join

    :

    re un punto ento se marcatabla

    terior para el

    tos loscorresponden

  • 5/21/2018 D3 Clustering

    7/14

    Sistemas Inteligentes de Gestin: Clustering 7

    Ahora, lea los datos del fichero 3TresClustersSinOutliers.datadesde SPSS. Paraello, seleccioneArchivo > Leer datos de textoe indique que en el fichero de datos

    utilizar espacios como delimitadores para separar los valores de las distintas variables:

    En la siguiente pantalla del asistente, cambie el nombre de las variables V1 y V2 por Xe Y, respectivamente. Para ambas variables, seleccione umrica para especificar sutipo. Finalmente, guarde el fichero resultante en formato SPSS con el nombre3ClustersSinOutliers.sav .

    IMPORTANTE: SPSS no normaliza las variables antes de ejecutar k-Means, por loque habra que crear las variables normalizadas (Analizar > Estadsticos

    Descriptivos > Descriptivos > Guardar valores tipificados como variables) yusar k-Means sobre las estas nuevas variables, no sobre las originales.

  • 5/21/2018 D3 Clustering

    8/14

    Sistemas Inteligentes de Gestin: Clustering 8

    A continuacin, seleccioneAnalizar > Clasificar > Conglomerado de K-medias.Asegrese de incluir las dos variables de nuestro conjunto de datos y escoja 3 comonmero de "conglomerados" (el valor del parmetro k):

    Lance el "anlisis de conglomerados" y, una vez ejecutado el algoritmo de las KMedias, aparecern los centroides de los agrupamientos:

    NOTA: Para que los valores asociados a los centroides aparezcan con decimales,deber indicarlo en las opciones de las casillas:

  • 5/21/2018 D3 Clustering

    9/14

    Sistemas Inteligentes de Gestin: Clustering 9

    Cuando trabaje con variables normalizados, debe tener en cuenta que los centroidestambin estarn normalizados. Para averiguar cules seran los valores originales (nonormalizados) correspondientes a los centroides, debe deshacer la tipificacin. Es decir,debe multiplicar el valor normalizado por la desviacin tpica y sumar la mediaaritmtica (para cada una de las variables) .

    Incluya en el fichero Clustering.doclas tablas correspondientes a los centroides,tipificados y no tipificados.

    Salen los mismos resultados que los obtenidos con KNime? Razone la respuesta eincluya su razonamiento en el fichero Clustering.doc.

    Repita el mismo estudio para el otro conjunto de datos: 3ClustersConOutliers.data .

    Antes de terminar, asegrese de guardar los resultados de su sesin completa en SPSS,que deber entregar en un fichero que se llame Clustering_DatosApplet.spo.

    NOTA

    :Weka s implementa k-Means normalizando previamente lasvariables. Adems, usa una variante de k-medoids para poder trabajartambin con atributos nominales. En este caso, los centroides seconstruyen usando la media aritmtica de los puntos del cluster para cadavariable numrica y la moda de los puntos del cluster para cada variablenominal.

  • 5/21/2018 D3 Clustering

    10/14

    Ejecute el applet di

    Este applet muestrapaso, muestra cformando clusters (

    puntos). Al principprimer cluster conclusters y clusters

    proceso, nos quedar

    Ejecute varias vece

    Abra el fichero ClusterinSeguiremos trabajando en3ClustersSinOutliers.s

    Para lanzar un algoritmo d

    Analizar > Clasificar > Co

    A continuacin, asegrese

    Incluya las dos variables (botn Grficos..., indique

    IMPORTANTE: Como sucednormalizan las variables, a

    Estandarizar de la ventana

    Sistemas Inteligentes de Gestin: Cl

    ponible en http://metamerist.com/slhc/exam

    un conjunto de datos de ejemplo sobre doso un algoritmo de clustering jerrquicosando la distancia eucldea para medir la di

    io se conectan los dos puntos ms cercandos elementos. Progresivamente, se irn untre s, mostrando cada cluster de un colo un nico cluster.

    el applet con distintos conjuntos de datos d

    g_DatosApplet.spo que ya creamos en la sl sobre los datos que ya tenamos enav.

    clustering jerrquico en SPSS, seleccione

    nglomerados Jerrquicos.

    e escoge las siguientes opciones:

    , Y) a la hora de realizar el clustering y, pinue desea crear un dendrograma.

    a con el algoritmo de las K Medias, por defeno ser que se indique explcitamente median

    que aparece al pulsar sobreMtodo...Hgal

    stering 10

    le40.htm

    ariables. Paso aglomerativo vatancia entre doss, formando uniendo puntos a. Al finalizar el

    partida.

    ccin anterior.

    hando en el

    to no see la opcin

    .

  • 5/21/2018 D3 Clustering

    11/14

    Sistemas Inteligentes de Gestin: Clustering 11

    Haga doble click sobre el dendrograma obtenido en el visor de resultados. Se abrir otraventana, en la que se puede editar (en formato de texto) dicho dendrograma. Quite eltexto necesario para que no se vea partido y cpielo en el fichero Clustering.doc.

    Identifique de alguna forma los 3 clusters naturales que deberan salir. Para ello, puede

    usar colores diferentes (o algo ms sofisticado si utiliza un procesador de textos menosrudimentario que el WordPad).

    En el visor de resultados de SPSS (al igual que en Clementine y Weka), tambinaparece el nmero de ejemplos que han sido asignados a cada cluster. En cualquierestudio, habra que analizar estos datos detenidamente, ya que es posible quetuvisemos que dividir aquellos clusters que tuviesen demasiados ejemplos(aumentando k) , lo que sucede a menudo ante la presencia de outliers (el outlier seraun cluster y todos los dems datos quedaran englobados en otro). No obstante, hay quese cuidadoso con este tipo de cosas, ya que tambin pueden existir agrupamientosnaturales que engloben a una parte significativa de nuestro conjunto de datos.

    Veamos ahora cmo detectar outliers. Si usamos un algoritmo de clustering jerrquico,un caso extremo o outlier se unir en algn momento a aquel cluster que est mscercano a l. Si bien que un cluster contenga muchos ejemplos no quiere decir quenecesariamente contenga outliers, lo que s es cierto es que un outlier se unir siempre aun cluster en las fases finales del agrupamiento jerrquico: los outliers sern aquellosvalores que, de forma aislada, se unen a algn cluster en las ltimas iteraciones delalgoritmo jerrquico.

    Cargue desde SPSS el fichero 3ClustersConOutliers.savy vaya aadiendo suanlisis al fichero Clustering_DatosApplet.spo .

    Realice ahora un clustering jerrquico, copie el dendrograma en el ficheroClustering.doce inspeccinelo para detectar los valores correspondientes a losoutliers, indicando en el fichero cules son.

    A continuacin, elimine los registros corresondientes a los outliers del conjunto de datos(bien fsicamente, o bien excluyndolos del anlisis) y vuelva a ejecutar el algoritmo de

    las k Medias con k=3. Guarde la tabla de centroides resultantes en Clustering.docycompare los centroides obtenidos al incluir los outliers y al excluirlos del anlisis.Analice ambos resultados (y no olvide incluir sus comentarios en Clustering.doc).

    CUIDADO: Cada vez que se elimina un registro, SPSS cambia todos losidentificadores. Si vamos a eliminar los registros con identificadores 35 y40, por ejemplo, y borramos primero el 35, el segundo registro quequeramos borrar tendr ahora el identificador 39. Para evitar errores,lo mejor es eliminar los registros de mayor a menor orden.

  • 5/21/2018 D3 Clustering

    12/14

    Sistemas Inteligentes de Gestin: Clustering 12

    Copie el fichero iris.csv(disponible en la web de DECSAI) y cree un proyecto enKNIME llamado Clustering_Iris.

    Este conjunto de datos, muy conocido, contiene las longitudes y anchuras de ptalos yspalos de 150 muestras correspondientes a tres variedades de plantas de tipo Iris(lirios), adems de un quinto atributo classque indica el tipo concreto de Iris (Setosa,Virgina o Versicolour) . Ms informacin sobre este conjunto de datos enhttp://archive.ics.uci.edu/ml/datasets/Iris

    Para ver si las caractersticas morfolgicas de las muestras determinan el tipo de Iris,utilizaremos un algoritmo de agrupamiento como el de las K Medias.

    En su proyecto de KNIME, lea los valores del fichero iris.csv, elimine el atributoclassy normalice los atributos numricos. A continuacin, utilice k-Means con k=3 eindique en Clustering.doccules son los centroides que ha encontrado.

    Finalmente, construya una tabla con los datos originales, incluido class, y aada elatributo Clusterque indique el cluster al que ha sido asignada cada muestra de iris. Enuna tabla interactiva, puede seleccionar la cabecera de una columna con el ratn y

    arrastrarla al sitio que se quiera, de tal forma que puede colocar classy Clusterencolumnas adyacentes.

    Para ver en cuntos registros se ha "acertado" al agrupar los datos, utilice un nodoMining > Scoring > Scorer, filtrando antes todas las columnas excepto classy Cluster.Este nodo cuenta el nmero de registros que contienen cada uno de los valores de class,cruzndolos con todos los de Cluster. Exporte la tabla resultante del nodo Scorer(con

    File > Export as PG) e incluya el grfico en el Clustering.docjunto con suscomentarios sobre los resultados obtenidos.

    Aada un nodoMining > Hierarchical Clusteringa su proyecto KNIME. Conctelo asus datos de entrada (quitando previamente la columna classy normalizando variables).Configure el nodo para que que se utilice la distancia eucldea ysingle linkage. Ejecuteel algoritmo de clustering y copie el dendrograma en el fichero Clustering.doc (View> Dendrogram/Distance Viewy, sobre la ventana que aparece,File >Export as PG).Analice los resultados e indique los grupos que se aprecian en el dendrograma.

  • 5/21/2018 D3 Clustering

    13/14

    Para comprobar si los gruppor k-Meanso con los datocon el ratn y seleccionarmarcarn automticamentecoinciden los valores de cl

    Aada ahora otro nodo deeucldea con average linkacomprelo con el dendrogr

    En la ventana en la que semuestra los valores de SSEcentroide de su cluster). Esadecuado de k. Cuanto ma

    partir del cual la gananciavalor ms adecuado para k.

    Exporte el grfico anteriorproponga cul sera su recoy 6 para la figura que se m

    NOTA: SPSS ofrecque una variante deestimacin del valoresultado de este mtener que indicar a

    Sistemas Inteligentes de Gestin: Cl

    os marcados en el dendrograma coinciden cos originales, puede seleccionar una zona delilite. Si tenemos abierta la tabla con los datolos correspondientes registros y podremos css(versicolor, setosa, virginica).

    lustering jerrquico, pero esta vez utilice lae. Cope el dendrograma en el fichero Clust

    ma anterior y analice los resultados.

    uestra el dendrograma, hay una pestaaDis (la suma de las distancias al cuadrado de ca

    o puede resultar bastante til para determinaor sea k, menor ser el valor de SSE, pero ho ser significativa. Este ser el punto que d

    para los dos clustering jerrquicos que ha reamendacin sobre el valor k (que posiblemenestra arriba).

    e otro mtodo de clustering ("en dos fases").mtodo BIRCH en la que se obtiene automk usando precisamente el grfico anterior.todo es directamente es una tabla de centroiriori el valor de k (ni estimarlo manualment

    stering 13

    los obtenidosendrograma

    s originales, semprobar si

    istanciaering.doc,

    tancequea punto alr el valor msbr un punto aterminar el

    lizado ye estara entre 4

    ste no es msticamente unas pues, eles, pero sin).

  • 5/21/2018 D3 Clustering

    14/14

    Sistemas Inteligentes de Gestin: Clustering 14

    Cargue los datos de empleados en SPSS. Como son bastantes datos, el clusteringjerrquico puede ser muy ineficiente, por lo que seleccionaremos un 40% de la muestraaplicando un filtro conDatos > Seleccionar Casos > Muestra Aleatoria. Guarde losdatos en formato csv, en el fichero DatosEmpleados.muestra.csv .

    Cree un nuevo proyecto en KNIME, llamado Clustering_DatosEmpleadospara leerlos datos de nuestra muestra de empleados y lanzar un algoritmo de clustering

    jerrquico. No olvide realizar todas las operaciones de preprocesamiento que estimenecesarias, como, por ejemplo, seleccionar las variables que se utilizarn en el mtodo

    de agrupamiento. Copie el dendrograma resultante y el grfico de distancias SSE en elfichero Clustering.doc . Estime un valor adecuado para k.

    A cotinuacin, utilice el mtodo de las K Medias utilizando el valor estimado para kmediante el algoritmo de clustering jerrquico. Guarde la tabla resultante de centroidesen Clustering.doce interprtela en trminos de los k perfiles o prototipos de clientesque haya obtenido.

    Cree con el applet utilizado al principio de este guin una nube de puntos quecorresponda a tres clusters cuya forma sea difcilmente detectable por el mtodo de lasK Medias (por ejemplo, clusters no esfricos o de distinta densidad). Guarde los puntosgenerados en el fichero ClusteringDificil.data.

    Utilice KNIME para realizar un agrupamiento basado en un nodo de tipoWeka >Cluster Algorithms > SimpleKMeans, configurado para un valor de k=3. Muestre elajuste final del modelo, indicando el valor SSE (este dato est disponible en la salida delnodo Weka, etiquetado como Within cluster sum of squared error).

    Estime ahora un valor de k con un diagrama SSE (pestaaDistance viewdel nodo de

    clustering jerrquico) y vuelva a lanzar el algoritmo de las K Medias. Indique de nuevoel valor SSE y comprelo con el anterior. Incluya los grficos obtenidos y la discusinque se estime oportuna en el fichero Clustering.doc.

    EVALUACI DE LAS PRCTICAS

    El fichero Clustering.docha de incluir todas sus respuestasa las distintas preguntas que aparecen en este guin.

    PD: No olvide incluir tambin sus proyectos KNIME y elfichero correspondiente a su sesin en SPSS.