Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Siluetteevaluation

Paquete: clustering.evaluation
Superclases: clustering.evaluation.ClusterCriterion

Criterio de silueta objeto de evaluación de clustering

Descripción

es un objeto que consta de datos de ejemplo, datos de clustering y valores de criterio de silueta utilizados para evaluar el número óptimo de clústeres de datos.SilhouetteEvaluation Crear un criterio de silueta objeto de evaluación de clustering utilizando.evalclusters

Construcción

eva = evalclusters(x,clust,'Silhouette') crea un objeto de evaluación de clustering de criterio de silueta.

eva = evalclusters(x,clust,'Silhouette',Name,Value) crea un objeto de evaluación de clustering de criterio de silueta utilizando opciones adicionales especificadas por uno o más argumentos de par nombre-valor.

Argumentos de entrada

expandir todo

Datos de entrada, especificados como una-por-matriz. es el número de observaciones, y es el número de variables.NPNP

Tipos de datos: single | double

Algoritmo de clustering, especificado como uno de los siguientes.

'kmeans'Agruque los datos en el uso del algoritmo de clustering, con set to y set to.xkmeans'EmptyAction''singleton''Replicates'5
'linkage'Agruparse los datos en el uso del algoritmo de clustering aglomerativo, con set to.xclusterdata'Linkage''ward'
'gmdistribution'Agrupar los datos en el uso del algoritmo de distribución de mezcla gaussiana, con establecido y establecido en.xgmdistribution'SharedCov'true'Replicates'5

Si es, o, puede especificar un algoritmo de agrupación en clústeres mediante un.criterion'CalinskiHarabasz''DaviesBouldin''silhouette'identificador de función (MATLAB) La función debe ser del formulario, donde se agrupan los datos y es el número de clústeres.C = clustfun(DATA,K)DATAK La salida de debe ser una de las siguientes:clustfun

  • Vector de enteros que representa el índice del clúster para cada observación en.DATA Debe haber valores únicos en este vector.K

  • Una puntuación numérica por matriz para observaciones y clases.nKnK En este caso, el índice del clúster para cada observación se determina tomando el valor de puntuación más grande en cada fila.

Si es, o, también puede especificar como una matriz que contiene las soluciones de clustering propuestas. es el número de observaciones de los datos de ejemplo y es el número de soluciones de clustering propuestas.criterion'CalinskiHarabasz''DaviesBouldin''silhouette'clustnKnK Columna contiene los índices de clúster para cada uno de los puntos de la solución de clustering TH.jNj

Tipos de datos: single | double | char | string | function_handle

Argumentos de par nombre-valor

Especifique pares de argumentos separados por comas opcionales. es el nombre del argumento y es el valor correspondiente. deben aparecer dentro de las cotizaciones.Name,ValueNameValueName Puede especificar varios argumentos de par de nombre y valor en cualquier orden como.Name1,Value1,...,NameN,ValueN

Ejemplo: especifica para probar 1, 2, 3, 4 y 5 clústeres mediante la métrica de distancia de bloque de ciudad.'KList',[1:5],'Distance','cityblock'

Probabilidades previas para cada clúster, especificadas como el par separado por comas que consta de y uno de los siguientes.'ClusterPriors'

'empirical'Calcule el valor de silueta general para la solución de clustering promediando los valores de silueta para todos los puntos. Cada clúster contribuye al valor de silueta general proporcionalmente a su tamaño.
'equal'Calcule el valor de silueta general para la solución de clustering promediando los valores de silueta para todos los puntos dentro de cada clúster y, a continuación, promediando esos valores en todos los clústeres. Cada clúster contribuye por igual al valor de silueta general, independientemente de su tamaño.

Ejemplo: 'ClusterPriors','empirical'

Métrica de distancia utilizada para calcular los valores de los criterios, especificado como el par separado por comas y que consta de uno de los siguientes.'Distance'

'sqEuclidean'Distancia euclidiana cuadrada
'Euclidean'Distancia euclidiana. Esta opción no es válida para el algoritmo de clustering.kmeans
'cityblock'Suma de las diferencias absolutas
'cosine'Uno menos el coseno del ángulo incluido entre los puntos (tratado como vectores)
'correlation'Uno menos la correlación de muestra entre puntos (tratado como secuencias de valores)
'Hamming'Porcentaje de coordenadas que difieren. Esta opción sólo es válida para el criterio.Silhouette
'Jaccard'Porcentaje de coordenadas distintas de cero que difieren. Esta opción sólo es válida para el criterio.Silhouette

Para obtener información detallada sobre cada métrica de distancia, consulte.pdist

También puede especificar una función para la métrica de distancia mediante un.identificador de función (MATLAB) La función de distancia debe ser de la forma, donde es un 1 por vector correspondiente a una sola fila de la matriz de entrada, y es und2 = distfun(XI,XJ)XInXXJm2-by-Matrix correspondiente a varias filas de. debe devolver unnXdistfunm2-por-1 vector de distancias, cuyo elemento TH es la distancia entre y.d2kXIXJ(k,:)

solo acepta un identificador de función si el algoritmo de clustering acepta un identificador de función como la métrica de distancia.Distanceclust Por ejemplo, el algoritmo de clustering no acepta un identificador de función como la métrica de distancia.kmeans Por lo tanto, si utiliza el algoritmo y, a continuación, especifica un identificador de función para, los errores de software.kmeansDistance

  • Si es así, también puede especificar como el vector de salida creado por la función.criterion'silhouette'Distancepdist

  • Cuando es o, utiliza la métrica de distancia especificada para agrupar los datos.clust'kmeans''gmdistribution'evalclustersDistance

  • Si es, y es o bien, entonces el algoritmo de clustering utiliza la distancia euclidiana y el enlace Ward.clust'linkage'Distance'sqEuclidean''Euclidean'

  • Si es y es cualquier otra métrica, el algoritmo de clustering utiliza la métrica de distancia especificada y la vinculación media.clust'linkage'Distance

  • En todos los demás casos, la métrica de distancia especificada para debe coincidir con la métrica de distancia utilizada en el algoritmo de agrupación en clústeres para obtener resultados significativos.Distance

Ejemplo: 'Distance','Euclidean'

Tipos de datos: single | double | char | string | function_handle

Lista del número de clústeres que se evalúan, especificado como el par separado por comas que consta de un vector de valores enteros positivos.'KList' Debe especificar Cuándo es un nombre de algoritmo de agrupación en clústeres o un identificador de función.KListclust Cuando sea, debe ser un vector de caracteres, un escalar de cadena o un identificador de función, y debe especificar.criterion'gap'clustKList

Ejemplo: 'KList',[1:6]

Tipos de datos: single | double

Propiedades

ClusteringFunction

Algoritmo de clustering utilizado para agrupar los datos de entrada, almacenados como un identificador de función o nombre de algoritmo de clustering válido. Si las soluciones de clustering se proporcionan en la entrada, está vacía.ClusteringFunction

ClusterPriors

Probabilidades previas para cada clúster, almacenadas como nombre de probabilidad anterior válido.

ClusterSilhouettes

Los valores de silueta corresponden a cada número de clústeres propuesto, almacenados como una matriz de vectores de celdas.InspectedK

CriterionName

Nombre del criterio utilizado para la evaluación de clustering, almacenado como un nombre de criterio válido.

CriterionValues

Valores de criterio correspondientes a cada número propuesto de clústeres, almacenados como un vector de valores numéricos.InspectedK

Distance

Métrica de distancia utilizada para agrupar datos, almacenada como un nombre de métrica de distancia válido.

InspectedK

Lista del número de clústeres propuestos para los que se calculan los valores de los criterios, almacenados como un vector de valores enteros positivos.

Missing

Indicador lógico para los datos excluidos, almacenado como un vector de columna de valores lógicos. Si es igual a, a continuación, el valor correspondiente en la matriz de datos no se utiliza en la solución de agrupación en clústeres.Missingtruex

NumObservations

Número de observaciones en la matriz de datos, menos el número de valores faltantes (), almacenados como un valor entero positivo.XNaNX

OptimalK

Número óptimo de clústeres, almacenado como un valor entero positivo.

OptimalY

Solución de clustering óptima correspondiente a, almacenada como un vector de columna de valores enteros positivos.OptimalK Si las soluciones de clustering se proporcionan en la entrada, está vacía.OptimalY

X

Datos utilizados para clustering, almacenados como una matriz de valores numéricos.

Métodos

Métodos heredados

addKEvalúe un número adicional de clústeres
compactObjeto de evaluación de clustering compacto
plot Trazar valores de criterio de objeto de evaluación de clustering

Ejemplos

contraer todo

Evalúe el número óptimo de clústeres utilizando el criterio de evaluación de clustering de silueta.

Genere datos de ejemplo que contengan números aleatorios de tres distribuciones multivariadas con diferentes valores de parámetros.

rng('default');  % For reproducibility mu1 = [2 2]; sigma1 = [0.9 -0.0255; -0.0255 0.9];  mu2 = [5 5]; sigma2 = [0.5 0 ; 0 0.3];  mu3 = [-2, -2]; sigma3 = [1 0 ; 0 0.9];      N = 200;  X = [mvnrnd(mu1,sigma1,N);...      mvnrnd(mu2,sigma2,N);...      mvnrnd(mu3,sigma3,N)];

Evalúe el número óptimo de clústeres utilizando el criterio de silueta. Agrupar los datos mediante.kmeans

E = evalclusters(X,'kmeans','silhouette','klist',[1:6])
E =    SilhouetteEvaluation with properties:      NumObservations: 600          InspectedK: [1 2 3 4 5 6]     CriterionValues: [NaN 0.8055 0.8551 0.7155 0.6071 0.6232]            OptimalK: 3  

El valor indica que, en función del criterio de silueta, el número óptimo de clústeres es tres.OptimalK

Trace los valores del criterio de silueta para cada número de clústeres probados.

figure; plot(E)

La gráfica muestra que el valor de silueta más alto se produce en tres clústeres, lo que sugiere que el número óptimo de clústeres es tres.

Cree un diagrama de dispersión agrupado para examinar visualmente los clústeres sugeridos.

figure; gscatter(X(:,1),X(:,2),E.OptimalY,'rbg','xod')

La gráfica muestra tres clústeres distintos dentro de los datos: El clúster 1 se encuentra en la esquina inferior izquierda, el clúster 2 está en la esquina superior derecha y el clúster 3 está cerca del centro de la gráfica.

Más acerca de

expandir todo

Referencias

[1] Kaufman L. and P. J. Rouseeuw. Finding Groups in Data: An Introduction to Cluster Analysis. Hoboken, NJ: John Wiley & Sons, Inc., 1990.

[2] Rouseeuw, P. J. “Silhouettes: a graphical aid to the interpretation and validation of cluster analysis.” Journal of Computational and Applied Mathematics. Vol. 20, No. 1, 1987, pp. 53–65.