Tại sao thuật toán phân cụm k-mean chỉ sử dụng số liệu khoảng cách Euclide?


62

Có một mục đích cụ thể nào về hiệu quả hoặc chức năng tại sao thuật toán k-mean không sử dụng ví dụ tương tự cosine (dis) như một thước đo khoảng cách, mà chỉ có thể sử dụng định mức Euclide? Nói chung, phương pháp K-nghĩa sẽ tuân thủ và chính xác khi các khoảng cách khác ngoài Euclide được xem xét hoặc sử dụng?

[Bổ sung bởi @ttnphns. Câu hỏi là hai lần. "(Không) Khoảng cách Euclide" có thể liên quan đến khoảng cách giữa hai điểm dữ liệu hoặc khoảng cách giữa một điểm dữ liệu và trung tâm cụm. Cả hai cách đã được cố gắng để giải quyết trong các câu trả lời cho đến nay.]


Câu hỏi này đã được hỏi khoảng 10 lần trên stackoverflow và trang web này. Vui lòng sử dụng chức năng tìm kiếm.
Anony-Mousse

3
@ Anony-Mousse: Mặc dù tôi hoàn toàn đồng ý với bạn và đã giơ một loạt cờ gần đây trên SO, tôi thấy thiếu sự đóng cửa trùng lặp trong hầu hết các câu hỏi này.
Nikana Reklawyks

4
Đây là trang xuất hiện đầu tiên trong khi googling về chủ đề này.
haripkannan

Câu trả lời:


62

Quy trình K-Means - là phương pháp lượng tử hóa vectơ thường được sử dụng làm phương pháp phân cụm - hoàn toàn không sử dụng các điểm dữ liệu b / w theo cặp (ngược lại với phân cấp và một số cụm khác cho phép đo độ gần tùy ý). Nó liên quan đến việc liên tục gán các điểm cho trung tâm gần nhất do đó sử dụng khoảng cách Euclide từ các điểm dữ liệu đến một centroid . Tuy nhiên, K-Means hoàn toàn dựa trên các điểm dữ liệu b / w của Euclide theo cặp , bởi vì tổng độ lệch bình phương so với centroid bằng tổng khoảng cách Euclide bình phương chia cho số điểm. Thuật ngữ "centroid" là từ hình học Euclide. Nó có nghĩa là đa biến trong không gian euclide. Không gian Euclide là khoảng cách euclide. Khoảng cách phi Euclide thường sẽ không bao trùm không gian Euclide. Đó là lý do tại sao K-Means chỉ dành cho khoảng cách Euclide.

Nhưng khoảng cách Euclide b / w hai điểm dữ liệu có thể được biểu diễn theo một số cách khác nhau . Ví dụ, nó được liên kết chặt chẽ với cosine hoặc sản phẩm vô hướng b / w các điểm. Nếu bạn có cosin, hoặc hiệp phương sai hoặc tương quan, bạn luôn có thể (1) biến đổi nó thành (bình phương) khoảng cách Euclide, và sau đó (2) tạo dữ liệu cho ma trận khoảng cách Euclide (bằng phương pháp tọa độ chính hoặc các dạng số liệu khác Chia tỷ lệ đa chiều) thành (3) nhập các dữ liệu đó vào phân cụm K-Means. Do đó, có thể làm cho K-Means "hoạt động với" cosin cặp hoặc tương tự; trong thực tế, việc triển khai phân cụm K-Means như vậy tồn tại. Xem thêm về triển khai "K-nghĩa cho ma trận khoảng cách".

Dĩ nhiên, có thể lập trình phương tiện K theo cách mà nó tính trực tiếp trên ma trận vuông của khoảng cách Euclide cặp, tất nhiên. Nhưng nó sẽ hoạt động chậm và vì vậy cách hiệu quả hơn là tạo dữ liệu cho ma trận khoảng cách đó (chuyển đổi khoảng cách thành các sản phẩm vô hướng, v.v. - vượt qua được nêu trong đoạn trước) - và sau đó áp dụng quy trình K-mean tiêu chuẩn để tập dữ liệu đó.

Xin lưu ý rằng tôi đã thảo luận về chủ đề cho dù sự khác biệt giữa euclide hay không hạt nhân giữa các điểm dữ liệu có tương thích với phương tiện K. Nó có liên quan đến nhưng không hoàn toàn giống với câu hỏi liệu độ lệch không hạt nhân từ centroid (theo nghĩa rộng, trung tâm hay quasicentroid) có thể được kết hợp trong K-nghĩa hoặc "K-nghĩa" được sửa đổi.

