Motivo per normalizzare le misure di distanza euclidee nel raggruppamento gerarchico


19

Apparentemente, nel clustering gerarchico in cui la misura della distanza è la distanza euclidea, i dati devono essere prima normalizzati o standardizzati per impedire alla covariata con la varianza più elevata di guidare il clustering. Perchè è questo? Questo fatto non è desiderabile?

Risposte:


20

Dipende dai tuoi dati. E in realtà non ha nulla a che fare con il clustering gerarchico, ma con le funzioni di distanza stesse.

Il problema è quando hai attributi misti .

Supponi di avere dati su persone. Peso in grammi e numero di scarpe. Le dimensioni delle scarpe differiscono molto poco, mentre le differenze nella massa corporea (in grammi) sono molto più grandi. Puoi inventare dozzine di esempi. Non puoi semplicemente confrontare 1 g e 1 differenza di taglia di scarpa. In effetti, in questo esempio si calcola qualcosa che avrebbe l' unità fisica di !gtaglia di scarpe

Di solito in questi casi, la distanza euclidea non ha senso. Ma può comunque funzionare, in molte situazioni se normalizzi i tuoi dati. Anche se in realtà non ha senso, è una buona euristica per situazioni in cui non hai una funzione di distanza "dimostrata corretta", come la distanza euclidea nel mondo fisico a misura d'uomo.


Hai appena risposto ai miei pensieri, immagino che starmene seduto da solo mentre pensare troppo aiuta.
Karl Morrison,

13

Se non standardizzi i tuoi dati, le variabili misurate in unità di grande valore domineranno la differenza calcolata e le variabili misurate in unità di piccolo valore contribuiranno molto poco.

Possiamo visualizzarlo in R tramite:

set.seed(42)
dat <- data.frame(var1 = rnorm(100, mean = 100000),
                  var2 = runif(100),
                  var3 = runif(100))
dist1 <- dist(dat)
dist2 <- dist(dat[,1, drop = FALSE])

dist1contiene le distanze euclidee per le 100 osservazioni basate su tutte e tre le variabili mentre dist2contiene la distanza euclidea basata su var1solo.

> summary(dist1)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
0.07351 0.77840 1.15200 1.36200 1.77000 5.30200 
> summary(dist2)
    Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
0.000072 0.470000 0.963600 1.169000 1.663000 5.280000

Nota quanto sono simili le distribuzioni delle distanze, indicando un piccolo contributo da var2e var3, e le distanze effettive sono molto simili:

> head(dist1)
[1] 1.9707186 1.0936524 0.8745579 1.2724471 1.6054603 0.1870085
> head(dist2)
[1] 1.9356566 1.0078300 0.7380958 0.9666901 1.4770830 0.1405636

Se standardizziamo i dati

dist3 <- dist(scale(dat))
dist4 <- dist(scale(dat[,1, drop = FALSE]))

poi c'è un grande cambiamento nelle distanze basate solo su var1quelle basate su tutte e tre le variabili:

> summary(dist3)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
0.09761 1.62400 2.25000 2.28200 2.93600 5.33100 
> summary(dist4)
    Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
0.000069 0.451400 0.925400 1.123000 1.597000 5.070000 
> head(dist3)
[1] 2.2636288 1.7272588 1.7791074 3.0129750 2.5821981 0.4434073
> head(dist4)
[1] 1.8587830 0.9678046 0.7087827 0.9282985 1.4184214 0.1349811

Poiché il clustering gerarchico usa queste distanze, se è desiderabile standardizzare o meno dipenderà dal tipo di dati / variabili che hai e se vuoi che le grandi cose dominino le distanze e quindi dominino la formazione del clustering. La risposta a questo è specifica del dominio e specifica del set di dati.


4

Anony-Mousse ha dato un'ottima risposta . Vorrei solo aggiungere che la metrica della distanza che ha senso dipenderebbe dalla forma delle distribuzioni multivariate. Per il gaussiano multivariato, la distanza di Mahalanobis è la misura appropriata.

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.