Причина нормалізації евклідових дистанційних заходів в ієрархічній кластеризації


19

Мабуть, в ієрархічній кластеризації, в якій мірою відстані є евклідова відстань, дані потрібно спочатку нормалізувати або стандартизувати, щоб запобігти руху коваріату з найбільшою дисперсією від керування кластеризацією. Чому це? Хіба цей факт не бажаний?

Відповіді:


20

Це залежить від ваших даних. І насправді це не має нічого спільного з ієрархічною кластеризацією, а з самими функціями дистанції.

Проблема полягає в тому, що у вас змішані атрибути .

Скажімо, у вас є дані про осіб. Вага в грамах і розмір взуття. Розміри взуття відрізняються дуже мало, тоді як відмінності в масі тіла (в грамах) значно набагато більші. Можна придумати десятки прикладів. Ви просто не можете порівняти різницю в розмірі 1 г та 1 взуття. Справді, в цьому прикладі ви обчислити то , що буде мати фізичну одиницю !грозмір взуття

Зазвичай у цих випадках евклідова відстань просто не має сенсу. Але це може все-таки спрацювати в багатьох ситуаціях, якщо ви нормалізуєте свої дані. Навіть якщо це насправді не має сенсу, це є корисним евристикою для ситуацій, коли у вас немає «перевіреної правильної» функції відстані, наприклад, евклідової відстані у фізичному світі людини.


Ви щойно відповіли на мої думки, я думаю, що сидіти в самоті, а надмірна думка допомагає.
Карл Моррісон

13

Якщо ви не стандартизуєте свої дані, то змінні, виміряні великими одиницями з великою вартістю, будуть домінувати в обчислюваній невідповідності, а змінні, які вимірюються в малих одиницях, будуть сприяти дуже мало.

Ми можемо візуалізувати це в 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

Оскільки ієрархічна кластеризація використовує ці відстані, чи бажано їх стандартизувати, чи ні, це буде залежати від типу даних / змінних, які ви маєте, і чи хочете ви, щоб великі речі домінували над відстанями і, отже, домінували над формуванням кластеризації. Відповідь на це - конкретний домен та набір даних.


4

Аноні-Мусс дав чудову відповідь . Я просто додам, що метрика відстані, яка має сенс, залежатиме від форми багатофакторних розподілів. Для багатоваріантних Гаусса відстань махаланобіса є відповідним заходом.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.