Lý do để bình thường hóa trong các biện pháp khoảng cách euclide trong phân cụm phân cấp


19

Rõ ràng, trong phân cụm theo thứ bậc trong đó thước đo khoảng cách là khoảng cách Euclide, trước tiên, dữ liệu phải được chuẩn hóa hoặc chuẩn hóa để ngăn hiệp phương sai có phương sai cao nhất trong việc điều khiển phân cụm. Tại sao lại thế này? Đây không phải là thực tế mong muốn?

Câu trả lời:


20

Nó phụ thuộc vào dữ liệu của bạn. Và thực sự nó không liên quan gì đến việc phân nhóm theo cấp bậc, mà với chính các hàm khoảng cách.

Vấn đề là khi bạn có các thuộc tính hỗn hợp .

Nói rằng bạn có dữ liệu về người. Trọng lượng tính bằng gam và cỡ giày. Cỡ giày khác nhau rất ít, trong khi sự khác biệt về khối lượng cơ thể (tính bằng gam) lớn hơn nhiều. Bạn có thể đưa ra hàng tá ví dụ. Bạn chỉ không thể so sánh chênh lệch cỡ giày 1 g và 1. Trong thực tế, trong ví dụ này, bạn tính toán một cái gì đó có đơn vị vật lý là !gshoe-size

Thông thường trong những trường hợp này, khoảng cách Euclide chỉ không có ý nghĩa. Nhưng nó vẫn có thể hoạt động, trong nhiều tình huống nếu bạn bình thường hóa dữ liệu của mình. Ngay cả khi nó thực sự không có ý nghĩa, nó vẫn là một heuristic tốt cho các tình huống mà bạn không có chức năng khoảng cách "đã được chứng minh chính xác", chẳng hạn như khoảng cách Euclide trong thế giới vật lý quy mô của con người.


Bạn vừa trả lời suy nghĩ của tôi, tôi đoán ngồi một mình trong khi suy nghĩ quá mức sẽ giúp ích.
Karl Morrison

13

Nếu bạn không chuẩn hóa dữ liệu của mình thì các biến được đo bằng đơn vị có giá trị lớn sẽ chi phối sự khác biệt được tính toán và các biến được đo bằng đơn vị có giá trị nhỏ sẽ đóng góp rất ít.

Chúng ta có thể hình dung điều này trong R thông qua:

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])

dist1chứa khoảng cách Euclide cho 100 quan sát dựa trên cả ba biến trong khi dist2chứa khoảng cách Euclide chỉ dựa trên var1một mình.

> 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

Lưu ý cách phân phối khoảng cách tương tự nhau, biểu thị sự đóng góp nhỏ từ var2var3, và khoảng cách thực tế rất giống nhau:

> 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

Nếu chúng ta chuẩn hóa dữ liệu

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

sau đó, có một sự thay đổi lớn về khoảng cách chỉ dựa trên var1và những khoảng cách dựa trên cả ba biến:

> 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

Vì phân cụm phân cấp sử dụng các khoảng cách này, nên có muốn chuẩn hóa hay không sẽ phụ thuộc vào loại dữ liệu / biến bạn có và liệu bạn có muốn những thứ lớn chi phối khoảng cách và do đó chi phối sự hình thành của cụm. Câu trả lời cho điều này là tên miền cụ thể và dữ liệu cụ thể.


4

Anony-Mousse đã đưa ra một câu trả lời tuyệt vời . Tôi chỉ cần thêm rằng số liệu khoảng cách có ý nghĩa sẽ phụ thuộc vào hình dạng của các phân phối đa biến. Đối với Gaussian đa biến, khoảng cách Mahalanobis là thước đo thích hợp.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.