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

Posted

技术标签:

【中文标题】Mahout 聚类:使用 seqdumper 检索命名向量的名称时出错【英文标题】:Mahout clustering: Error in retrieving the name of a named vector using seqdumper 【发布时间】:2016-10-11 02:23:06 【问题描述】:

我正在使用 mahout 在包含 12 个文档的目录上进行 k-means 聚类,并借助以下命令:

mahout seq2sparse -i /user/manisha1414/dir_001-seqfiles -o /user/manisha1414/dir_001-vectors --maxDFPercent 85 --namedVector
mahout seqdumper -i /user/manisha1414/dir_001-kmeans-clusters/clusteredPoints/part-m-00000 > ./dir_001-cluster-docs.txt

我得到以下输出

Key: 0: Value: wt: 1.0 distance: 47.44299700930014  vec: ["0":2.386,"2":1.875,"9":2.386,"14":2.386......... 
Key: 11: Value: wt: 1.0 distance: 217.4603558919857  vec: ["0":2.386,"2":1.875,".........

我在上面的输出中没有得到矢量 ID。

请帮助我在输出中也获取矢量 ID!

【问题讨论】:

【参考方案1】:

在将序列文件转换为矢量时使用“--namedVector true”。

【讨论】:

【参考方案2】:

当我尝试这个时,seqdumper 没有包含命名向量。除了设置 --namedVector 之外,解决方法是使用 clusterdump。输出格式需要使用 '-of CSV' 设置,因为默认的文本输出格式也不保存命名向量。

mahout clusterdump -d /user/manisha1414/docs-vectors/dictionary.file-0 -i /user/manisha1414/dir_001-kmeans-clusters/clusters-3-final -o clusters.csv -p /user/manisha1414/dir_001-kmeans-clusters/clusteredPoints -dt sequencefile -b 100 -n 20 -of CSV --evaluate

Mohammad 在How to read Mahout clustering output 中指出了这一点

【讨论】:

以上是关于Mahout 聚类:使用 seqdumper 检索命名向量的名称时出错的主要内容,如果未能解决你的问题,请参考以下文章

K 表示使用 Mahout 进行聚类

使用 Clojure 使用 Mahout 进行聚类 (fkmeans)

Mahout - 聚类的向量

Mahout 二进制数据聚类

mahout kmeans 聚类:显示错误

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