특징 별 데이터가 아닌 거리 행렬만으로 K- 평균 (또는 가까운 친척) 클러스터링 수행


22

내가 가진 객체에서 K- 평균 군집화를 수행하고 싶지만 객체가 공간의 포인트, 즉 objects x features데이터 세트 로 설명되지 않습니다 . 그러나 두 객체 사이의 거리를 계산할 수 있습니다 (유사 기능을 기반으로 함). 그래서 나는 거리 행렬을 폐기합니다 objects x objects.

이전에 K- 평균을 구현했지만 포인트 데이터 세트 입력이있었습니다. 거리 매트릭스 입력을 사용하면 포인트 표현없이 클러스터를 "중심"으로 클러스터를 업데이트하는 방법이 명확하지 않습니다. 이것은 보통 어떻게됩니까? 이에 대한 K- 평균 또는 방법의 버전이 있습니까?


포인트로 설명되지 않았다는 것은 무엇을 의미합니까?
궁금한

답변:


24

k- 평균은 평균 을 계산할 수 있어야합니다 .

그러나 k-medoids 또는 PAM (Mition of Around Medoids) 으로 잘 알려진 변형이 있는데, 여기서 medoid는 클러스터의 가장 중심에있는 기존 객체입니다. K- 메도 이드에는 쌍방향 거리 만 필요합니다.


21

커널 의 문제 설정을 정확하게 설명하고 있습니다 . 데이터 포인트를 유클리드 벡터로 표현할 수 없지만 두 데이터 포인트 사이의 내부 곱을 계산 (또는 정의) 할 수 있는 경우 알고리즘을 커널 화할 수 있습니다 . 다음 웹 페이지는 알고리즘에 대한 간단한 설명을 제공합니다.k

커널 평균 페이지k

커널 트릭 은 통계 및 기계 학습에서 매우 인기 있고 기본적인 아이디어입니다.

커널 트릭의 위키 페이지

관심이 있으시다면 Bernhard Schölkopf와 Alexander J. Smola의 Learning with Kernels 는 아주 좋은 소개가 될 것입니다.

Max Welling의이 메모 는 매우 좋습니다. 또한 R을 사용하는 경우이 R 패키지를 살펴볼 수 있습니다 .

MDS는 문제를 해결하는 한 가지 방법 일 수 있지만 해결하려는 문제를 직접적으로 공격하지는 않습니다. 커널 k는 의미합니다.


더 많은 링크를 포함하고 싶었지만 평판이 좋지 않아서 할 수 없었습니다. Max Welling 메모 의이 메모 는 매우 좋습니다. 또한 R을 사용한다면이 R 패키지를
d_ijk_stra

(+1) 사이트에 오신 것을 환영합니다. 귀하의 의견에 대한 링크를 게시물 본문과 Schölkopf 및 Smola 텍스트에 추가했습니다.
추기경

9

@gung은 거리 매트릭스에서 데이터 를 생성하기 위한 예비 도구 로 다차원 스케일링 (MDS)을 제안하는 절대적으로 정확합니다 points X dimensions. 스트로크를 몇 개만 추가하겠습니다. K-수단 클러스터링은 의미 유클리드 거리를 . MDS는 치수 단위 좌표를 제공하여 유클리드 거리를 보장합니다. 2D 또는 3D로 데이터를 맵핑하지 않고 데이터 재구성 오류를 최소화하는 것이 목표이므로 메트릭 MDS를 사용하고 가능한 한 많은 차원을 요청해야합니다.

MDS 소프트웨어가 없지만 고유 값 분해 또는 특이 값 분해와 같은 행렬 함수가있는 경우 어떻게해야합니까? 그런 다음 간단한 메트릭 MDS를 직접 수행 할 수 있습니다. 주 좌표 분석 (PCoA)이라고도하는 Torgerson MDS. 그것은 약간 "꼬인"주요 구성 요소 분석에 해당합니다. 비록 간단하지만 여기서는 설명하지 않습니다. 여러 곳에서 읽을 수 있습니다 (예 : here) .

마지막으로 PCoA 또는 다른 메트릭 MDS를 수행하는 함수를 호출하거나 쓰지 않고도 "거리 매트릭스 입력에 대한 K- 평균"을 직접 프로그래밍 할 수 있습니다 . 우리는 (a) 중심으로부터의 제곱 편차 합이 페어 단위 제곱 유클리드 거리 합을 포인트 수로 나눈 것과 같다 ; (b) 거리 행렬 에서 군집 중심 간의 거리를 계산하는 방법을 알고 있어야합니다 . (c) 우리 는 K- 평균에서 제곱합어떻게 관련되는지 알고 있습니다. 모두 함께 복잡한 알고리즘이 아닌 간단하고 원하는 알고리즘을 작성합니다. K-means는 유클리드 거리 / 유클리드 공간만을위한 것임을 기억해야합니다. 비 유클리드 거리에는 K-medoid 또는 기타 방법을 사용하십시오.

