2015-01-16 2 views
2

k- 평균을 사용하여 1000 차원, 250k 벡터를 클러스터하려고합니다. 내가 작업하고있는 머신에는 80 개의 듀얼 코어가 있습니다.병렬 k- 평균 대 배치 속도 비교 미니 배치 속도

k- 평균 기본 배치 병렬 버전의 런타임을 k- 평균 미니 배치 버전과 비교 한 사람이 있는지 확인하십시오. sklean 문서의 example comparison page은 데이터 세트가 매우 작기 때문에 많은 정보를 제공하지 않습니다.

많은 도움을 주셔서 감사합니다.

감사합니다,

+0

다른 매개 변수에 대해 두 가지 모두 더 잘 수행되는지 확인하기 위해 노력하고 있습니다. 그러나 나는 누군가가 전에 이것을 해본 적이 있다면 여전히 교차 점검을 위해 여기에 질문을 게시했다. 내 결과도 공유 할 것입니다. – PS1

답변

1

Conventional wisdomMini-Batch K-Means보다 빠르고 효율적으로 이상 10,000 샘플되어야한다는 보유하고 있습니다. 250,000 개의 샘플을 가지고 있기 때문에 직접 테스트하지 않으려는 경우 미니 배치를 사용해야합니다. example you referenced 아주 쉽게이 줄을 변경 N_SAMPLES하여 5000, 10000 또는 20000 점 예를 변경할 수 있습니다

참고 :

X, labels_true = make_blobs(n_samples=3000, centers=centers, cluster_std=0.7) 

나는이 반드시 차원 1000과 동일한 크기를 조정하지 않을 것에 동의합니다 벡터를 사용하지만 예제를 구성하고 k-means 또는 mini batch k-means을 사용하고 있기 때문에 그 둘 사이를 전환하는 데 단지 1 초 밖에 걸리지 않습니다 ... 5k, 10k, 15k, 20k 샘플의 1000 차원 벡터에 대한 스케일링 스터디를 수행해야합니다 .

이론적으로 벡터 크기로 인해 Mini-Batch K-MeansK-Means보다 언더 폼을 수행해야하는 이유는 없으며 더 큰 샘플 크기에서 더 잘된다는 것을 알 수 있습니다. 예를 들어 커프에서 미니 배치와 함께 갈 것입니다. 연구에 대한 행동의 편견.

+0

AN6U5에 감사드립니다. 내가 찾고있는 것은 "병렬"버전의 k-means 배치 (n_jobs 인수 사용)를 미니 배치에 비교하는 것입니다. – PS1

+0

어느 것이 더 나은지 확인하기 위해 두 매개 변수를 서로 다른 매개 변수에 대해 작업하고 있습니다. 그러나 나는 누군가가 전에 이것을 해본 적이 있다면 여전히 교차 점검을 위해 여기에 질문을 게시했다. 내 결과도 공유 할 것입니다. – PS1

+0

설명해 주셔서 감사합니다. 미니 배치에 멀티 스레드 구현이 없다는 사실을 알지 못했습니다. 예, 80 코어 공유 메모리 머신이 미니 배치의 단일 핵심 인스턴스를 능가 할 수 없다면 놀랄 것입니다. 나는 당신의 강한 스케일링 연구 결과를보고 싶습니다. – AN6U5