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.

linkage

Árbol de agrupamiento jerárquico aglomerativo

Descripción

Z = linkage(X) Devuelve una matriz que codifica un árbol que contiene clústeres jerárquicos de las filas de la matriz de datos de entrada.ZX

ejemplo

Z = linkage(X,method) crea el árbol utilizando el especificado, que describe cómo medir la distancia entre los clústeres.method Para obtener más información, consulte.Vínculos

ejemplo

Z = linkage(X,method,metric) realiza el clustering pasando a la función, que calcula la distancia entre las filas de.metricpdistX

ejemplo

Z = linkage(X,method,metric,'savememory',value) utiliza un algoritmo de ahorro de memoria cuando es, y utiliza el algoritmo estándar cuando es.value'on'value'off'

ejemplo

Z = linkage(X,method,pdist_inputs) pasa a la función, que calcula la distancia entre las filas de.pdist_inputspdistX El argumento consta de la, o métrica y una opción de métrica de distancia adicional.pdist_inputs'seuclidean''minkowski''mahalanobis'

Z = linkage(y) utiliza una representación vectorial de una matriz de distancia. se calcula por o es una matriz de dessimilitud más general conforme al formato de salida de.yypdistpdist

ejemplo

Z = linkage(y,method) crea el árbol utilizando el especificado, que describe cómo medir la distancia entre los clústeres.method

Ejemplos

contraer todo

Genere aleatoriamente datos de muestra con 20.000 observaciones.

rng('default') % For reproducibility X = rand(20000,3);

Cree un árbol de clústeres jerárquico mediante el método de vinculación.ward En este caso, la opción de la función se establece de forma predeterminada.'SaveMemory'clusterdata'on' En general, especifique el mejor valor según las dimensiones y la memoria disponible.'SaveMemory'X

Z = linkage(X,'ward');

Agruparse los datos en un máximo de cuatro grupos y trazar el resultado.

c = cluster(Z,'Maxclust',4); scatter3(X(:,1),X(:,2),X(:,3),10,c)

identifica cuatro grupos en los datos.cluster

Busque un máximo de tres clústeres en el conjunto de datos y compare las asignaciones de clúster de las flores con su clasificación conocida.fisheriris

Cargue los datos de ejemplo.

load fisheriris

Cree un árbol de clústeres jerárquico mediante el método y la métrica.'average''chebychev'

Z = linkage(meas,'average','chebychev');

Busque un máximo de tres clústeres en los datos.

T = cluster(Z,'maxclust',3);

Cree una trama de dendrograma de.Z Para ver los tres clústeres, utilíllese con un corte a mitad de camino entre los vínculos de la tercera desde la última y la segunda desde la última.'ColorThreshold'

cutoff = median([Z(end-2,3) Z(end-1,3)]); dendrogram(Z,'ColorThreshold',cutoff)

Visualice las dos últimas filas para ver cómo se combinan los tres clústeres en uno. combina el clúster 293rd (azul) con el 297th (rojo) Cluster para formar el clúster 298th con una vinculación de. a continuación, combina el clúster 296th (verde) con el clúster 298th.Zlinkage1.7583linkage

lastTwo = Z(end-1:end,:)
lastTwo = 2×3

  293.0000  297.0000    1.7583
  296.0000  298.0000    3.4445

Vea cómo las asignaciones de clústeres corresponden a las tres especies. Por ejemplo, uno de los racimos contiene flores de la segunda especie y flores de la tercera especie.5040

crosstab(T,species)
ans = 3×3

     0     0    10
     0    50    40
    50     0     0

Cargue el conjunto de datos.examgrades

load examgrades

Cree un árbol jerárquico utilizando.linkage Utilice el método y la métrica Minkowski con un exponente de.'single'3

Z = linkage(grades,'single',{'minkowski',3});

Observe el paso de clustering 25.

Z(25,:)
ans = 1×3

   86.0000  137.0000    4.5307

combina la observación 86 º y el cluster 138 para formar un cluster de índicelinkage

