2014-07-09 3 views
1

매트릭스 데이터 집합이 dt = 64x150이라고 가정하면 클러스터에 64dim 행렬이 있다고 가정합니다. vl_feat의 라이브러리로부터 kmeans 기능을 사용K- means 클러스터링, 주요 이해 문제

, 나는 20 centrers 내 데이터 집합을 클러스터합니다

[centers, assignments] = vl_kmeans(dt, 20); 

centers는 64x20 행렬이다.

assignments은 내부에 값이있는 1x150 매트릭스입니다.

설명서에 따라 : 벡터 지정에는 클러스터에 대한 입력 데이터의 (하드) 지정이 포함됩니다.

매트릭스의 숫자가 의미하는 바를 아직 알 수 없습니다. assignments. 나는 그것을 전혀 얻지 않는다. 여기 좀 도와 주실 분 있나요? 예 또는 뭔가 좋은 것입니다. 이 값들은 무엇을 나타내는가? OpenCV의에서

+2

'과제'는 150 개의 데이터 인스턴스가 20 개의 클러스터 중 하나에 해당하는 것을 나타내는 벡터입니다. '할당'의 숫자 범위는 1에서 20까지 가야합니다. –

+0

@ ParagS.Chandakkar 나는 두 줄로 설명했듯이 그것을 아주 좋아했습니다. 마침내 깨달았습니다. 감사. – Thms

답변

8

에 속하는 클러스터의 수를 당신이 해결하려고하는 문제가 20 개 클러스터로 150 포인트를 클러스터링의 문제 k는-의미한다. 각 점은 64 차원 점이므로 크기가 64 인 벡터로 나타납니다. 따라서 dt이 점 집합이므로 각 열은 64 차원 벡터입니다.

알고리즘을 실행 한 후 centersassignments이 표시됩니다. centers은 시각화하고 점과 클러스터 사이의 거리를 측정하려는 경우 64 개의 희미한 공간에서 클러스터 센터의 20 개 위치입니다. 한편 '할당'은 각 64- dim 점의 실제 할당을 포함합니다 dt. 그러므로 assignments[7]15이면 dt의 7 번째 벡터가 15 번째 클러스터에 속한다는 것을 나타냅니다.

예를 들어 여기서 2d 점의 클러스터링을 볼 수 있습니다. 10003 클러스터로 가정 해 봅시다. 이 경우 dt은 (경우에 당신이 사용하고있는, 또는 2-0openCV) 2x1000, centers2x3이 될 것입니다 및 할당이 1x1000 것 및 1에서 3에 이르기까지 숫자를 개최 것

enter image description here

편집 : 이 이미지를 생성하는 코드는 여기에 있습니다 : pyPR에 대한 kmeans에 대한 자습서와 함께 http://pypr.sourceforge.net/kmeans.html#k-means-example.

+0

+1 아마도 클러스터 및 차트를 생성하는 코드를 추가하기 만하면됩니까? – Dan

+0

@zenpoy 매우 유익한 감사합니다. – Thms

0

는 입력 점의 각각에서

관련 문제