k- 평균 군집 알고리즘이 유클리드 거리 측정법 만 사용하는 이유는 무엇입니까?


62

k- 평균 알고리즘이 거리 메트릭으로 코사인 (비 유사) 유사성을 사용하지 않고 유클리드 표준 만 사용할 수있는 효율성 또는 기능성 측면에서 특정 목적이 있습니까? 일반적으로 유클리드 이외의 다른 거리를 고려하거나 사용하는 경우 K- 평균 방법이 준수되고 정확합니까?

[@ttnphns 추가. 문제는 두 가지입니다. "(비) 유클리드 거리"는 두 데이터 포인트 사이의 거리 또는 데이터 포인트와 클러스터 중심 사이의 거리와 관련 될 수 있습니다. 두 가지 방법 모두 지금까지 해답을 다루려고 시도했다.]


이 질문은 이미 stackoverflow 및이 사이트에서 약 10 번 질문되었습니다. 검색 기능을 사용하십시오.
Anony-Mousse

3
@ Anony-Mousse : 전적으로 귀하에 동의하고 최근 SO에 관한 많은 깃발을 제기했지만, 대부분의 질문에 중복 된 폐쇄가 부족하다는 것을 알게되었습니다.
Nikana Reklawyks

4
이 주제에 대해 인터넷 검색을하는 동안 가장 먼저 나오는 페이지입니다.
haripkannan

답변:


62

K- 평균 절차 (클러스터링 방법으로 종종 사용되는 벡터 양자화 방법 )는 임의의 근접 측정을 허용하는 계층 적 및 일부 다른 군집과는 대조적으로 데이터 포인트가진 페어 단위 거리를 명시 적으로 사용하지 않습니다 . 데이터 점에서 중심까지의 유클리드 거리 를 사용하여 점을 가장 가까운 중심에 반복적으로 할당 합니다. 그러나 K-Means 는 암시 적으로 쌍별 유클리드 거리 b / w 데이터 포인트 를 기준으로합니다. 중심으로부터의 제곱 편차의 합은 쌍별 제곱 유클리드 거리의 합을 포인트 수로 나눈 값과 같기 때문입니다.. "중심점"이라는 용어 자체는 유클리드 기하학에서 유래 한 것입니다. 유클리드 공간에서 다변량 평균입니다. 유클리드 공간은 유클리드 거리에 관한 것입니다. 비 유클리드 거리는 일반적으로 유클리드 공간에 걸쳐 있지 않습니다. 그것이 K-Means가 유클리드 거리에만있는 이유입니다.

그러나 두 개의 데이터 포인트와의 유클리드 거리는 여러 가지 대안으로 표현 될 수 있습니다 . 예를 들어, 포인트와 코사인 또는 스칼라 곱과 밀접하게 연결 되어 있습니다. 코사인, 공분산 또는 상관 관계가있는 경우 항상 (1) 거리를 (제곱) 유클리드 거리로 변환 한 다음 (2) 해당 유클리드 거리 매트릭스에 대한 데이터 를 생성 할 수 있습니다 (주 좌표 또는 다른 형태의 메트릭을 통해). 다차원 스케일링) ~ (3) 해당 데이터를 K- 평균 군집화에 입력합니다. 따라서는 가능한 K-수단 만들 페어 코사인 또는 "와 함께 일을"; 실제로, 그러한 K- 평균 군집화의 구현이 존재한다. 또한보십시오 "거리 행렬에 대한 K- 평균"구현에 대해.

는있는 방식으로 K-수단 프로그래밍 직접 물론 페어 유클리드 거리의 제곱 행렬 계산한다. 그러나 느리게 작동하므로 더 효율적인 방법은 해당 거리 매트릭스에 대한 데이터를 작성하고 (거리를 스칼라 곱 등으로 변환하는 것-이전 단락에서 설명한 패스)-표준 K- 평균 절차를 적용하는 것입니다 해당 데이터 세트에.

데이터 포인트 간의 유클리드 또는 비 유클리드 비 유사성 이 K- 평균과 호환 되는지 여부에 대한 주제를 논의했습니다 . 중심 으로부터의 무핵 편차 (광의로, 중심 또는 준 중심)가 K- 평균에 포함되거나 수정 된 "K- 평균"에 포함될 수 있는지와 관련이 있지만 그와 같은 질문은 아니다 .

관련 질문 K-means : 왜 WCSS를 최소화하면 클러스터 간 거리가 최대화됩니까?를 참조하십시오. .


당신이 언급 한 접근법에 대한 몇 가지 사례-문서를 인용 할 수 있습니까?
궁금

4
@ 더글라스 k- 평균은 페어 단위 거리를 사용 하지 않는다고 말했습니다 . 명확하게 언급되어 있습니다. 중심까지의 거리를 사용합니다. 그러나 이는 자동적으로 클러스터 내에서 페어 단위 거리를 최적화하는 작업 과 암시 적으로 연결되어 있음을 의미 합니다.
ttnphns

1
@ttnphns : 당신이 쓴 문자 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수만큼이나 쉽게 쓸 수 있습니다 distance(x,y) = 1 - cosine_sim(x,y).
stackoverflowuser2010