Xem câu hỏi liên quan K-nghĩa: Tại sao tối thiểu hóa WCSS là tối đa hóa Khoảng cách giữa các cụm? .


Bạn có thể trích dẫn một số ví dụ - tài liệu về cách tiếp cận bạn đang đề cập?
tò mò

4
@Doumund, làm ơn. Tôi đã nói rằng k- mean không sử dụng khoảng cách cặp. Nó được nêu rõ ràng. Nó sử dụng khoảng cách đến centroid. Nhưng điều đó tự động có nghĩa là nó được liên kết ngầm với nhiệm vụ để tối ưu hóa khoảng cách cặp trong các cụm.
ttnphns

1
@ttnphns: Trong số lượng các ký tự mà bạn đã viết But a Euclidean distance b/w two data points can be represented in a number of alternative ways. For example, it is closely tied with cosine or scalar product b/w the points. If you have cosine, or covariance, or correlation, you can always (1) transform it to (squared) Euclidean distance, bạn có thể dễ dàng viết distance(x,y) = 1 - cosine_sim(x,y)như vậy : hoặc một cái gì đó tương tự như pithy và thông tin.
stackoverflowuser2010

1
Điều này có vẻ như chỉ trích hợp lệ và mang tính xây dựng: tốt hơn là bao gồm thông tin trực tiếp trong bài viết của bạn thay vì dựa vào một liên kết; và nó thường là tốt hơn để được rõ ràng hơn mơ hồ. (cc @stackoverflowuser)
whuber

3
Bạn đang tranh cãi điều gì? Trong trường hợp này tốt hơn là dựa vào một liên kết, hoặc tốt hơn là mơ hồ, hoặc cả hai? Và tại sao?
whuber

46

Xem thêm câu trả lời @ttnphns để giải thích về phương tiện k thực sự liên quan đến khoảng cách Euclide theo chiều.

Cách k-nghĩa được xây dựng không dựa trên khoảng cách .

K-có nghĩa là giảm thiểu phương sai trong cụm. Bây giờ nếu bạn nhìn vào định nghĩa của phương sai, nó giống hệt với tổng khoảng cách Euclide bình phương từ tâm. (Câu trả lời @ttnphns đề cập đến khoảng cách cặp Euclide!)

Ý tưởng cơ bản của phương tiện k là giảm thiểu các lỗi bình phương . Không có "khoảng cách" liên quan ở đây.

Tại sao không đúng khi sử dụng khoảng cách tùy ý: vì phương tiện k có thể ngừng hội tụ với các hàm khoảng cách khác . Bằng chứng phổ biến về sự hội tụ là như thế này: bước chuyển nhượng bước cập nhật trung bình đều tối ưu hóa cùng một tiêu chí. Có một số lượng hữu hạn các bài tập có thể. Do đó, nó phải hội tụ sau một số cải tiến hữu hạn. Để sử dụng bằng chứng này cho các hàm khoảng cách khác, bạn phải chỉ ra rằng giá trị trung bình (lưu ý: k- nghĩa ) cũng giảm thiểu khoảng cách của bạn.

Nếu bạn đang tìm kiếm một biến thể của phương tiện k-Manhattan, có k-median. Bởi vì trung vị là một công cụ ước tính L1 tốt nhất được biết đến.

Nếu bạn muốn các hàm khoảng cách tùy ý, hãy xem k-medoid (hay còn gọi là: PAM, phân vùng xung quanh medoid). Các medoid giảm thiểu khoảng cách tùy ý (bởi vì nó được định nghĩa là tối thiểu) và cũng chỉ tồn tại một số hữu hạn các medoid có thể. Nó là đắt hơn nhiều so với trung bình, mặc dù.


Nhưng ở bước đầu tiên của k-nghĩa là mỗi điểm được đặt trong cụm có khoảng cách hạt nhân gần nhất với tâm của cụm ... Vì vậy, có một thước đo khoảng cách
tò mò

@AnonyMousse @ttnphns answer refers to pairwise Euclidean distances!Trong câu trả lời của tôi, đoạn 1, tôi đề cập rõ ràng đến cả hai cách diễn giải "lỗi SS" (trực tiếp) và "cặp đôi d ^ 2" (ngầm).
ttnphns

