Quale algoritmo implementa ward.D in hclust () se non è il criterio di Ward?


16

Quello usato dall'opzione "ward.D" (equivalente all'unica opzione "ward" di Ward nelle versioni R <= 3.0.3) non implementa il criterio di clustering di Ward (1963), mentre l'opzione "ward.D2" implementa quel criterio ( Murtagh e Legendre 2014).

( http://stat.ethz.ch/R-manual/R-patched/library/stats/html/hclust.html )

Apparentemente ward.D non implementa correttamente il criterio di Ward. Tuttavia sembra fare un buon lavoro per quanto riguarda i cluster che produce. Cosa implementa method = "ward.D" se non è il criterio di Ward?

Riferimenti

Murtagh, F., & Legendre, P. (2014). Metodo di raggruppamento agglomerativo gerarchico di Ward: quali algoritmi implementano il criterio di Ward ?. Journal of Classification , 31 (3), 274-295.


L'articolo di Murthagh e Legendre dice qualcosa al riguardo?
cbeleites supporta Monica il

Non ho accesso a quel documento
Raffael,

La prima cosa che una ricerca trova per me è il pdf del manoscritto di u montreal !?
cbeleites supporta Monica il

quindi cosa dice il giornale? Non riesco a trovarlo
Raffael,

Questo è quello che ti chiedo di dirci.
cbeleites supporta Monica il

Risposte:


11

Il manoscritto pertinente è qui .

La differenza tra ward.D e ward.D2 è la differenza tra i due criteri di raggruppamento che nel manoscritto sono chiamati Ward1 e Ward2.

Fondamentalmente si riduce al fatto che l'algoritmo Ward è implementato direttamente correttamente solo in Ward2 (ward.D2), ma Ward1 (ward.D) può anche essere usato, se le distanze euclidee (da dist()) sono quadrate prima di inserirle nel hclust()usando ward.D come metodo.

Ad esempio, SPSS implementa anche Ward1, ma avverte gli utenti che le distanze devono essere quadrate per ottenere il criterio Ward. In tal senso, l'implementazione di ward.D non è deprecata, tuttavia potrebbe essere una buona idea conservarla per compatibilità con le versioni precedenti.      


2
Dal documento a cui ti colleghi non segue Ward algorithm is directly correctly implemented in just Ward2, ma piuttosto che: (1) per ottenere risultati corretti con entrambe le implementazioni, usa le distanze euclidee quadrate con Ward1 e le distanze euclidee non quadrate con Ward2; (2) per rendere ulteriormente comparabili i loro dendrogrammi di output (identici), applicare la radice quadrata ai livelli di fusione dopo Ward1 o livelli di fusione quadrati dopo Ward2, prima di costruire il dendrogramma.
ttnphns,

Hai ragione, ovviamente. Grazie per il chiarimento. Ciò che intendevo per "implementato direttamente correttamente" è che non sono necessari ulteriori passaggi, come prendere una radice quadrata delle altezze, per arrivare al risultato corretto con il metodo ward.D2.
JTT

1
La piccola sfumatura qui è che con il metodo di Ward, è non definito ciò che è "corretto" o vera presentazione livelli di fusione - se devono essere tracciate "nonsquared" o "quadrato". La causa dell'indecisione è che i livelli di fusione in Ward non sono distanze , sono dispersioni incrementali .
ttnphns,

9

L'unica differenza tra ward.D& ward.D2è il parametro di input.

hclust(dist(x)^2,method="ward.D") ~ hclust(dist(x)^2,method="ward")

che equivalgono a: hclust(dist(x),method="ward.D2")

È possibile trovare il documento di ricerca: Metodo di clustering gerarchico di Ward: criterio di clustering e algoritmo agglomerativo

I valori del criterio Ward2 sono " su una scala di distanze " mentre i valori del criterio Ward1 sono " su una scala di distanze al quadrato ".


Preferisco questa risposta poiché l'altra implica che ward.D è sbagliato, non lo è. Solo diverso.
Chris,

6

Mi sono imbattuto nel documento di ricerca che corrisponde alla funzione oggettiva che è stata ottimizzata da "Ward1 (ward.D)": Clustering gerarchico tramite distanze intermedie comuni: estensione del metodo di varianza minima di Ward . Si scopre che l'implementazione di R di "Ward1 (ward.D)" equivale a minimizzare la distanza di energia tra i gruppi di cluster.

2.1 Distanza clustere

A={a1,,an1}B={b1,,bn2}Rdee(A,B)AB

e(A,B)=n1n2n1+n2(2n1n2i=1n1j=1n2aibj(1)1n12i=1n1j=1n1aiaj1n22i=1n2j=1n2bibj).

Are you sure that that is the correct interpretation of the contents of that paper? It seems to me that e(2) corresponds to ward.D2, but I don't think it is stated anywhere that e(1) corresponds to ward.D1. In fact, on page 161–162, it is stated that for 0<α<2, e(α) does not correspond to any power of Euclidean distance, assuming cluster size is greater than 1 . Interesting paper none the less.
Jonas Dahlbæk
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.