2011-05-14 2 views
2

내 데이터에는 사용자 목록이 있습니다. 각 사용자의 개별 파일에이 좋아하는 파일을 덤프하고 클러스터했습니다. 출력이 여러 클러스터에서 같은 것을 좋아한다는 것을 제외하고는 모든 것이 작동합니다. 내 이해 k- 수단 독점해야합니다. 데이터를 버리는 방법에 문제가있는 것 같습니다. 나는 또한 커스텀 토크 나이저를 쓸 수있을 때까지 당분간 공백없이 모든 좋아하는 것들을 버렸다. 다음은 루비 스크립트에서 실행중인 작업입니다. (서로 다른 가중치하지만)Mahout의 K-means는 비 독점 클러스터를 반환합니다

system("#{MAHOUT_CMD} seqdirectory -c UTF-8 -i data/users -o data/kmeans/converted") 
system("#{MAHOUT_CMD} seq2sparse -i data/kmeans/converted -o data/kmeans/vectors") 
system("#{MAHOUT_CMD} kmeans -i data/kmeans/vectors/tfidf-vectors -c data/kmeans/initial_clusters -o data/kmeans/kmeans_clusters -dm org.apache.mahout.common.distance.EuclideanDistanceMeasure -cd 0.1 -k 20 -x 20") 

last_cluster_folder = Dir["data/kmeans/kmeans_clusters/*"].last.gsub("data/kmeans/kmeans_clusters/", "") 

system("#{MAHOUT_CMD} clusterdump -s data/kmeans/kmeans_clusters/#{last_cluster_folder}/ -d data/kmeans/vectors/dictionary.file-0 -dt sequencefile -o data/kmeans/clusters.txt -n 1000") 

출력은 각 클러스터에서 "최고 용어"를 나열 좋아의 그러나 많은 사람들이 각 클러스터에서 발생합니다. clusterdumper에 대한 정상적인 출력입니까, 각 단어가 해당 클러스터의 가중치에 속하는 클러스터를 알아야합니까?

감사

아마 만 대략 K-수단을하고
+1

이것은 아마도 [email protected]에서 훨씬 더 성공적 일 것입니다. –

답변

0

두싯. 또한 둘 이상의 클러스터와 동일한 거리를 가진 개체가있을 수 있습니다.

그러나 k 방법을 사용하고 각 객체에 대해 고유 한 결과를 얻으려면 1 근처 인접 분류를 수행 할 수 있어야합니다 (병렬 처리는 매우 간단 함).

관련 문제