<math display="inline">
<mrow>
<mn>120</mn>
<mo>+</mo>
<mn>25</mn>
<mo>=</mo>
<mn>145</mn>
</mrow>
</math>
, donde 120 es el número total de observaciones en y 25 es el número de fila en.gradesZ La distancia más corta entre la observación 86 y cualquiera de los puntos en el cúmulo 137th es.4.5307

Cree un árbol de clúster jerárquico aglomerativo utilizando una matriz de dessimilitud.

Tome una matriz de dessimilitud y conviértalo en una forma vectorial que acepte mediante el uso.Xlinkagesquareform

X = [0 1 2 3; 1 0 4 5; 2 4 0 6; 3 5 6 0]; y = squareform(X);

Cree un árbol de clústeres con el método de cálculo de la distancia entre clústeres.linkage'complete' Las dos primeras columnas de mostrar cómo combina los clústeres.Zlinkage La tercera columna da la distancia entre los racimos.Z

Z = linkage(y,'complete')
Z = 3×3

     1     2     1
     3     5     4
     4     6     6

Cree una trama de dendrograma de.Z El eje x corresponde a los nodos hoja del árbol y el eje y corresponde a las distancias de vinculación entre los clústeres.

dendrogram(Z)

Argumentos de entrada

contraer todo

Datos de entrada, especificados como una matriz numérica con dos o más filas. Las filas representan observaciones y las columnas representan categorías o dimensiones.

Tipos de datos: single | double

Algoritmo para calcular la distancia entre los clústeres, especificado como uno de los valores de esta tabla.

MétodoDescripción
'average'

Distancia media no ponderada (UPGMA)

'centroid'

Distancia del centroide (UPGMC), apropiada para las distancias euclidiana solamente

'complete'

La distancia más lejana

'median'

Centro ponderado de distancia de masa (WPGMC), adecuado para distancias euclidiana sólo

'single'

La distancia más corta

'ward'

Distancia cuadrada interna (algoritmo de varianza mínima), apropiada para distancias euclidiana sólo

'weighted'

Distancia media ponderada (WPGMA)

Para obtener más información sobre estos métodos, consulte.Vínculos

Distancia métrica, especificada como cualquier métrica aceptada por la función.pdist Estas métricas se describen en la siguiente tabla.

ValorDescripción
'euclidean'

Distancia euclidiana (por defecto).

'squaredeuclidean'

Distancia euclidiana cuadrada. (Esta opción se proporciona sólo para la eficiencia. No satisface la desigualdad triangular.)

'seuclidean'

Distancia euclidiana estandarizada. Cada diferencia de coordenadas entre las observaciones se escala dividiendo por el elemento correspondiente de la desviación estándar, S = nanstd(X). Se usa para especificar otro valor para.DistParameterS

'mahalanobis'

Mahalanobis distancia utilizando la covarianza de muestra de,X C = nancov(X). Se utiliza para especificar otro valor para, donde la matriz es simétrica y positiva definida.DistParameterCC

'cityblock'

Distancia de bloque de ciudad.

'minkowski'

Distancia Minkowski. El exponente predeterminado es 2. Se usa para especificar un exponente diferente, donde es un valor escalar positivo del exponente.DistParameterPP

'chebychev'

Chebychev distancia (diferencia máxima de coordenadas).

'cosine'

Uno menos el coseno del ángulo incluido entre los puntos (tratado como vectores).

'correlation'

Uno menos la correlación de muestra entre los puntos (tratados como secuencias de valores).

'hamming'

Distancia de Hamming, que es el porcentaje de coordenadas que difieren.

'jaccard'

Uno menos el coeficiente Jaccard, que es el porcentaje de coordenadas distintas de cero que difieren.

'spearman'

Uno menos la correlación de rango de Spearman de muestra entre las observaciones (tratadas como secuencias de valores).

@distfun

Mango de función de distancia personalizado. Una función de distancia tiene la forma donde

