【发布时间】:2013-01-02 19:02:48
【问题描述】:
我最近开始研究聚类和 k-means 算法,并试图提出一个好的用例并解决它。
我有以下关于在不同城市销售的商品的数据。
物品城市
Item1 纽约
Item2 夏洛特
Item1 旧金山
...
我想根据变量 city 和 item 对数据进行聚类,以查找可能对所售商品具有相似模式的城市组。问题是我使用的 k-means 不接受非数字输入。知道我应该如何继续这样做以找到有意义的解决方案。
谢谢 SV
【问题讨论】:
我最近开始研究聚类和 k-means 算法,并试图提出一个好的用例并解决它。
我有以下关于在不同城市销售的商品的数据。
物品城市
Item1 纽约
Item2 夏洛特
Item1 旧金山
...
我想根据变量 city 和 item 对数据进行聚类,以查找可能对所售商品具有相似模式的城市组。问题是我使用的 k-means 不接受非数字输入。知道我应该如何继续这样做以找到有意义的解决方案。
谢谢 SV
【问题讨论】:
您可能仍需要以数字形式抽象地表示您的数据。这可能会有所帮助
尝试再次重新分析问题并了解是否有任何关系可以利用并以数字形式表示。 我在一个项目中工作,我必须用它们的 RGB 值来表示颜色。效果很好。
希望对你有帮助
【讨论】:
为了让 k-means 产生可用的结果,means 必须有意义。
即使你会使用二进制向量,对这些使用 k-means 恕我直言并没有多大意义。
开始使用 k-means 的最佳用例可能是颜色量化。拍照,并将每个像素的 RGB 值用作 3d 向量。然后以 k 作为所需颜色数运行 k-means。颜色中心是您的最终调色板,每个像素都将映射到最近的中心以进行颜色减少。
这与 k-means 一起工作的原因有两个:
如果您想超越,请尝试做同样的事情,例如在 HSB 空间中。如果你想让它变得非常好,你会遇到困难。因为色调值是循环的,与均值不一致。假设色调在 0-360 度之间,那么“1”和“359”的“平均”色调不是 180 度,而是 0。所以在这个数据上,k-means 结果将是次优。
参见例如https://en.wikipedia.org/wiki/Color_quantization 了解详细信息以及此处关于稀疏和二进制数据的两打 k-means 问题。
【讨论】:
聚类需要距离定义。如果根据某个距离函数,项目“更接近”,则集群只是一个集群。它们越接近,它们属于同一个集群的可能性就越大。
在您的情况下,您可以尝试根据与城市相关的各种数据(例如其地理坐标或人口统计信息)进行聚类,并查看在各种情况下聚类是否重叠!
【讨论】: