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.

evalclusters

Evalúe las soluciones de clustering

Descripción

ejemplo

eva = evalclusters(x,clust,criterion) crea un objeto de evaluación de clustering que contiene los datos utilizados para evaluar el número óptimo de clústeres de datos.

eva = evalclusters(x,clust,criterion,Name,Value) crea un objeto de evaluación de agrupación en clústeres utilizando opciones adicionales especificadas por uno o más argumentos de par nombre-valor.

Ejemplos

contraer todo

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

Cargue los datos de ejemplo.

load fisheriris;

Los datos contienen mediciones de longitud y anchura de los sépalos y pétalos de tres especies de flores de iris.

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

rng('default');  % For reproducibility eva = evalclusters(meas,'kmeans','CalinskiHarabasz','KList',[1:6])
eva =    CalinskiHarabaszEvaluation with properties:      NumObservations: 150          InspectedK: [1 2 3 4 5 6]     CriterionValues: [NaN 513.9245 561.6278 530.4871 456.1279 469.5068]            OptimalK: 3  

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

Utilice una matriz de entrada de soluciones de clustering propuestas para evaluar el número óptimo de clústeres.

Cargue los datos de ejemplo.

load fisheriris;

Los datos contienen mediciones de longitud y anchura de los sépalos y pétalos de tres especies de flores de iris.

Se utiliza para crear una matriz de entrada de soluciones de clustering propuestas para las mediciones de longitud del sépalo, utilizando 1, 2, 3, 4, 5 y 6 clústeres.kmeans

clust = zeros(size(meas,1),6); for i=1:6 clust(:,i) = kmeans(meas,i,'emptyaction','singleton',...         'replicate',5); end

Cada fila corresponde a una medida de la longitud del septo.clust Cada una de las seis columnas corresponde a una solución de clustering que contiene de 1 a 6 clústeres.

Evalúe el número óptimo de clústeres utilizando el criterio Calinski-Harabasz.

eva = evalclusters(meas,clust,'CalinskiHarabasz')
eva =    CalinskiHarabaszEvaluation with properties:      NumObservations: 150          InspectedK: [1 2 3 4 5 6]     CriterionValues: [NaN 513.9245 561.6278 530.4871 456.1279 469.5068]            OptimalK: 3  

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

Use un identificador de función para especificar el algoritmo de agrupación en clústeres y, a continuación, evalúe el número óptimo de clústeres.

Cargue los datos de ejemplo.

load fisheriris;

Los datos contienen mediciones de longitud y anchura de los sépalos y pétalos de tres especies de flores de iris.

Use un identificador de función para especificar el algoritmo de agrupación en clústeres.

myfunc = @(X,K)(kmeans(X, K, 'emptyaction','singleton',...     'replicate',5));

Evalúe el número óptimo de clústeres para los datos de longitud del sépalo utilizando el criterio Calinski-Harabasz.

eva = evalclusters(meas,myfunc,'CalinskiHarabasz',...     'klist',[1:6])
eva =    CalinskiHarabaszEvaluation with properties:      NumObservations: 150          InspectedK: [1 2 3 4 5 6]     CriterionValues: [NaN 513.9245 561.6278 530.4871 456.1279 469.5068]            OptimalK: 3  

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

Argumentos de entrada

contraer 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

Criterio de evaluación de clustering, especificado como uno de los siguientes.

'CalinskiHarabasz'Cree un objeto de evaluación de clustering que contenga valores de índice Calinski-Harabasz.CalinskiHarabaszEvaluation
'DaviesBouldin'Cree un objeto de evaluación de clúster que contenga valores de índice Davies-Bouldin.DaviesBouldinEvaluation
'gap'Cree un objeto de evaluación de clúster que contenga valores de criterio de separación.GapEvaluation
'silhouette'Cree un objeto de evaluación de clúster que contenga valores de silueta.SilhouetteEvaluation

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'

Para todos los criterios

contraer todo

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

Para Silhouette y Gap

contraer todo

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

Solo para Silhouette

contraer todo

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'

Solo para GAP

contraer todo

Número de conjuntos de datos de referencia generados a partir de la distribución de referencia, especificados como el par separado por comas y que consta de un valor entero positivo.ReferenceDistribution'B'

Ejemplo: 'B',150

Tipos de datos: single | double

Método de generación de datos de referencia, especificado como el par separado por comas que consta de y uno de los siguientes.'ReferenceDistributions'

'PCA'Genere datos de referencia a partir de una distribución uniforme sobre un cuadro alineado con los componentes principales de la matriz de datos.x
'uniform'Genere datos de referencia uniformemente sobre el rango de cada entidad en la matriz de datos.x

Ejemplo: 'ReferenceDistribution','uniform'

Método para seleccionar el número óptimo de clústeres, especificado como el par separado por comas que consta de y uno de los siguientes.'SearchMethod'

'globalMaxSE'

Evalúe cada número de clústeres propuesto y seleccione el número más pequeño de clústeres que satisfaganKList

Gap(K)GAPMAXSE(GAPMAX),

donde está el número de clústeres, Gap () es el valor de brecha para la solución de clustering con clústeres, es el valor de brecha más grande, y se () es el error estándar que corresponde al mayor valor de brecha.KKKGAPMAXGAPMAX

'firstMaxSE'

Evalúe cada número de clústeres propuesto y seleccione el número más pequeño de clústeres que satisfaganKList

Gap(K)Gap(K+1)SE(K+1),

donde está el número de clústeres, Gap () es el valor de brecha para la solución de clustering con clústeres, y se (+ 1) es el error estándar de la solución de clustering con + 1 clústeres.KKKKK

Ejemplo: 'SearchMethod','globalMaxSE'

Argumentos de salida

contraer todo

Datos de evaluación de clustering, devueltos como un objeto de evaluación de clustering.

Introducido en R2013b