비슷한 질문 입니다.


7

나는 그것이 어떻게 "정상적으로"수행되는지를 모른다. 그리고 기록을 위해, 나는 클러스터 분석에 대해 많이 모른다. 그러나 다차원 스케일링에 익숙 하십니까? ( 여기 또 다른 참조는 위키 , 당신은 아래에 이력서를 검색 할 수있는 태그입니다.) 다차원 스케일링은 상황처럼하는 소리 페어 거리의 매트릭스에 걸립니다. MDS에서 객체를 적절하게 나타내는 데 필요한 최소 공간에서 객체의 위치를 ​​얻을 수 있습니다. 이 위치를 사용하여 k- 평균과 같은 후속 클러스터 분석을 수행 할 수 있다고 생각합니다. 또는 일단 출력이 있으면 더 이상 CA가 필요하지 않을 수 있습니다.

R을 사용하는지 모르겠지만 다음 은 Psychometrics의 작업 뷰입니다. 여기에는 R의 MDS 섹션이 포함되어 있습니다.


4

k

귀하의 경우 기본적으로해야 할 일은 다음과 같습니다.

  1. 자기 불일치가없는 비 유사성 행렬 를 갖습니다.D
  2. 대칭이 아닌 경우 및 를 평균하여 대칭DijDji .
  3. Dc
  4. 계산Sc=12Dc
  5. Sc~ S cScS~c
  6. 의 고유 벡터 분해를 계산합니다 .S~c=VΛV
  7. 데이터 의 차원 메트릭 공간 에서 벡터 표현을 복원합니다 : .X = V Λ 1 / 2n1X=VΛ1/2

이것은 이 너무 크지 않다고 가정합니다 . 그렇다면 PCA를 추가로 수행하면 데이터를보다 의미있게 표현할 수 있습니다. (이 문서는이 작업을 수행하는 방법도 설명합니다).n


설명 된 단계는 내가 대답에서 언급 한 주 좌표 분석 이상입니다.
ttnphns

S 행렬 요소에서 마지막 (음수) 고유 값을 빼면 S를 반 양수로 만드는 데 도움이되지 않는 것 같습니다.
ttnphns

@ttnphns : 기본적으로 PCA입니다.하지만 거리를 측정 할 필요는 없습니다. 5 단계에 대한 설명은 안타깝습니다. 지금은 분명합니까?
blubb

모든 고유 값으로부터 음의 고유 값의 합을 뺀 후 복원 S 행렬은 S. 이것의 대각선 요소들로부터 그 합을 감산에 상당 endeed 차종 S 포지티브 (세미) 확정적하지만 ...
ttnphns

... 그러나이 방법은 결과 유클리드 데이터 X 가 원래의 차이점 D와 매우 멀리 떨어진 유클리드 거리 D_new를 생성한다는 점에서 매우 나쁩니다 . 따라서 5 단계를 권장하지 않을 것입니다. 고유 값을 0으로 설정하고 7 단계로 건너 뜁니다. 또는 약간 더 좋은 방법 : 음의 고유 값을 0으로 설정하고 양의 고유 값을 원래 크기 (= trace (S))가되도록 다시 스케일링 한 다음 7 단계로 건너 뜁니다. 나에게.
ttnphns

2

데이터를 네트워크로 볼 수도 있으며 사용 가능한 많은 네트워크 클러스터링 알고리즘 중 하나를 사용할 수 있습니다. 이를 위해 가장자리 가중치에 임계 값을 적용하고 거리를 유사성으로 변환해야합니다. '통계'방식은 아니지만, 클러스터 분석은 우선 지정되지 않은 문제이며 탐색 도구로서 네트워크 클러스터링 알고리즘의 성능이 우수합니다.


2

@gung과 @ttnphns가 제안한 솔루션이 왜 문학에서 그렇게 드문 지 모르겠습니다 (먼저 R을 사용하는 경우이 패키지 를 통해 Principal Coordinates Analysis를 사용하여 페어 단위 거리를 유클리드 공간으로 투영 함) 일반적인 방법으로 K- 평균을 수행하는 것은 간단하며 특수 알고리즘이 필요하지 않습니다. 나는 개인적으로 사용 여기에 최적화 프레임 워크에 포함하고 상당히 잘했다.


1

클러스터링 및 MDS와 관련하여 다음 리소스를 제안합니다.

이 참고 문헌은 또한 이진 및 연속 데이터에 대한 유사성 및 거리 함수 (근접 측정) 주제를 다루고 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.