问题标签 [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.
r - 最具代表性的集群实例
在对我的数据集(名为data.matrix的数据框)执行集群分析后,我在末尾(第 27 列)添加了一个名为cluster的新列,其中包含每个实例所属的集群名称。
我现在想要的是来自每个集群的代表性实例。我试图找到与集群质心欧几里得距离最小的实例(并对我的每个集群重复该过程)
这就是我所做的。你能想到其他——也许更优雅——的方式吗?(假设没有空值的数字列)。
algorithm - 聚合自动生成的特征向量
我有一个分类系统,不幸的是,出于工作原因,我需要对其进行模糊处理。假设我们有 5 个特性需要考虑,它基本上是一组规则:
我们取一个主题并获取它的 AE 值,然后尝试按顺序匹配规则。如果一个匹配,我们返回第一个结果。
C 是一个离散值,可以是 ae 中的任何一个。其余的只是整数。
规则集是从我们的旧系统自动生成的,并且有非常多的规则(约 2500 万条)。旧规则是 if 语句,例如
如您所见,旧规则通常甚至不使用某些功能或接受范围。有些更烦人:
规则集需要小得多,因为它必须由人工维护,所以我想缩小规则集,以便第一个示例变为:
结果是我们可以通过 Result 列拆分规则集并分别收缩。但是,我想不出一种简单的方法来识别和缩小规则集。我尝试过聚类算法,但由于某些数据是离散的,因此它们会窒息,并且将其视为连续数据是不完美的。另一个例子:
在理想的世界中,这将是两个规则:
即:算法不仅会识别 A 和 B 之间的关系,还会推断出 C 是噪声(对规则不重要)
有谁知道如何解决这个问题?任何语言或库都是公平的游戏,因为我希望这主要是一次性的过程。提前致谢。
java - Java 聚类库
我正在寻找 java 中的轻量级聚类库。我不需要该库中的 100 个聚类算法,只需 5 到 7 个算法对我来说就可以了。
我敢肯定,您会问:“您需要什么样的算法以及用于什么目的”:)。我只需要在聚类的帮助下对我的数据进行分类。例如 K 表示。
PS:我知道 weka 但我不想使用它,因为它不是专门用于集群的。
python - 当股价彼此相差在 0.5% 以内时,将它们分组
感谢您的回答,我之前没有使用过 StackOverflow,所以我对答案的数量和速度感到惊讶——太棒了。
我还没有正确地完成答案,但认为我应该在问题规范中添加一些信息。见下图。
我无法在此发布图片,因为我没有足够的积分,但您可以在http://journal.acquitane.com/2010-01-20/image003.jpg看到图片
这张图片可能更准确地描述了我想要实现的目标。因此,您可以在页面上的水平线上看到图表上的价格点。现在,您可以在每条线的 0.5% 范围内得到一个聚类,这被认为是一件好事,也是我想自动识别这些聚类的原因。您可以在图表上看到 S2 和 MR1、R2 和 WPP1 有一个集群。
所以我每天都会产生这些价格点,然后我可以手动识别那些在 0.5% 以内的价格点。- 但这个问题的目的是如何用 python 例程来做。
我再次复制了带有标签的列表(见下文)。请注意,标价点与图像中的价格点不匹配,因为它们来自两个不同的日子。
[YR3,175.24,8] [SR3,147.85,6] [YR2,144.13,8] [SR2,130.44,6] [YR1,127.79,8] [QR3,127.42,5] [SR1,120.94,6] [ QR2,120.22,5] [MR3,118.10,3] [WR3,116.73,2] [DR3,116.23,1] [WR2,115.93,2] [QR1,115.83,5] [MR2,115.56,3] [DR2 ,115.53,1] [WR1,114.79,2] [DR1,114.59,1] [WPP,113.99,2] [DPP,113.89,1] [MR1,113.50,3] [DS1,112.95,1] [WS1, 112.85,2] [DS2,112.25,1] [WS2,112.05,2] [DS3,111.31,1] [MPP,110.97,3] [WS3,110.91,2] [50MA,110.87,4] [MS1,108.91 ,3] [QPP,108.64,5] [MS2,106.37,3] [MS3,104.31,3] [QS1,104.25,5] [SPP,103.53,6] [200MA,99.42,7] [QS2,97.05, 5] [YPP,96.68,8] [SS1,94.03,6] [QS3,92.66,5] [YS1,80.34,8] [SS2,76.62,6] [SS3,67.12,6] [YS2,49.23,8 ] [YS3,32.89,8]
我确实在原始列表中犯了一个错误,因为 C 组是错误的,不应该包括在内。感谢您指出了这一点。
0.5% 也不是固定的,这个值会每天都在变化,但我只是用 0.5% 作为一个例子来说明问题。
再次感谢。标记
PS。我现在会开始检查答案。
你好:
我需要对股价进行一些操纵。我刚刚开始使用 Python,(但我认为我在用任何语言实现它都会遇到麻烦)。我正在寻找一些关于如何在 python 中很好地实现这一点的想法。
谢谢马克
问题:我有一个列表列表(FloorLevels(见下文)),其中子列表有两个项目(股票价格,重量)。我想将股价在彼此相差 0.5% 以内时分组。一个团体的实力将由其总重量决定。例如:
python - Python KMeans 橙色框架
我打算使用橙色进行 kmeans 聚类。我已经阅读了教程,但我仍然有几个问题想问:
我正在处理高维向量上的聚类。1)是否实施了余弦距离?2)我不想给空值零。我尝试在空字段中没有任何零并且收到错误:
如何指示空值?3) 有没有办法将“ID”合并到示例表中?我想通过 ID(非分类)标记我的数据,以便于参考。我不将 ID 列作为我数据的正式部分。
4) 有没有办法为 kmeans 聚类提供不同的输出?我更喜欢这种格式的东西:
谢谢!
java - Java中的二维哈希图(以及一般)
哪个是在 Java 中有效编写二维哈希图的最佳方法?举个例子说明我在说什么:我正在开发一些与集体智慧相关的算法,这些算法通过计算元素对之间的相关性来工作。
如果不缓存这些值,因为它们是在同一对上多次计算的,所以性能很糟糕..(算法可以是O(n^2)但可能是O(n^3)所以我正在考虑使用 HashMap 将值存储到可以多次使用。
在 Java 中实现这种数据结构的最有效方法是什么?应该可以使用O(1)缓存和删除由一对元素生成的值,但无论如何使用显式类似乎太重了。
如果 Java 不够用,我将不得不切换到 C/C++,因此也欢迎任何与这些语言相关的想法。
谢谢
java - 在java中 - 对相似值进行分组
首先,感谢您阅读我的问题。
我用过TF/IDF然后在这些值上,我计算了余弦相似度,看看有多少文档更相似。您可以看到以下矩阵。列名类似于 doc1、doc2、doc3,行名与 doc1、doc2、doc3 等相同。借助以下矩阵,我可以看到 doc1 和 doc4 具有 72% 的相似性(0.722711142)。即使我看到它们相似的两个文件也是正确的。我有 1000 个文档,我可以看到每个文档的频率。在矩阵中查看其中有多少是相似的。我使用了不同的聚类,比如 k-means 和 agnes (hierarchy) 来组合它们。它制造了集群。例如 Cluster1 有 (doc4, doc5, doc3) 因为它们的值 (0.722711142, 0.602301766, 0.69912109) 分别更接近。但是当我手动查看这三个文件是否真的相同时,它们不是。:
PS:值可能是错误的,这只是给你一个想法。如果您有任何问题,请务必提出。谢谢
java - Java distributed objects with locality?
I am evaluating various Java object distribution libraries (Terracotta, JCS, JBoss, Hazelcast ...) for an application server and I'm having trouble understanding their behavior on various axes.
My requirements for distributed objects are not many -- they boil down to one-to-one and one-to-many messaging. There's more, but for the rest we just use JDBC and I assume I can plop a cache in front of this using any of the available libraries.
I would like a system that distributes objects and exhibits locality properties -- in other words, a server that grabs an object tends to hold onto it without excess communication to other nodes. Hazelcast looks simple (and peer-to-peer is nice) but seems to require objects are distributed evenly across all nodes.
I'd like a way to persist objects, preferably transparently. I plan on using EC2, so I have the option of temporary, free, limited local storage (the disk) and permanent, non-free, unlimited storage (S3). It'd be great not to worry about OutOfMemoryErrors.
I like the simplicity and "magic" of Terracotta but it scares the beejeezus out of me. Also in order to truly scale you have to spend $$$$, otherwise you're communicating with a single hub.
I'm cheap and I want something not only free but mature and with a large userbase.
Thanks for any input.
algorithm - 哪种数据聚类算法适合检测时间序列事件中未知数量的聚类?
这是我的场景。考虑在不同地点和时间发生的一组事件——例如,考虑在暴风雨期间记录城市雷击的高处的人。就我而言,闪电是瞬时的,并且只能击中某些位置(例如高楼)。还可以想象每次雷击都有一个唯一的 id,以便以后可以参考雷击。这个城市大约有 100,000 个这样的地点(正如你猜测的那样,这是一个类比,因为我现在的雇主对实际问题很敏感)。
对于第 1 阶段,我的输入是一组(罢工 id、罢工时间、罢工地点)元组。期望的输出是在短时间内击中同一位置的多于 1 个事件的集群集。集群的数量是事先不知道的(所以 k-means 在这里没那么有用)。可以为给定的聚类尝试预定义被视为“短”的内容。也就是说,我可以将其设置为 3 分钟,而不是运行算法;稍后尝试 4 分钟或 10 分钟。也许一个不错的方法是让算法确定聚类的“强度”,并建议对于给定的输入,通过使用“short”的特定值来实现最紧凑的聚类,但最初这不是必需的。
对于第 2 阶段,我想考虑撞击的幅度(即实数)并寻找在短时间内且具有相似幅度的集群。
我用谷歌搜索并检查了这里关于数据聚类的答案。这些信息有点令人困惑(下面是我发现有用的链接列表)。AFAIK、k-means 和相关算法将没有用,因为它们需要先验指定集群的数量。我不是要求有人来解决我的问题(我喜欢解决它),但是为了节省一些时间,在数据聚类算法的大世界中进行一些定位会很有用。具体来说,当聚类数量未知时,哪些聚类算法适用。
编辑:我意识到位置无关紧要,因为尽管事件一直在发生,但我只需要按位置对它们进行聚类。因此,每个位置都有自己的事件时间序列,因此可以独立分析。
一些技术细节:
- 由于数据集不是那么大,它可以适合所有内存。
- 并行处理很不错,但不是必需的。我只有 4 核机器,MapReduce 和 Hadoop 会太多。
- 我最熟悉的语言是Java。我还没有使用过 R,而且它的学习曲线对于我得到的时间来说可能太多了。反正我会在空闲的时候看看它。
- 目前,使用工具运行分析是可以的,我不必只生成代码。我之所以提到这一点,是因为可能会建议Weka 。
- 可视化会很有用。由于数据集足够大,无法放入内存,因此可视化至少应该支持缩放和平移。澄清一下:我不需要构建可视化 GUI,它只是一个很好的功能,可用于检查工具产生的结果。
谢谢你。我发现有用的问题是:如何找到数字簇的中心?统计问题?, Paper Boys 的聚类算法, Java 聚类库,如何聚类对象(无坐标) ,检测点的“聚类”的算法
r - 如何手动创建树状图(或“hclust”)对象?(在 R 中)
我有一个树状图作为图像给我。由于它不是很大,我可以“手动”将它构造成一个 R 对象。
所以我的问题是,当我只有树状图图像时,如何手动创建树状图(或“hclust”)对象?
我看到有一个名为“as.dendrogram”的函数,但我找不到如何使用它的示例。
(ps:这篇文章是按照我的问题从这里开始的)
非常感谢,塔尔