3

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

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

物品城市

第 1 项纽约
第 2 项夏洛特
第 1 项旧金山
...

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

谢谢 SV

4

3 回答 3

3

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

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

于 2013-01-20T18:20:27.220 回答
2

为了让 k-means 产生可用的结果,这些均值必须是有意义的

即使您会使用二进制向量,恕我直言,这些上的 k-means 也没有多大意义。

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

这与 k-means 一起工作的原因有两个:

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

如果你想超越,尝试做同样的事情,例如在 HSB 领域。如果你想让它变得非常好,你会遇到困难。因为色调值是循环的,与均值不一致。假设色调在 0-360 度,那么“1”和“359”的“平均”色调不是180 度,而是 0。所以在这个数据上,k-means 的结果将是次优的。

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

于 2013-01-19T09:51:12.820 回答
0

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

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

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

希望这可以帮助

于 2013-01-19T00:17:09.867 回答