何时使用k意味着聚类算法?

时间:2014-03-19 05:04:26

标签: cluster-analysis data-mining k-means

我可以对单个属性使用k-means算法吗?

属性和集群数量之间是否有任何关系?

我有一个属性的性能,我想将数据分为3个集群:贫穷,中等和良好。

是否可以创建具有一个属性的3个群集?

5 个答案:

答案 0 :(得分:2)

当您了解空间中实际存在多少个群集时,

K-Means非常有用。它的主要好处是它的速度。属性与数据集中的观察数量之间存在关系。

有时,数据集可能会受The Curse of Dimensionality影响,其中变量/属性的数量远远大于您的观察数量。基本上,在几乎没有观测的高维空间中,很难将观测结果分离出来。

您当然可以拥有三个具有一个属性的群集。考虑您有7个观察值的定量属性

  • 1
  • 2
  • 100
  • 101
  • 500
  • 499
  • 501

请注意,此示例中有三个集群:1.5,100.5和500。

答案 1 :(得分:1)

是的,可以使用具有单一属性的群集。

群集数量与属性之间没有已知关系。然而,有一些研究建议采用簇数(k)= n \ sqrt {2},其中n是项目的总数。这只是一项研究,不同的研究提出了不同的聚类数。确定群集编号的最佳方法是选择最小化群集内距离并最大化群集间距离的群集编号。具备背景知识也很重要。

您正在使用性能属性查找的问题更多是分类问题,而不是群集问题 Difference between classification and clustering in data mining?

答案 2 :(得分:1)

如果您有一维数据,搜索stackoverflow 以获得比k-means更好的方法。

当您拥有多变量数据时,K-means和其他聚类算法会闪耀。他们将使用一维数据“工作”,但他们不再那么聪明了。

一维数据有序。如果您对数据进行排序(或者甚至已经对其进行了排序),则可以比使用k-means更有效地处理数据。 k-means的复杂性是“只是”O(n*k*i),但是如果你的数据被排序并且是1维的,你实际上可以将k-means提高到O(k*i)。排序是有代价的,但各处都有非常好的排序实现......

另外,对于一维数据,您可以使用许多统计数据,这些统计数据在较高维度上没有得到很好的研究或易处理。您真正应该尝试的一个统计数据是核密度估计。也许还可以尝试Jenks Natural Breaks Optimization。

但是,如果您想将数据拆分为差/中/高,为什么不只使用两个阈值

答案 3 :(得分:0)

正如其他人已经回答的那样,k均值需要有关簇数的先验信息。一开始这似乎不是很有帮助。但是,我会引用以下与我合作过的场景,发现它非常有帮助。

颜色分割

想一想具有3个信息通道的图片。 (红色,绿色,蓝色)为了缩小尺寸,您希望将颜色量化为20个不同的波段。我们称其为矢量量化。

每个像素都是具有红色,绿色和蓝色分量的3维向量。如果图像是100像素乘100像素,则您有10,000个向量。

R,G,B
128,100,20
120,9,30
255,255,255
128,100,20
120,9,30
.
.
.

根据要执行的分析类型,可能不需要所有R,G,B值。处理序数表示可能更简单。 在上面的示例中,可以为RGB值分配一个扁平的整数表示形式

R,G,B
128,100,20 => 1
120,9,30   => 2
255,255,255=> 3
128,100,20 => 1
120,9,30   => 2

您对这10,000个向量运行k-Means算法,并指定20个簇。 结果-您已将图像颜色减少到20个宽桶。显然,某些信息丢失了。但是,这种损失的直觉是可以接受的,就是当人眼注视着一片绿色的草地时,我们不太可能记录所有1600万种RGB颜色。

YouTube视频

https://www.youtube.com/watch?v=yR7k19YBqiw 我已嵌入此视频中的关键图片,以供您理解。 注意!,我不是该视频的作者。

原始图片

enter image description here

使用K均值进行细分

enter image description here

答案 4 :(得分:0)

只有一个属性,您不需要做k均值。首先,我想知道您的属性是数字属性还是分类属性。

如果是数字,则设置两个阈值会更容易。如果是绝对的,事情会变得容易得多。只需指定哪些类别属于差,中或好。然后简单的数据帧操作就可以了。

如果您仍然感到困惑,请随时向我发送评论。

罗文

相关问题