在非数字维度上进行聚类

时间:2013-01-18 23:59:56

标签: cluster-analysis k-means

我最近开始研究聚类和k-means算法,并试图提出一个好的用例并解决它。

我有以下有关在不同城市销售的商品的数据。

项目城市

Item1纽约
Item2 Charlotte
项目1旧金山
...

我想基于变量city和item对数据进行聚类,以查找可能具有相似模式的城市组。销售的项目问题是我使用的k-means不接受非数字输入。任何想法我应该如何继续这个以找到有意义的解决方案。

由于 SV

3 个答案:

答案 0 :(得分:3)

群集需要距离定义。如果项目根据某个距离函数“更接近”,则群集仅是群集。它们越近,它们就越有可能属于同一个集群。

在您的情况下,您可以尝试根据与城市相关的各种数据进行聚类,例如地理坐标或人口统计信息,并查看群集在各种情况下是否重叠!

答案 1 :(得分:2)

为了让k-means产生可用的结果,意味着必须有意义

即使你愿意,使用二进制向量,k-means对这些没有多大意义恕我直言。

开始使用k-means的最佳用例可能是颜色量化。拍摄照片,并使用每个像素的RGB值作为3d矢量。然后运行k-means,其中k为所需的颜色数。色彩中心是您的最终调色板,每个像素都将映射到最近的色彩还原中心。

这与k-means合作的原因有两个:

  • 平均值实际上有助于找到多个像素的平均颜色
  • 轴R,G和B具有相似的含义和比例,因此没有偏差

如果您想超越,请尽量做同样的事情,例如在HSB空间。如果你想要它真的很好,你会遇到困难。因为色调值是循环的,这与平均值不一致。假设色调在0-360度,那么“1”和“359”的“均值”色调 180度,但是0.所以在这个数据上,k均值结果将是次优的。

参见例如https://en.wikipedia.org/wiki/Color_quantization了解详细信息,以及关于稀疏和二进制数据的二十几个k-means问题。

答案 2 :(得分:0)

您可能仍需要以数字形式抽象地表示您的数据。这可能是帮助

http://www.analyticbridge.com/forum/topics/clustering-with-non-numeric?commentId=2004291%3AComment%3A40805

尝试再次重新分析问题,并了解是否存在任何可以利用并以数字形式表示的关系。 我参与了一个项目,我必须通过RGB值来表示颜色。它工作得很好。

希望这有帮助