1
이는 타당하고 건설적인 비판처럼 보입니다. 링크에 의존하기보다는 게시물에 직접 정보를 포함시키는 것이 좋습니다. 일반적으로 모호한 것보다 명시적인 것이 좋습니다. (cc @stackoverflowuser)
whuber

3
당신은 무엇을 다투고 있습니까? 이 경우 링크에 의존하는 것이 더 좋거나 모호한 것이 더 좋습니까? 그리고 왜?
whuber

46

실제로 점 단위 유클리드 거리를 포함하는 k- 평균의 해석에 대해서는 @ttnphns 답변을 참조하십시오.

k- 평균이 구성되는 방식은 거리를 기반으로하지 않습니다 .

K- 평균은 클러스터 내 분산을 최소화합니다. 이제 분산의 정의를 보면 중심으로부터의 거리를 제곱 한 유클리드 거리의 합과 같습니다. (@ttnphns 답변은 쌍별 유클리드 거리를 나타냅니다!)

k- 평균의 기본 아이디어는 제곱 오차최소화 하는 것입니다 . 여기에는 "거리"가 없습니다.

임의의 거리를 사용하는 것이 올바르지 않은 이유 : k- 평균이 다른 거리 함수와의 수렴을 중지 할 수 있기 때문 입니다. 수렴의 일반적인 증거는 다음과 같습니다. 할당 단계 평균 업데이트 단계는 모두 동일한 기준을 최적화합니다 . 가능한 많은 할당이 있습니다. 따라서 유한 한 수의 개선 후에 수렴해야합니다. 다른 거리 함수에이 증명을 사용하려면 평균 (참고 : k- 평균 )도 거리를 최소화 함을 보여 주어야합니다 .

k- 평균의 맨해튼 거리 변형을 찾고 있다면 k- 중앙값이 있습니다. 중앙값은 알려진 최고의 L1 추정기이기 때문입니다.

임의의 거리 기능을 원한다면 k-medoids (일명 : PAM, medoid 주위에 파티셔닝)를 살펴보십시오. 메도 이드는 임의의 거리를 최소화하며 ( 최소로 정의 되기 때문에) 가능한 수의 메도 이드 만 존재합니다. 그러나 평균보다 훨씬 비쌉니다.


그러나 첫 번째 단계에서 각 지점은 클러스터의 중심에 가장 가까운 유클리드 거리와 클러스터에 넣어 K-의미 ... 그래서 미터의 거리가
호기심

@AnonyMousse @ttnphns answer refers to pairwise Euclidean distances!첫 번째 단락에서는 "SS error"(직접)와 "pairwise d ^ 2"(암시 적) 해석을 모두 명확하게 언급 합니다 .
ttnphns

3
나는 당신이 대답하는 것에 동의합니다. 귀하의 운영 계정 k-means may stop converging with other distance functions은 나의 이론과 상동합니다 Non-euclidean distances will generally not span euclidean space.
ttnphns

아주 좋은 설명입니다. 나는 유클리드 거리에 두 번째 생각을 한 적이 없었고 그것이 실제로 클러스터의 제곱합을 최소화하고 있다는 것을 깨닫지 못했습니다.
Verena Haunschmid

나는 왜 왜 평균이 유클리드 거리와 코사인의 관점에서 거리를 최소화 하는지를 알 수 없다. 증거의 일부가 아니다
curious

9

여기서 약간의 의미가 있지만 K- 평균은 클러스터 분산 내에서 최소화되도록 데이터 포인트에 레이블을 할당하는 특정 알고리즘에 지정된 이름이며 "일반 기술"의 이름이 아닙니다.

K- 평균 알고리즘은 여러 분야에서 독립적으로 제안되었으며, 해당 분야에 대한 강력한 해석이 가능합니다. 그것은 단지 중심까지의 유클리드 거리이기도합니다. K- 평균에 대한 간략한 역사는 데이터 클러스터링 : K- 평균을 넘어 50 년을 읽으십시오 .

유클리드 이외의 메트릭을 사용하는 수많은 다른 클러스터링 알고리즘이 있습니다. 내가 아는 가장 일반적인 사례는 클러스터링에 Bregman Divergence 를 사용 하는 것인데, 그 중 Euclidean은 특별한 경우입니다.


"유클리드 이외의 메트릭스"나는 좀 더 비판적 일 수 있지만, 그 차이는 일반적으로 메트릭스가 아닙니다. :)
mic

진실 :); 아마 답을 편집해야합니다.
user1669710 2016 년

8

이것은 분명히 정식 질문이므로 아직 여기에 언급되지 않았습니다.

Rdφ:RpHdd(x,y)=φ(x)φ(y)Hφ의 K ( X , Y ) = φ ( X ) , φ ( Y ) H{φ(xi)}. 많은 경우에, 우리는 맵을 명시 적으로 계산할 없지만 커널 계산할 수 있습니다 . 모든 거리 측정 항목이이 모델에 적합하지는 않지만 많은 모델이 적합하며 문자열, 그래프, 이미지, 확률 분포 등에 정의 된 기능이 있습니다.φk(x,y)=φ(x),φ(y)H

