Если вы не стандартизируете свои данные, то переменные, измеренные в больших оцененных единицах, будут доминировать над вычисленной разницей, а переменные, которые измеряются в небольших значимых единицах, будут вносить очень незначительный вклад.
Мы можем визуализировать это в R через:
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
содержит евклидово расстояние для 100 наблюдений, основанное на всех трех переменных, в то время как dist2
содержит евклидово расстояние, основанное на var1
одном.
> 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
Обратите внимание, насколько схожи распределения расстояний, что указывает на небольшой вклад от var2
и var3
, а фактические расстояния очень похожи:
> 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
Если мы стандартизируем данные
dist3 <- dist(scale(dat))
dist4 <- dist(scale(dat[,1, drop = FALSE]))
затем происходит большое изменение расстояний, основанных только на расстояниях, var1
основанных на всех трех переменных:
> 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
Поскольку иерархическая кластеризация использует эти расстояния, то, будет ли желательно стандартизировать или нет, будет зависеть от типа данных / переменных, которые у вас есть, и от того, хотите ли вы, чтобы большие вещи доминировали над расстояниями и, следовательно, доминировали при формировании кластеризации. Ответ на этот вопрос зависит от конкретной области и набора данных.