공간 효율적인 클러스터링


9

내가 본 대부분의 클러스터링 알고리즘은 모든 지점 사이에 거리를 좁히는 것으로 시작하여 더 큰 데이터 세트에서 문제가됩니다. 하지 않는 것이 있습니까? 아니면 일종의 부분적 / 대략적 / 스 태거 방식입니까?

어떤 클러스터링 알고리즘 / 구현이 O (n ^ 2)보다 적은 공간을 차지합니까?

알고리즘 목록과 시간 및 공간 요구 사항이 있습니까?


2
이동 창 유형 클러스터링 (예 : SaTScan, satscan.org )이 요구 사항을 충족 할 수 있습니다. 이 특정 프로그램은 공간 / 시간적 데이터를위한 것이기 때문에 실제로 더 큰 차원을위한 것은 아니지만 아이디어 나 시작 장소를 제공 할 것입니다.
Andy W

답변:


5

K- 평균 및 평균-시프트는 원시 샘플 디스크립터를 사용합니다 (친 화성 매트릭스를 사전 계산할 필요가 없음).

그렇지 않은 경우, 스펙트럼 클러스터링 또는 전력 반복 클러스터링의 경우 k- 최근 접 이웃 선호도 매트릭스의 희소 행렬 표현 (예 : 압축 스파 스 행)을 사용할 수 있습니다 (일부 거리 또는 선호도 메트릭). k가 작은 경우 (5 또는 10이라고 함) 매우 공간 효율적으로 표현할 수 있습니다 (배정 밀도 부동 소수점 값의 경우 2 * n_samples * k * 8 바이트).


2

일부 클러스터링 알고리즘은 공간 인덱스 구조를 사용할 수 있습니다. 예를 들어 , 인덱스가 조회를 허용하는 한 DBSCAN 및 OPTICS가 시간 에 실행될 수 있습니다 .O(nlogn)O(logn)

분명히이 복잡성에서 실행되는 알고리즘은 거리 행렬을 만들지 않습니다 .O(n2)

단일 연결 및 전체 연결을 사용한 계층 적 클러스터링과 같은 일부 알고리즘의 경우 사용 가능한 최적화 알고리즘 (SLINK, CLINK)이 있습니다. 대부분의 사람들은 얻을 수있는 것과 구현하기 쉬운 것을 사용합니다. 그리고 계층 적 군집화는 거리 행렬에 걸쳐 반복을 사용하여 순진하게 구현하기 쉽습니다 ( 알고리즘 결과).nn2O(n3)

클러스터링 알고리즘을 비교하는 완전한 목록을 알지 못합니다. 결국 100 개 이상의 클러스터링 알고리즘이있을 것입니다. 예를 들어, 12 개 이상의 k- 평균 변형이 있습니다. 또한 메모리 복잡성과 런타임 복잡성이 있습니다. 평균적인 경우와 최악의 경우가 있습니다. 구현 차이가 매우 큽니다 (예 : 위에서 언급 한 단일 링크; 인덱스를 사용하지 않으므로 이고 전체 거리 행렬 을 저장할 필요가없는 DBSCAN 구현 그런 다음 여전히 모든 쌍별 거리를 계산해야합니다. 또한 수많은 매개 변수가 있습니다. k- 평균의 경우O(n2)n×nk중요합니다. 거의 모든 알고리즘에서 거리 함수는 큰 차이를 만듭니다 (많은 구현은 유클리드 거리 만 허용합니다 ...). 그리고 유클리드와 같은 사소한 것 이외의 값 비싼 거리 함수에 도달하면 거리 계산의 수가 빠르게 주요 부분이 될 수 있습니다. 따라서 총 작업 수와 필요한 거리 계산 수를 구분해야합니다. 따라서 연산에 있지만 거리 계산 에만 있는 알고리즘 은 거리 함수가 실제로 비싼 경우 (예 : 거리 인 알고리즘을 쉽게 능가 할 수 있습니다. 함수 자체는 )입니다.O(n2)O(n)O(nlogn)O(n)


아주 잘 대답합니다.
MonsterMMORPG

1

좋은 질문. 3 개의 가장 가까운 이웃에 대한 짚맨 방법은 각 데이터 포인트의 Nsample 이웃을 샘플링하여 가장 가까운 3을 유지하는 것입니다. 데이터에 쉽게 표시 됩니다. 추가 트릭은 이웃의 이웃을 점검하여 직접 이웃보다 가까운 것이 있는지 확인하는 것입니다. 또한 입력 데이터가 이미 잘 섞여 있으면 블록 단위로 샘플링하십시오. 그렇지 않으면 캐시가 작동합니다.

(추가) : R의 fastcluster 를 참조 하고 SciPy v0.11을 믿습니다.
텍스트는 google-all-pairs-similarity-search를 참조하십시오 .

"클러스터링 알고리즘을 선택하는 것보다 클러스터링으로 성공하기 위해서는 적절한 비 유사성 측정이 훨씬 더 중요합니다."- selection-clustering-method .

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