kmeans集群算法(cluster-reuters)

原创文章,转载请注明: 转载自慢慢的回味

本文链接地址: kmeans集群算法(cluster-reuters)

理论分析

集群中心点计算

1 随机从待分类的向量中选出20个作为20个集群的中心。
2 对所有的点,计算其和每个中心的距离,距离最小者为当前点的集群归属。
3 重新对每个集群计算新的中心,并计算新的中心和老的中心的距离,判断其是否收敛。
4 如果所有集群都收敛或者达到用户指定的条件,则集群完成。否则,从2开始下一轮计算。

集群数据

对所有的点,计算其和每个中心的距离,距离最小者为当前点的集群归属。

代码分析

  $MAHOUT kmeans \
    -i ${WORK_DIR}/reuters-out-seqdir-sparse-kmeans/tfidf-vectors/ \
    -c ${WORK_DIR}/reuters-kmeans-clusters \
    -o ${WORK_DIR}/reuters-kmeans \
    -dm org.apache.mahout.common.distance.CosineDistanceMeasure \
    -x 10 -k 20 -ow --clustering

在这之前同样需要调用seqdirectory和seq2sparse,请参考贝叶斯分类(classify-20newsgroups)

    if (hasOption(DefaultOptionCreator.NUM_CLUSTERS_OPTION)) {
      clusters = RandomSeedGenerator.buildRandom(getConf(), input, clusters,
          Integer.parseInt(getOption(DefaultOptionCreator.NUM_CLUSTERS_OPTION)), measure);
    }

随机从待集群的文章中选取20篇文字作为20个集群的中心。
继续阅读“kmeans集群算法(cluster-reuters)”本作品采用知识共享署名 4.0 国际许可协议进行许可。