从数据库确定不同的一维数据集群


24

我有一个数据库表,用于不同节点之间的数据传输。这是一个巨大的数据库(具有近4000万次传输)。属性之一是传输的字节数(nbytes),范围从0字节到2 TB。我想对nbytes进行聚类,以便在给定k个聚类的情况下,某些x1传输属于k1聚类,而x2转移器则属于k2等。

从我使用的术语来看,您可能已经猜到了我要做什么:K-均值。这是一维数据,因为nbytes是我唯一关心的功能。当我寻找与此不同的方法时,我看到EM连同非集群方法一起被提及了两次。我想了解您对如何解决此问题的看法(特别是是否要群集)。

谢谢!


什么是“ x1传输”,“ x2传输”等?“传递类型”是第二个变量吗?
彼得·弗洛姆

x1传输只是我说这500次传输的传输大小在某个值附近的一种方法(这将是该集群的均值,以k均值表示)。
肖恩2012年

5
我不是集群专家,但是有这么多数据和仅一维数据,我想知道您是否可以仅使用不同的带宽绘制一些内核密度图,并查看找到的模式/峰数以及结果是否看起来像对您有用。
gung-恢复莫妮卡

1
您询问是否要群集。集群的目标是什么?您是否会将群集用于其他目的,或者这在理论上有意义?
彼得·弗洛姆

该表中的其他一些属性是用户名,开始日期和结束日期。我的希望是通过基于传输大小对传输进行聚类,然后可以参考特定传输的其他属性,以查看谁在一年中的哪个月进行多少传输。我还不知道如何处理这个观察结果。但这就是我要去的地方。
肖恩2012年

Answers:


43

在一维数据中,请勿使用聚类分析。

聚类分析通常是一种多变量技术。或者让我更好地反过来说:对于一维数据(它是完全有序的),有更好的技术。除非您付出足够的精力来针对1-d情况进行实际优化,否则在这里使用k-means和类似技术是一种浪费。

仅举一个例子:对于k均值,通常将k个随机对象用作初始种子。对于一维数据,在对数据进行一次排序之后,仅使用适当的分位数(1 / 2k,3 / 2k,5 / 2k等)就可以轻松地做得更好,然后从此起点进行优化。但是,二维数据无法完全分类。并且在网格中,可能会有空单元格。

我也不会称它为集群。我称之为间隔。您真正想做的是优化间隔边界。如果执行k均值,它将为每个对象测试是否应该将其移动到另一个群集。在1D中这没有意义:仅需要检查间隔边界处的对象。这显然要快得多,因为那里只有约2k个对象。如果他们还不喜欢其他间隔,则更多的中心对象也不会。

例如,您可能想研究诸如Jenks Natural Breaks优化之类的技术。

或者,您可以进行核密度估计,并在此处寻找密度的局部最小值。令人高兴的是,您无需为此指定k!

PS请使用搜索功能。以下是您错过的有关一维数据聚类的一些问题:


分位数不一定与聚类一致。一维分布可以具有3个自然群集,其中两个群集分别保存10%的数据,最后一个群集包含80%的数据。因此,我认为可以在这里聚类,尽管我同意通过巧妙地选择种子等方式或使用其他想法来优化运行是有意义的。
按位2012年

分位数可能是优化的良好种子点,这就是我所指的。并给出一个示例,说明您可以在一维中完成哪些工作,但在2维以上时效果不佳。
Anony-Mousse 2012年

我同意使用分位数作为种子是值得一试的,但是我仍然会尝试一些随机初始化(例如我给出的例子)。无论如何,最好的方法是只看直方图/密度图并手动选择种子,然后通过聚类对其进行优化。这将很快收敛为一个好的解决方案。
2012年

3
Jenks 1D的k均值。
whuber

1
即使算术上是@whuber,我也希望他足够聪明,可以利用数据进行排序。如果您使用劳埃德(Lloyd)方法对一维数据进行k-均值,那么您会很愚蠢,因为您正在进行很多可以跳过的计算。对于大多数人来说,k-均值就是劳埃德(Lloyd)。而且有些人确实在意避免不必要的重新计算。
Anony-Mousse 2013年

1

您是在问是否应该聚类,或者应该使用哪种方法进行聚类?

关于是否应该群集,取决于是否要自动对数据进行分区(例如,是否要重复进行几次分区)。如果仅执行一次此操作,则可以只查看值分布的直方图,然后按注释中的建议按眼睛对其进行分区。无论如何,我还是建议您逐一查看数据,因为它可以帮助您确定所需的群集数量,以及群集是否“有效”。

关于聚类的类型,如果数据中存在“真实”聚类,则k均值应该很好。如果您在直方图中看不到任何聚类,那么对它进行聚类就没有多大意义,因为对数据范围进行任何分区都会得到有效的聚类(或者,在随机启动kmeans的情况下,您将获得不同的聚类每次运行)。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.