问题标签 [cluster-analysis]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
2254 浏览

algorithm - 基于拍摄日期聚类图片的算法

任何人都知道根据照片拍摄日期将照片分组为事件的算法。显然我可以按日期分组,但我想要一些更复杂的东西,它(可能)能够根据特定时间跨度内的频率对跨越多天的图片进行分组。考虑以下分组:

  • 2009 年 1 月 2 日 15 张照片
  • 2009 年 1 月 3 日 20 张照片
  • 2009 年 1 月 4 日 13 张照片
  • 2009 年 1 月 5 日 19 张照片
  • 2009 年 1 月 15 日 5 张照片

可能这些将分为两组:

  1. 2009 年 1 月 2 日 -> 2009 年 1 月 5 日
  2. 2009 年 1 月 15 日

显然,需要建立一些公差。

除了发明我自己的自上而下的方法之外,是否有任何成熟的方法可以做到这一点?

0 投票
8 回答
22652 浏览

python - 如何在 Python 中对图进行聚类?

设 G 为图。所以 G 是一组节点和一组链接。我需要找到一种快速划分图形的方法。我现在正在处理的图表只有 120*160 个节点,但我可能很快就会在另一个上下文(不是医学,而是网站开发)中处理一个具有数百万个节点的等效问题。

所以,我所做的是将所有链接存储到一个图形矩阵中:

现在,如果节点 s 连接到节点 t,则 M 在位置 s,t 中保持 1。我确保 M 是对称的 M[s,t]=M[t,s] 并且每个节点都链接到自身 M[s,s]=1。

如果我记得很清楚,如果我将 M 与 M 相乘,结果是一个矩阵,它表示连接通过两个步骤到达的顶点的图。

所以我继续将 M 与自身相乘,直到矩阵中零的数量不再减少。现在我有了连接组件的列表。现在我需要对这个矩阵进行聚类。

到目前为止,我对算法非常满意。我认为它简单、优雅且相当快。我在这部分遇到了麻烦。

本质上,我需要将此图拆分为其连接的组件。

我可以遍历所有节点,看看它们连接到什么。

但是如何对矩阵进行排序以重新排序行。但我不知道是否有可能做到这一点。

以下是到目前为止的代码:


编辑:

有人建议我使用 SVD 分解。这是 5x5 图上的问题的简单示例。我们将使用它,因为在 19200x19200 方阵中不容易看到簇。

这里基本上有 4 个集群:(0),(1,3),(2),(4) 但我仍然看不到 svn 在这种情况下如何提供帮助。

0 投票
7 回答
19370 浏览

cluster-analysis - 如何计算聚类中的精度和召回率?

我真的很困惑如何在集群应用程序中计算精度和召回率。

我有以下情况:

给定两个集合 A 和 B。通过为每个元素使用唯一键,我可以确定 A 和 B 的哪些元素匹配。我想根据功能对这些元素进行聚类(当然不使用唯一键)。

我正在做聚类,但我不确定如何计算精度和召回率。根据论文“Extended Performance Graphs for Cluster Retrieval”(http://staff.science.uva.nl/~nicu/publications/CVPR01_nies.pdf),公式为:

p = 精度 = 相关检索项目/检索项目和 r = 召回 = 相关检索项目/相关项目

我真的不知道哪些元素属于哪个类别。

到目前为止,我所做的是,我在集群中检查了我有多少匹配对(使用唯一键)。这已经是精确度或召回率之一了吗?如果是这样,它是哪一个,我如何计算另一个?

更新:我刚刚在http://mtg.upf.edu/files/publications/unsuperf.pdf找到另一篇题为“An F-Measure for Evaluation of Unsupervised Clustering with Non-Determined Number of Clusters”的论文。

0 投票
5 回答
2094 浏览

algorithm - 如何聚类对象(无坐标)

我有一个不透明对象的列表。我只能计算它们之间的距离(不是真的,只是为问题设置条件):

我想对这些对象进行聚类。我想控制集群的数量,并且我希望“关闭”对象位于同一个集群中:

任何人都可以建议(并链接到;-))一些聚类算法(越简单越好!)或可以帮助我的库?

澄清大多数聚类算法要求对象被布置在一些 N 维空间中。该空间用于查找集群的“质心”。就我而言,我不知道 N 是什么,也不知道如何从对象中提取坐标系。我只知道两个物体相距多远。我想找到一个只使用该信息的好的聚类算法。

想象一下,您正在根据对象的“气味”进行聚类。您不知道如何在 2D 平面上放置“气味”,但您确实知道两种气味是否相似。

0 投票
3 回答
3257 浏览

c# - 寻找集体智慧 .Net / C# 资源

首先,我意识到这是一个与这个问题非常相似的问题:哪些是 .net/java 中集体智能的优秀开源库?