3
Tôi đồng ý với bạn trả lời. Lưu ý rằng tài khoản hoạt động của bạn k-means may stop converging with other distance functionstương đồng với lý thuyết của tôi Non-euclidean distances will generally not span euclidean space.
ttnphns

giải thích rất tốt. Tôi chưa bao giờ cho khoảng cách euclide một ý nghĩ thứ hai và không nhận ra rằng nó thực sự giảm thiểu tổng số bình phương bị héo.
Verena Haunschmid

Tôi vẫn không thể hiểu tại sao giá trị trung bình giảm thiểu khoảng cách về khoảng cách euclide và về mặt vũ trụ, nó không phải là một phần của bằng chứng
tò mò

9

Tôi có thể có một chút mô phạm ở đây, nhưng K-nghĩa là tên được đặt cho một thuật toán cụ thể gán nhãn cho các điểm dữ liệu sao cho trong phương sai cụm được giảm thiểu và nó không phải là tên của "kỹ thuật chung".

Thuật toán K-mean đã được đề xuất độc lập từ một số lĩnh vực, với các diễn giải mạnh mẽ áp dụng cho lĩnh vực này. Nó chỉ bật ra, độc đáo, đó cũng là khoảng cách euclide đến trung tâm. Để biết lịch sử ngắn gọn về phương tiện K, vui lòng đọc Phân cụm dữ liệu: 50 năm sau phương tiện K

Có rất nhiều thuật toán phân cụm khác sử dụng các số liệu khác ngoài Euclide. Trường hợp chung nhất mà tôi biết là sử dụng Phân kỳ Bregman để phân cụm, trong đó Euclid là trường hợp đặc biệt.


"Các số liệu khác với Euclide" Tôi có thể là một số ít phạm vi hơn, nhưng những phân kỳ đó không phải là số liệu, nói chung :)
mic

thật :); tôi có lẽ nên chỉnh sửa câu trả lời.
user1669710

8

Vì đây rõ ràng là một câu hỏi kinh điển và nó chưa được đề cập ở đây:

Một phần mở rộng tự nhiên của phương tiện k để sử dụng các số liệu khoảng cách khác với khoảng cách Euclide tiêu chuẩn trên là sử dụng thủ thuật kernel . Điều này đề cập đến ý tưởng ánh xạ ngầm các đầu vào vào không gian Hilbert cao, hoặc vô hạn, trong đó khoảng cách tương ứng với hàm khoảng cách chúng ta muốn sử dụng và chạy thuật toán ở đó. Nghĩa là, hãy để là một bản đồ đặc trưng sao cho số liệu mong muốn có thể được viết , chúng tôi chạy phương tiện k trên các điểm . Trong nhiều trường hợp, chúng tôi không thể tính toán rõ ràng bản đồ , nhưng chúng tôi có thểRdφ:RpHdd(x,y)=φ(x)φ(y)H{φ(xi)}φtính toán hạt nhân . Không phải tất cả các số liệu khoảng cách đều phù hợp với mô hình này, nhưng nhiều người thực hiện và có các hàm như vậy được xác định trên chuỗi, biểu đồ, hình ảnh, phân phối xác suất, v.v.k(x,y)=φ(x),φ(y)H

