2011-08-10 4 views
0

시퀀스 파일 세트에 대해 K 평균 클러스터링 알고리즘을 실행했습니다. 그러나, 생성 된 결과는 다음과 같다 : []Mahout K-means 클러스터링은 0과 같은 결과를 클러스터 1.0에 제공합니다 : []

[]

0 1.0 클러스터에 속하는 []

0 1.0 클러스터에 속하는 :

0 1.0 클러스터에 속하는

0 1.0 클러스터에 속하는 []

0 1.0 클러스터에 속하는 []

0 cluste 속하는 r 1.0 : []

내가 사용하는 프로그램은 Mahout-in-Action의 9 장에 나와있는 NewsKMeansClustering.java에서 빌린 것입니다.

왜 이런 유형의 결과가 나에게 알려 주시겠습니까? 그것은 특정 매개 변수 설정 요구 사항 또는 다른 이유로 인해 발생합니까?

이 프로그램의 핵심 클러스터링 코드는 내가 두싯 0.5 사용하여 동일한 문제로 실행

CanopyDriver.run(vectorsFolder, canopyCentroids, new EuclideanDistanceMeasure(), 250, 120, false, false); 

KMeansDriver.run(conf, vectorsFolder, new Path(canopyCentroids, "clusters-0"), 
clusterOutput, new TanimotoDistanceMeasure(), 0.01, 20, true, false); 

답변

3

입니다. 문제는 normPower 매개 변수가 두 함수에서 모두 사용된다고 생각합니다. 이와 비슷한 코드를 사용해보십시오.

DictionaryVectorizer.createTermFrequencyVectors(tokenizedPath, 
       outputDir, conf, minSupport, maxNGramSize, 
       minLLRValue, 
       -1.0f, // no normalization here 
       logNormalize, numReducers, chunkSize, 
       sequentialAccessOutput, namedVector); 
TFIDFConverter.processTfIdf(vectorOutput, new Path(outputDir, 
       "tfidf"), conf, chunkSize, minDf, 
       maxDFPercent,normPower, 
       logNormalize, sequentialAccessOutput, namedVector, 
       numReducers); 

그 후 빈 클러스터에 문제가 발생하지 않았습니다.

2

이 문제가 발생했습니다. 초보자로서 해결하기가 매우 어려웠습니다. 그러나 필자의 경우, 캐노피 클러스터링의 T1 및 T2 값은 제공된 로이터 데이터 (및 유클리드 표준)에 대해서만 유효하다는 것을 알게되었습니다. 나는 본질적으로 다른 문서 벡터 간의 거리 분포가있는 것으로 보이는 내 자신의 문서 데이터를 사용했다. 그래서 저는 기초적인 분석을 한 후 내 데이터에서 T1과 T2를 재 추정했습니다. 그런 다음 일이 잘되었습니다. ... 또한 내 게시물이 도움이

How to pick the the T1 and T2 threshold values for Canopy Clustering?

희망을 참조하십시오.

관련 문제