Mahout - 聚类的向量

Posted

技术标签:

【中文标题】Mahout - 聚类的向量【英文标题】:Mahout - vectors to cluster 【发布时间】:2013-01-10 19:23:15 【问题描述】:

我使用以下方法运行 K-Means:

KMeansDriver.run(new Path("./bd.seq.file"), new Path(clustersLoc), new Path("output"),
            new EuclideanDistanceMeasure(), 0.001, 10, true, 0.5, false);

我的目标是知道我的每个原始向量属于哪个集群。 据我了解,这应该在 output/clusteredPoints/part-m-00000 中,但是这个文件看起来像一个空的(120 字节)序列文件。

什么给了?

【问题讨论】:

我刚刚发现的另一个线索。这只发生在 Mahout 0.7 上。所以,这要么是一个错误,要么是一个未记录的行为变化。在 Mahout 0.5 中,我在路径 output/clusteredPoints /part-m-00000 下获得了一个文件,其中包含向量到集群的映射 ... 【参考方案1】:

好的,我终于明白了(至少部分明白了)。它与KMeansDriver.run() 8th 参数有关。 如果它的值为“0”,则其行为与 Mahout 0.5 中的相同。 参数的名称是“clusterClassificationThreshold”,它的 javadoc 声明:

是一个聚类严格性/异常值去除参数。它的价值 应该在 0 和 1 之间。具有低于此值的 pdf 的向量将 不会被聚类。

对于像我这样的 Mahout 初学者,pdf 是“概率密度函数”的首字母缩写。 我不确定我真的知道这个参数是什么(谷歌搜索在这里没有帮助,javadocs 就是你要得到的全部),但我想这是因为它是过滤 Mahout 开发人员选择的原始向量的机制的一部分如果不是'0',则禁用聚类点。

【讨论】:

以上是关于Mahout - 聚类的向量的主要内容,如果未能解决你的问题,请参考以下文章

Mahout 聚类:使用 seqdumper 检索命名向量的名称时出错

mahout lucene 文档聚类howto?

使用 Mahout 对一个点进行聚类

无法获得聚类输出 Mahout

Mahout K 表示聚类输入文件格式

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