function D2 = distfun(ZI,ZJ) % calculation of distance ...

  • es un vector que contiene una sola observación.ZI1n

  • es una-por-matriz que contiene múltiples observaciones. debe aceptar una matriz con un número arbitrario de observaciones.ZJm2ndistfunZJ

  • es un vector de distancias, y es la distancia entre las observaciones y.D2m21D2(k)ZIZJ(k,:)

Si los datos no son escasos, generalmente puede calcular la distancia más rápidamente mediante una distancia incorporada en lugar de un identificador de función.

Para obtener más información, consulte.Las métricas de distancia

Use en lugar de especificar el argumento de entrada adicional de for, o.pdist_inputsmetricDistParameterpdist'seuclidean''minkowski''mahalanobis'

Tipos de datos: char | string | function_handle

Opción de métrica de distancia y métrica de distancia, especificada como una matriz de celdas del par separado por comas que consta de los dos argumentos de entrada y de la función.DistanceDistParameterpdist Este argumento sólo es válido para especificar, o.'seuclidean''minkowski''mahalanobis'

Ejemplo: {'minkowski',5}

Tipos de datos: cell

Marca para la opción, especificada como o.'savememory''on''off' La configuración provoca la construcción de clústeres sin calcular la matriz de distancia.'on'linkage El ajuste solo está disponible cuando es, o y es.'on'method'centroid''median''ward'metric'euclidean'

Cuando es, el tiempo de ejecución es proporcional al número de dimensiones (número de columnas de).value'on'linkageX Cuando es, el requisito de memoria es proporcional avalue'off'linkageN2, donde está el número de observaciones.N La mejor configuración (menos tiempo) para usar depende de las dimensiones del problema, el número de observaciones y la memoria disponible.value La configuración predeterminada es una aproximación aproximada de una configuración óptima.value

El valor predeterminado es cuando tiene 20 columnas o menos, o el equipo no tiene suficiente memoria para almacenar la matriz de distancia.'on'X De lo contrario, el valor predeterminado es.'off'

Ejemplo: 'savememory','on'

Distancias, especificadas como un vector numérico con el mismo formato que la salida de la función:pdist

  • Un vector de fila de longitud m(m – 1)/2, correspondiendo a pares de observaciones en una matriz con filasm

  • Las distancias dispuestas en el orden (2,1), (3,1), ..., (m,1), (3,2), ..., (m,2), ..., (m,m – 1))

puede ser una matriz de dessimilitud más general conforme al formato de salida de.ypdist

Tipos de datos: single | double

Argumentos de salida

contraer todo

Árbol de clúster jerárquico aglomerativo, devuelto como una matriz numérica. es unaZ (m – 1)-por-3 matriz, donde es el número de observaciones en los datos originales.m Las columnas 1 y 2 de contienen índices de clúster vinculados en pares para formar un árbol binario.Z Los nodos hoja se numeran de 1 a.m Los nodos hoja son los clústeres de singleton de los que se compilan todos los clústeres superiores. A cada clúster recién formado, correspondiente a la fila, se le asigna el índiceZ(I,:) m + I. Las entradas y contienen los índices de los dos clústeres de componentes que forman el clústerZ(I,1)Z(I,2) m + I. el m – 1 clústeres más altos corresponden a los nodos interiores del árbol de agrupación en clústeres. contiene la distancia de vinculación entre los dos clústeres combinados en la fila.Z(I,3)Z(I,:)

Por ejemplo, considere la posibilidad de crear un árbol con 30 nodos iniciales. Supongamos que el clúster 5 y el clúster 7 se combinan en el paso 12, y que la distancia entre ellos en ese paso es 1,5. Entonces es.Z(12,:)[5 7 1.5] El clúster recién formado tiene índice 12 + 30 = 42. Si el clúster 42 aparece en una fila posterior, la función combina el clúster creado en el paso 12 en un clúster más grande.

Tipos de datos: single | double

Más acerca de

contraer todo

Vínculos