Trong tình huống này, trong thuật toán k-mean tiêu chuẩn (Lloyd's), chúng ta có thể gán các điểm dễ dàng cho các cụm của chúng, nhưng chúng ta biểu thị các trung tâm cụm một cách ngầm định (dưới dạng kết hợp tuyến tính của các điểm đầu vào trong không gian Hilbert). Tìm đại diện tốt nhất trong không gian đầu vào sẽ yêu cầu tìm trung bình Fréchet , khá tốn kém. Vì vậy, thật dễ dàng để có được các bài tập cụm với một kernel, khó hơn để có được phương tiện.

Bài viết sau đây thảo luận về thuật toán này và liên kết nó với phân cụm phổ:

I. Dhillon, Y. Guan và B. Kulis. Kernel có nghĩa là, Phân cụm phổ và Cắt bình thường. KDD 2005.


Tôi không hiểu làm thế nào thủ thuật kernel có thể được sử dụng với thuật toán của Lloyd. Dường như với tôi rằng để tính toán một centroid (thậm chí ngầm trong không gian Hilbert), chúng ta sẽ cần bản đồ rõ ràng (x_i)? Để gán điểm cho các cụm, chúng ta chỉ cần kernel, nhưng để tính toán lại trọng tâm, chúng ta không thể thoát khỏi chỉ với kernel, vì centroid là giá trị trung bình của {φ (x_i)} được gán cho cụm đó. Tui bỏ lỡ điều gì vậy?
user2428107

Bạn nói đúng rằng chúng ta không thể tính toán rõ ràng centroid. Nhưng chúng ta có thể biểu diễn chúng đơn giản là và tính khoảng cách đến một điểm là . 1nijCiφ(xj)xφ(x)1nijCiφ(xj)2=k(x,x)+1ni2j,jk(xj,xj)2nijk(x,xj)
Dougal

5

Tôi đã đọc nhiều bình luận thú vị ở đây, nhưng hãy để tôi thêm rằng việc triển khai "cá nhân" của Matlab hỗ trợ 4 khoảng cách phi Euclide [giữa các điểm dữ liệu và trung tâm cụm]. Nhận xét duy nhất từ ​​tài liệu tôi có thể thấy đó là:

Thước đo khoảng cách, trong không gian p chiều, được sử dụng để thu nhỏ, được chỉ định là cặp được phân tách bằng dấu phẩy bao gồm 'Khoảng cách' và một chuỗi.

kmeans tính toán các cụm centroid khác nhau cho các biện pháp khoảng cách khác nhau, được hỗ trợ. Bảng này tóm tắt các biện pháp khoảng cách có sẵn. Trong các công thức, x là một quan sát (nghĩa là một hàng X) và c là một centroid (một vectơ hàng).

Sau đó, một danh sách các chức năng của cxsau. Do đó, coi đó plà tính chiều của dữ liệu đầu vào, có vẻ như không có việc nhúng Euclide nào được thực hiện trước đó.

BTW trong quá khứ tôi đã sử dụng phương tiện k của Matlab với khoảng cách tương quan và nó (không ngạc nhiên) đã làm những gì nó phải làm.


2
Lưu ý, khoảng cách phi Euclide được hỗ trợ là cosine(chỉ là khoảng cách Euclide trên các điểm đầu vào được chuẩn hóa), correlation(Euclide trên các đầu vào được tiêu chuẩn hóa), cityblock( , trong trường hợp này sử dụng trung bình thay vì trung bình) và (đó là chỉ cho đầu vào nhị phân). L1hammingcityblock
Dougal

@Dougal, Làm thế nào trung vị được viết vào thuật toán? Nó không thay đổi k- có nghĩa là một thuật toán cơ bản khác nhau sao?
ttnphns

1
Cũng lưu ý rằng đối với dữ liệu nhị phân "hamming distance" = cityblock = sq. Euclidean distance.
ttnphns

1
@ttnphns Vâng, nó chắc chắn không còn là phương tiện k nữa, nhưng nó có cấu trúc hoàn toàn giống nhau ngoại trừ thay vì tính toán các trọng tâm như bạn có nghĩa là tính toán trung vị. Và có trên đầu vào nhị phân , nhưng Matlab sử dụng trung bình cho nó thay vì trung bình. =L22=L1
Dougal

1
@Dougal, Lưu ý rằng thủ tục MATLAB được liên kết để nói về các khoảng cách khác nhau giữa một điểm dữ liệu và trung tâm cụm; đó không phải là điều tương tự như các loại khoảng cách cặp.
ttnphns 28/03/2016

2

Từ đây :

nhập mô tả hình ảnh ở đây

Chúng ta hãy xem xét hai tài liệu A và B được đại diện bởi các vectơ trong hình trên. Cosin coi cả hai vectơ là vectơ đơn vị bằng cách chuẩn hóa chúng, cho bạn một số đo góc giữa hai vectơ. Nó cung cấp một thước đo chính xác về độ tương tự nhưng không liên quan đến độ lớn. Nhưng cường độ là một yếu tố quan trọng trong khi xem xét sự tương đồng.


Đây là một câu trả lời chung chung. Nó không giải thích tại sao trong k-có nghĩa là không có sự tương tự cosin. Ví dụ, trong phân cụm phân cấp, nó đang được sử dụng rộng rãi
tò mò

3
@DLDahly: Đôi khi cường độ rất quan trọng, đôi khi nó là tiếng ồn. Nó phụ thuộc vào lĩnh vực nghiên cứu và là một vấn đề của tiêu chuẩn hóa dữ liệu.
ttnphns
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.