...但是那个问题的所有答案都是以 Java 为中心的,所以我再次询问,这次更多的是寻找 .Net(理想的 C#)想法。

一点背景;我最近阅读了Toby Segran 的关于 CI 的优秀书籍,我刚刚拿到了Satnam Alag 的书(我相信它也很优秀,但我才刚刚打开它)。这些都是以 Python 和 Java 为中心的,我在阅读代码示例时没有任何问题,但由于我是一名 C# 开发人员,因此在我的母语中使用其中的一些想法会很有趣。我已经搜索了网络和 SO,但没有想出太多。在某种程度上,这是个好消息,也许我可以将一些东西移植到 .Net(欢迎提出建议),但在我这样做之前,我也真的很想看看任何现有的项目。

那么,有没有在 .Net 中从事 OS 项目的 CI 粉丝,我是否错过了一些显而易见且有趣的书籍/网站/博客?

我意识到 CI 是一个相当广泛的领域,所以为了缩小范围,我主要对集群/预测/推荐领域感兴趣,但对其他想法持开放态度。

编辑:刚刚发现这本书即将由 Manning 出版,这可能会让 CI 粉丝感兴趣:智能网络算法

编辑澄清以回应 Moose 的评论;我真正在寻找的是使用 CI 技术和 .Net 的库、框架或大型项目(理想的操作系统)。代码示例很棒,但正如 Moose 在他的评论中所说,获取 Java 示例并移植它们很容易。例如,有一个用 Java 编写的名为WEKA的有趣项目,我没有理由不能使用它并进行试验,我只是想知道 .Net 中是否发生了类似的事情。我刚刚浏览了有关Lucene的信息,我看到有一个 C# 端口,所以这是一个开始……还有更多吗?

编辑这不是 C#,而是 .Net;Robert Pickering 已开始在此处收集 F# CI 资源。看起来很有趣,但我仍在寻找 C# 信息。

0 投票
3 回答
5271 浏览

algorithm - 新闻聚类

Google 新闻和 Techmeme 如何对相似的新闻项目进行聚类?是否有任何众所周知的算法用于实现这一目标?

感谢你的帮助。

提前致谢。

0 投票
2 回答
19910 浏览

c++ - 用于聚类的 C/C++ 机器学习库

有哪些支持多维数据聚类的 C/c++ 机器学习库?(例如 K 均值)

到目前为止,我遇到了

我很想自己动手,但我敢肯定,预先存在的优化性能要好得多,并且更多地关注代码。

0 投票
4 回答
10375 浏览

algorithm - 最好的聚类算法?(简单解释)

想象以下问题:

  • 您有一个包含大约 20,000 条文本的数据库,表中名为“articles”
  • 您想使用聚类算法连接相关文章,以便一起显示相关文章
  • 该算法应该进行平面聚类(不是分层的)
  • 相关文章应插入“相关”表中
  • 聚类算法应根据文本判断两篇或多篇文章是否相关
  • 我想用 PHP 编写代码,但使用伪代码或其他编程语言的示例也可以

我用函数 check() 编写了初稿,如果两个输入文章相关,则给出“true”,否则给出“false”。其余的代码(从数据库中选择文章,选择要比较的文章,插入相关的文章)也是完整的。也许您也可以改进其余部分。但对我来说重要的要点是函数 check()。因此,如果您可以发布一些改进或完全不同的方法,那就太好了。

方法 1

方法 2 [仅检查()]

我还想说,我知道有很多聚类算法,但是在每个站点上只有数学描述,这对我来说有点难以理解。所以(伪)代码中的编码示例会很棒。

我希望你能帮助我。提前致谢!

0 投票
2 回答
1125 浏览

google-maps - 如何在地图集群而不是堆栈上有标记

我的团队正试图在有限的时间内解决问题。我们在我们的网站上开发了一个相当复杂的地图界面来显示内容(旅行、社交内容等)。例如,当用户搜索“旧金山皮划艇”时,地图会显示旧金山的所有皮划艇旅行,但由于它们都被地理标记(使用 geonames.org)到同一个计划,地图堆栈上的标志而不是聚类。我正在四处寻找解决方案 - 你有什么想法吗?我们有 RoR - http://www.ekoventure.com

0 投票
2 回答
132 浏览

search - 如何可视化大型文档集?

我有 100 Gb 的文件。我想对其进行描述,并对流行的主题有一个大致的了解。

文档是纯文本。

我曾考虑使用 Google 桌面之类的工具进行搜索,但它太大而无法真正猜测要搜索的内容,而且执行足够多的搜索以覆盖整个集合太费时。

是否有任何免费可用的工具可以对大型文档数据集进行聚类?

有没有这样的工具可以可视化这样的集群?