d3 clustering
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.