A es la distancia entre dos clústeres.linkage

La siguiente notación describe los vínculos utilizados por los distintos métodos:

  • El clúster se forma a partir de clústeres y.rpq

  • nr es el número de objetos del clúster.r

  • xri es el objeto TH en el cluster.ir

  • , también llamado, utiliza la distancia más pequeña entre los objetos de los dos clústeres.Single linkagenearest neighbor

    d(r,s)=min(dist(xri,xsj)),i(i,...,nr),j(1,...,ns)

  • , también llamado, utiliza la mayor distancia entre los objetos de los dos clústeres.Complete linkagefarthest neighbor

    d(r,s)=max(dist(xri,xsj)),i(1,...,nr),j(1,...,ns)

  • utiliza la distancia media entre todos los pares de objetos en dos clústeres.Average linkage

    d(r,s)=1nrnsi=1nrj=1nsdist(xri,xsj)

  • utiliza la distancia euclidiana entre los centroides de los dos clústeres.Centroid linkage

    d(r,s)=x¯rx¯s2,

    Dónde

    x¯r=1nri=1nrxri

  • utiliza la distancia euclidiana entre los centroides ponderados de los dos clústeres.Median linkage

    d(r,s)=x˜rx˜s2,

    Dónde x˜r Y x˜s son centroides ponderados para los clústeres y.rs Si el clúster se creó combinando clústeres y,rpq x˜r se define de forma recursiva como

    x˜r=12(x˜p+x˜q)

  • utiliza la suma incremental de los cuadrados, es decir, el aumento de la suma total dentro del clúster de los cuadrados como resultado de unir dos clústeres.Ward's linkage La suma de cuadrados dentro del clúster se define como la suma de los cuadrados de las distancias entre todos los objetos del clúster y el centroide del clúster. La métrica de suma de cuadrados equivale a la siguiente métrica de distancia (,), que es la que utiliza la fórmula.drslinkage

    d(r,s)=2nrns(nr+ns)x¯rx¯s2,

    Dónde

    • 2 es la distancia euclidiana.

    • x¯r Y x¯s son los centroides de los clusters y.rs

    • Nr Y Ns son el número de elementos de los clústeres y.rs

    En algunas referencias, la vinculación de Ward no utiliza el factor de 2 multiplicaciones NrNs. La función utiliza este factor para que la distancia entre dos clústeres de singleton sea la misma que la distancia euclidiana.linkage

  • utiliza una definición recursiva para la distancia entre dos clústeres.Weighted average linkage Si el clúster se creó combinando clústeres y, la distancia entre y otro clúster se define como el promedio de la distancia entre y y la distancia entre y.rpqrspsqs

    d(r,s)=(d(p,s)+d(q,s))2

Sugerencias

  • La computación puede ser lenta cuando es una representación vectorial de la matriz de distancia.linkage(y)y Para el, y los métodos, comprueba si es una distancia euclidiana.'centroid''median''ward'linkagey Evite esta comprobación que consume tiempo pasando en lugar de.Xy

  • Los métodos y pueden producir un árbol de clúster que no es monotónico.'centroid''median' Este resultado se produce cuando la distancia de la Unión de dos clústeres y, a un tercer clúster es menor que la distancia entre y.rsrs En este caso, en un dendrograma dibujado con la orientación predeterminada, la ruta de una hoja al nodo raíz toma algunos pasos hacia abajo. Para evitar este resultado, utilice otro método. Esta figura muestra un árbol de clústeres no monótona.

    En este caso, el clúster 1 y el clúster 3 se unen en un nuevo clúster y la distancia entre este nuevo clúster y el clúster 2 es menor que la distancia entre el clúster 1 y el clúster 3. El resultado es un árbol no monotónico.

  • Puede proporcionar la salida a otras funciones, como mostrar el árbol, asignar puntos a clústeres, calcular medidas incompatibles y calcular el coeficiente de correlación cofenética.ZDendrogramaclusterinconsistentcophenet

Introducido antes de R2006a