http://my.oschina.net/u/1047640/blog/263742
mahout要求数据时空格分割的序列化文件,所以先把,逗号都换成空格,然后使用inputDriver这个工具类对文件处理
把用户主目录下testdata文件下的空格分隔文件,处理一下
mahout org.apache.mahout.clustering.conversion.InputDriver -i testdata/p04.csv -o testouput/vectorfiles -v org.apache.mahout.math.RandomAccessSparseVector
处理完,因为mahout还要求输入初始点,所以先建了一个空文件夹表示药房初始点集,不过我们这里指定k随机抽取
mkdir testdata/intpoint
可以聚类了。聚类之后可是使用工具命令把结果导出来,也可以去mahout源码下运行clusterdumper类
cd 表示收敛差值的阀值,x表示最大迭代次数,k初始点有多少个,k有了之后,忽略-c的内容
mahout kmeans -i testdata/vectorfiles -o testoutput/kmeans-10-4 -c testdata/initpoint\ -cd 0.5 -x 10 -cl -k 4 -ow
mahout clusterdump -i testouuput/kmeans-10-4/cluster-1-final \ -o testoutput/kmeans-10-4/result.txt
mahout canopy -i testdata/vectorfiles -o testoutput/canopy-0.2-0.1 -ow -t1 0.2 -t2 0.1
mahout clusterdump -i testoutput/canopy-0.2-0.1/clusters-0-final \
-o testoutput/canopy-0.2-0.1/result.txt
C-0{n=8 c=[0.495, 0.614] r=[0.181, 0.135]}
C-1{n=5 c=[0.615, 0.608] r=[0.100, 0.105]}
C-2{n=5 c=[0.443, 0.383] r=[0.170, 0.137]}
C-3{n=5 c=[0.599, 0.503] r=[0.079, 0.120]}
mahout fkmeans -i testdata/vectorfiles -o testoutput/fuzzekmeans \
-c testdata/initpoint -cd 0.5 -x 10 -cl -k 4 -ow -m 2
mahout clusterdump -i testoutput/fuzzekmeans/clusters-1-final \
-o testoutput/fuzzekmeans/result.txt