如何读取 Mahout 聚类输出

2023-12-19

我已经对 Mahout 教程中的合成控制数据运行了 k 均值聚类算法,并且想知道是否有人可以解释如何解释输出。我运行 clusterdump 并收到如下所示的输出(被截断以节省空间):

CL-592{n=57 c=30.726, 29.813...] r=[3.528, 3.597...]}
Weight : [props - optional]: Point:
1.0 : [distance=27.453962995925863]: [24.672, 35.261, 30.486...]
1.0 : [distance=27.675053294846002]: [25.592, 29.951, 34.188...]
1.0 : [distance=28.97727289419493]: [30.696, 32.667, 34.223...]
1.0 : [distance=21.999685652862784]: [32.702, 35.219, 30.143...]
...
CL-598{n=50 c=[29.611, 29.769...] r=[3.166, 3.561...]}
Weight : [props - optional]:  Point:
1.0 : [distance=27.266203490250472]: [27.679, 33.506, 23.594...]
1.0 : [distance=28.749781351838173]: [34.727, 28.325, 30.331...]
1.0 : [distance=32.635136046420186]: [27.758, 33.859, 29.879...]
1.0 : [distance=29.328974057024624]: [29.356, 26.793, 25.575...]

有人可以向我解释一下如何阅读这个吗?据我了解,CL-__是一个簇ID,后面是n=簇中的点数,c=质心作为向量,r=半径作为向量,然后是簇中的每个点。它是否正确?此外,我如何知道哪个聚类点与哪个输入点匹配?即,这些点是否被描述为键值对,其中键是点的某种 ID,值是向量?如果没有,我可以通过某种方式将其设置为这样吗?


我相信你对数据的解释是正确的(我只与 Mahout 合作了约 3 周,所以更有经验的人可能应该对此进行权衡)。

至于将点链接回创建它们的输入,我已经使用过NamedVector,其中名称是向量的键。当您读取生成的点文件之一时(clusteredPoints)您可以将每一行(点向量)转换回NamedVector并使用检索名称.getName().

更新以回复评论

当您最初将数据读入 Mahout 时,将其转换为向量集合,然后将其写入文件(points)以供稍后的聚类算法使用。 Mahout 给你几个Vector您可以使用的类型,但它们也使您可以访问Vector包装类称为NamedVector这将使您能够识别每个向量。

例如,您可以创建每个NamedVector如下:

NamedVector nVec = new NamedVector(
    new SequentialAccessSparseVector(vectorDimensions), 
    vectorName
    );

然后你写下你的集合NamedVectors提交类似以下内容的文件:

SequenceFile.Writer writer = new SequenceFile.Writer(...);
VectorWritable writable = new VectorWritable();

// the next two lines will be in a loop, but I'm omitting it for clarity
writable.set(nVec);
writer.append(new Text(nVec.getName()), nVec);

您现在可以使用此文件作为其中一种聚类算法的输入。

使用点文件运行一种聚类算法后,它将生成完后还有点文件,但它将位于名为的目录中clusteredPoints.

然后,您可以读取此点文件并提取与每个向量关联的名称。它看起来像这样:

IntWritable clusterId = new IntWritable();
WeightedPropertyVectorWritable vector = new WeightedPropertyVectorWritable();

