Si vous ne standardisez pas vos données, les variables mesurées en unités de grande valeur domineront la dissimilarité calculée et les variables mesurées en unités de petite valeur contribueront très peu.
Nous pouvons visualiser cela dans R via:
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])
dist1
contient les distances euclidiennes pour les 100 observations basées sur les trois variables tandis que dist2
contient la distance euclidienne basée sur var1
seul.
> 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
Notez à quel point les distributions des distances sont similaires, indiquant une faible contribution de var2
et var3
, et les distances réelles sont très similaires:
> 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
Si nous standardisons les données
dist3 <- dist(scale(dat))
dist4 <- dist(scale(dat[,1, drop = FALSE]))
puis il y a un grand changement dans les distances basées uniquement sur var1
et celles basées sur les trois variables:
> 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
Comme le clustering hiérarchique utilise ces distances, le fait qu'il soit souhaitable de standardiser ou non dépendra du type de données / variables que vous avez et si vous voulez que les grandes choses dominent les distances et donc dominent la formation du clustering. La réponse à cela est spécifique au domaine et spécifique à l'ensemble de données.