K-means聚类方法
K-means聚类方法
就是把空间内点,分成K类。同一聚类中的对象相似度较高;而不同聚类中的对象相似度较小。
用均值来代表类中心,并用于衡量与新点的距离。
初始值:
根据先验知识找到K个均值,做迭代初始值。
迭代公式:
1:从n个数据对象中选择k个对象作为初始聚类中心
2:将剩下的n-k个数据对象,按照他们和初始的k个值之间的距离大小,分配给与其最近的聚类。
3:计算形成的k个新聚类的聚类中心(该聚类中所有对象的均值)
4:重复2
5:类中心不再摆动,或者摆动幅度很小,趋于稳定,则终止。
测准函数一般使用均方差。
bin/mahout kmeans \
?? ?-i <input vectors directory> \
?? ?-c <input clusters directory> \
?? ?-o <output working directory> \
?? ?-k <optional number of initial clusters to sample from input vectors> \
?? ?-dm <DistanceMeasure> \
?? ?-x <maximum number of iterations> \
?? ?-cd <optional convergence delta. Default is 0.5> \
?? ?-ow <overwrite output directory if present>
?? ?-cl <run input vector clustering after computing Canopies>
?? ?-xm <execution method: sequential or mapreduce>
注意: 当-k被指定的时候,-c目录下的所有聚类都将被重写,将从输入的数据向量中随机抽取-k个点作为初始聚类的中心。
?
1 楼 此情此景 2011-03-04 你好!kmeans结果是SequeceFile类型的文件,打不开,怎么看呢? 2 楼 chakey 2011-03-06 此情此景 写道你好!kmeans结果是SequeceFile类型的文件,打不开,怎么看呢?You may find Tika (http://lucene.apache.org/tika) helpful in converting binary documents to text. 3 楼 chakey 2011-03-06 另外请参考:
./mahout seqdump seqFile
和
./mahout clusterdump seqFileDir
用法
他们都可以把SequeceFile转换成text格式。 4 楼 此情此景 2011-03-07 多谢指教,看了结果,只是每类的个数及中心、半径啥的,没有各类中包含的样本都是哪些,呵呵就是每个记录属于哪个类的情况,呵呵 5 楼 大海lb 2012-04-28 求教,-c目录如何指定,自己随便定的目录,会报错:No clusters found. Check your -c path.,搞了好几天都不知道怎么弄?