while (reader.next(clusterId, vector))
{
    NamedVector nVec = (NamedVector)vector.getVector();
    // you now have access to the original name using nVec.getName()
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何读取 Mahout 聚类输出 的相关文章

  • 具有非常大矩阵的 K 均值

    我必须在一个非常大的矩阵 大约 300 000x100 000 个值 超过 100Gb 上执行 k 均值聚类 我想知道我是否可以使用 R 软件或 weka 来执行此操作 我的计算机是一台多处理器 具有 8GB 内存和数百 GB 可用空间 我
  • 如何使用 Mahout 的sequencefile API 代码?

    Mahout 中有一个用于创建序列文件的命令 如下所示bin mahout seqdirectory c UTF 8 i
  • Mahout 的推荐评估器如何工作

    谁能告诉我 mahout 的 RecommenderIRStatsEvaluator 是如何工作的 更具体地说 它如何随机分割训练和测试数据以及结果与哪些数据进行比较 根据我的理解 你需要某种理想 预期的结果 你需要将其与推荐算法的实际结果
  • 如何读取 Mahout 聚类输出

    我已经对 Mahout 教程中的合成控制数据运行了 k 均值聚类算法 并且想知道是否有人可以解释如何解释输出 我运行 clusterdump 并收到如下所示的输出 被截断以节省空间 CL 592 n 57 c 30 726 29 813 r
  • 如何使用存储为 CSV 的矢量数据在 mahout 中执行 k 均值聚类?

    我有一个包含数据向量的文件 其中每行包含一个以逗号分隔的值列表 我想知道如何使用 mahout 对这些数据执行 k 均值聚类 wiki 中提供的示例提到了创建sequenceFiles 但除此之外 我不确定是否需要进行某种类型的转换才能获取
  • 在 eclipse 中使用 mahout 而不使用 Maven

    我真的不想使用maven 因为它看起来很麻烦 有没有办法只下载 mahout 并在我的 eclipse 项目中使用它 我从使用 Maven 得到的只是构建路径错误和数百万条警告 我一直在寻找一种方法来做到这一点 但人们似乎一直都在使用 Ma
  • 如何为 hadoop 2.0 编译/使用 mahout?

    最新版本的 Mahout 0 9 仅基于 hadoop 1 x 构建 mvn 干净安装 如何为 hadoop 2 0 x 编译 mahout 因为当我运行命令时 hadoop jar mahout examples 0 9 SNAPSHOT
  • 在 Mahout 0.8 中运行 cvb

    当前的 Mahout 0 8 SNAPSHOT 包括用于主题建模的折叠变分贝叶斯 cvb 版本 并删除了潜在狄利克雷分析 lda 方法 因为 cvb 可以更好地并行化 不幸的是 只有文档lda https cwiki apache org
  • Hadoop 2.2.0 与 Mahout 0.8 兼容吗?

    我的 hadoop 集群版本 2 2 0 与 mahout 0 8 一起运行 它兼容吗 因为每当我运行这个命令时 bin mahout recommenditembased input mydata dat usersFile user d
  • 用户与当前数据匹配

    我有一个包含两种不同类型的用户 导师和学员 的数据库 我希望第二组 学员 能够 搜索 第一组 导师 中与其个人资料匹配的人 导师和学员都可以随时进入并更改其个人资料中的项目 目前 我使用 Apache Mahout 进行用户匹配 recom
  • Mahout 堆空间不足

    我正在使用 Mahout 在一组推文上运行 NaiveBayes 两个文件 一个 100 MB 一个 300 MB 我将 JAVA HEAP MAX 更改为 JAVA HEAP MAX Xmx2000m 之前是 1000 但即便如此 mah
  • 如何构建/运行这个简单的 Mahout 程序而不出现异常?

    我想运行我在 Mahout In Action 中找到的这段代码 package org help import java io IOException import java util ArrayList import java util
  • 如何在 Mahout 0.9 中实现 SlopeOne 推荐器?

    我是 Mahout 新手 正在尝试使用 0 5 版本的 Mahout in Action 早期的例子之一要求使用斜率一推荐器 Mahout 0 9 中还包含此推荐器吗 我查看了文档 但找不到它 也许它已经改名了 感谢您的帮助 Mahout
  • ruby on Rails 的 Mahout 插件

    我想在 Ruby on Rails 项目中使用 Apache Mahout 来实现推荐和协作过滤 特别是我的要求是 建议相关标签 推荐相关文章 根据用户的喜好提示他评论文章 根据用户的地理位置和其他元信息 向他推荐类似的用户 如果任何其他解
  • 使用 XMLInputFormat 在 hadoop 中解析 xml 时不执行我的 hadoop 映射器类

    我是 hadoop 新手 使用 Hadoop 2 6 0 版本并尝试解析复杂的 XML 经过一段时间的搜索 我了解到 对于 XML 解析 我们需要编写自定义的 InputFormat 即 mahout 的 XMLInputFormat 我也
  • 聚类——稀疏向量和稠密向量

    对于聚类 Mahout 输入需要采用向量形式 有两种类型的向量实现 一种是稀疏向量 另一种是密集向量 两者有什么区别 稀疏和密集的使用场景 从概念上讲 稀疏向量中的大多数值都为零 而在稠密向量中则不是 对于稠密矩阵和稀疏矩阵也是如此 条款s
  • 从命令行(CLASSPATH)运行 Mahout

    在Windows下使用Maven成功编译了Mahout 我正在尝试从命令行运行示例之一 但我不明白我做错了什么 看起来像是 CLASSPATH 问题 假设我想运行 GroupLensRecommenderEvaluatorRunner 示例
  • 针对 Mahout 推荐器使用多个加权数据模型

    我有一个基于用户相似性的布尔偏好推荐器 我的数据集本质上包含关系 其中 ItemId 是用户决定阅读的文章 我想添加第二个数据模型 其中 ItemId 是对特定主题的订阅 我能想到的唯一方法是将两者合并在一起 偏移订阅 ID 这样它们就不会
  • 在 mahout-0.6 上运行“Mahout in Action”中的示例代码时出现 IOException

    我正在学习 Mahout 并阅读 Mahout in Action 当我尝试运行第 7 章 Simple KMeans Clustering java 中的示例代码时 弹出了一个异常 线程 main 中的异常 java io IOExcep
  • 是否值得购买 Mahout in Action 以跟上 Mahout 的速度,或者还有其他更好的来源吗?

    我目前是一个非常随意的用户阿帕奇马胡特 http mahout apache org 我正在考虑购买这本书象夫在行动 http www manning com owen 不幸的是 我很难理解这本书的价值 并且认为它是一本曼宁早期访问计划 h

随机推荐