Mahout Java API 用于查找使用 k-means 生成的集群的质心

Posted

技术标签:

【中文标题】Mahout Java API 用于查找使用 k-means 生成的集群的质心【英文标题】:Mahout Java API to find centroid of clusters generated using k-means 【发布时间】:2013-09-18 01:22:17 【问题描述】:

我使用 Mahout 中的 k-means 算法将一个点列表聚类到 k 个簇中。我们如何找到特定集群的质心?是否有任何 java Mahout API 调用可以找到这个?

【问题讨论】:

【参考方案1】:

我可以使用以下代码找到质心。

SequenceFile.Reader reader1 = new SequenceFile.Reader(fs, new Path( “输出/clusters-1/part-r-00000”), conf);

    IntWritable key1 = new IntWritable();
    ClusterWritable value1 = new ClusterWritable();
    while (reader1.next(key1, value1)) 

        System.out.println(value1.getValue().getCenter()+ " ------------ "
                + key1.toString());
    
    reader1.close();

【讨论】:

ClusterWritable 在 Mahout v0.5 中不可用。我现在使用的是 v0.8,它是可用的。谢谢!

以上是关于Mahout Java API 用于查找使用 k-means 生成的集群的质心的主要内容,如果未能解决你的问题,请参考以下文章

mahout in Action2.2-聚类介绍-K-means聚类算法

K 表示使用 Mahout 进行聚类

使用 Mahout 向量训练 Spark k-means

Mahout 0.9 K-Means mapReduce 算法分析

Mahout KMeans 生成的簇数比我的初始 K 设置翻倍

如何使用存储为 CSV 的矢量数据在 mahout 中执行 k-means 聚类?