이 상황에서 표준 (Lloyd 's) k- 평균 알고리즘에서 쉽게 점을 클러스터에 할당 할 수 있지만 클러스터 중심을 암시 적으로 나타냅니다 (힐버트 공간에서 입력 포인트의 선형 조합으로). 입력 공간에서 최상의 표현을 찾으려면 Fréchet mean을 찾아야합니다 . 이는 꽤 비쌉니다. 따라서 커널을 사용하여 클러스터 할당을 쉽게 얻을 수 있으며 수단을 얻기가 더 어렵습니다.

다음 백서에서는이 알고리즘에 대해 설명하고 스펙트럼 클러스터링과 관련이 있습니다.

I. Dhillon, Y. Guan 및 B. Kulis. 커널 k- 평균, 스펙트럼 클러스터링 및 정규화 된 컷. KDD 2005.


커널 트릭을 Lloyd의 알고리즘과 함께 사용할 수있는 방법을 이해하지 못합니다. 중심을 계산하려면 (힐버트 공간에서 암시 적으로도) 명시 적 맵 φ (x_i)가 필요합니까? 클러스터에 점을 할당하려면 커널 만 필요하지만 중심을 다시 계산하려면 중심이 해당 클러스터에 할당 된 {φ (x_i)}의 평균이므로 커널만으로는 벗어날 수 없습니다. 뭔가 빠졌습니까?
user2428107

우리는 중심을 명시 적으로 계산할 수 없다는 것이 맞습니다. 그러나 우리는 단순히 그들을 대표 할 수 및 포인트에 계산 거리 와 같은 . xφ(x)11nijCiφ(xj)xφ(x)1nijCiφ(xj)2=k(x,x)+1ni2j,jk(xj,xj)2nijk(x,xj)
Dougal

5

여기서 많은 흥미로운 의견을 읽었지만 Matlab의 k-means의 "개인"구현 은 4 가지 비 유클리드 거리 (데이터 포인트와 클러스터 센터 간)를 지원 한다고 덧붙 입니다. 내가 볼 수있는 문서에서 유일한 의견은 다음과 같습니다.

최소화에 사용되는 p- 차원 공간에서의 거리 측정으로, 'Distance'와 문자열로 구성된 쉼표로 구분 된 쌍으로 지정됩니다.

kmeans는 서로 다른 지원되는 거리 측정에 대해 중심 클러스터를 다르게 계산합니다. 이 표에는 사용 가능한 거리 측정 값이 요약되어 있습니다. 공식에서 x는 관측치 (즉, X 행)이고 c는 중심 (행 벡터)입니다.

그런 다음 c및 기능 목록입니다 x. 따라서, p입력 데이터의 차원 성을 고려하면 , 사전에 유클리드 임베딩이 수행되지 않는 것으로 보인다.

과거의 BTW는 상관 거리와 함께 Matlab의 k- 평균을 사용했으며 (의심 할 여지없이)해야 할 일을했습니다.


2
참고로, 지원되는 비 유클리드 거리이다 cosine(정규화 된 입력 포인트에 단지 유클리드 거리 임) correlation(표준 입력에 유클리드가), cityblock( ,이 경우 중앙값은 평균값보다 사용된다), 및 인 ( 이진 입력에 대해서만 ). L1hammingcityblock
Dougal

@Dougal, 알고리즘에 중앙값이 어떻게 할당됩니까? 그것은 K-변경하지 않는 수단을 기본적으로 다른 너 한테로?
ttnphns

1
또한 이진 데이터의 경우 "해밍 거리"= cityblock = sq. 유클리드 거리입니다.
ttnphns

1
@ttnphns 예, 더 이상 k- 평균은 아니지만, 중앙값을 계산한다는 의미에서 중심을 계산하는 것 외에는 정확히 동일한 구조를 갖습니다. 그리고 이진 입력 해밍 에서는 . 그러나 Matlab은 평균 대신 평균을 사용합니다. =L22=L1
Dougal

1
@Dougal, matlab 절차는 데이터 포인트와 클러스터 센터 사이의 다양한 거리를 말합니다. 이것은 쌍 거리의 종류와 같은 것이 아닙니다.
ttnphns

2

에서 여기 :

여기에 이미지 설명을 입력하십시오

위의 그림에서 벡터로 표시된 두 개의 문서 A와 B를 고려해 봅시다. 코사인은 두 벡터를 정규화하여 두 벡터를 단위 벡터로 취급하여 두 벡터 사이의 각도를 측정합니다. 크기에 관계없이 정확한 유사성 측정을 제공합니다. 그러나 유사성을 고려하면서 규모는 중요한 요소입니다.


이것은 일반적인 답변입니다. k- 평균에서 코사인 유사성이없는 이유를 설명하지 않습니다. 예를 들어 계층 적 클러스터링에서는 널리 사용됩니다
궁금한

3
@DLDahly : 때때로 규모가 중요하고 때로는 소음입니다. 연구 분야에 따라 다르며 데이터 표준화 문제입니다.
ttnphns
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.