使用 K-means 对商业信息进行聚类以进行视觉映射

Clustering commercial information using K-means for visual mapping

我正在尝试对向最终用户显示的小型数据集执行聚类:

[
  [1.76, 81, 5, 0],
  [2.99, 72, 5, 0],
  [11.17, 420, 4.8, 0],
  [1.76, 53, 5, 0],
  [16.73, 3403, 5, 0],
  ... // 20 entries per user
]

列分别为 1) 零售价、2) 已完成订单、3) 评级和 4) 运费。
我想将这些数据聚类成几组以便在 JS 前端可视化它。

我将 ecStat 用于 echarts,它确实有效,但结果不断变化。

[1, 1, 1, 1, 2, 3, 1, 1, 3, 1, 1, 4, 0, 3, 3, 1, 1, 1, 1, 1]
[3, 3, 3, 3, 4, 2, 3, 3, 2, 3, 3, 1, 0, 2, 2, 3, 3, 3, 3, 3]
[3, 3, 3, 3, 4, 2, 3, 3, 2, 3, 3, 1, 0, 2, 2, 3, 3, 3, 3, 3]
[2, 2, 2, 2, 0, 3, 2, 2, 3, 2, 2, 4, 1, 3, 3, 2, 2, 2, 2, 2]

因此我无法正确地可视化它,因为我使用的是 size/color 基于集群的可视化映射。
像这里一样,我们有 3 个最便宜的绿色和最大半径的项目,5 个中等价格和黄色的项目,8 个红色和最小尺寸的项目,等等。

是否有可能在 'set' 个集群中获得 'stable' 个结果? 使用 k-means 和此类工具对具有最低价格、最高评级、订单数量等的项目进行聚类甚至是一个可行的想法

通常应该如何处理此类任务?非常感谢任何建议!

默认情况下,K-means 从随机初始化开始。

如果您不想这样,您可以,例如,

  1. 改用稳定的算法
  2. 选择之前的中心作为起点

不稳定的(置换除外)结果通常表示聚类不够理想。 K-means 对尺度也很敏感。因此,仅在您拥有的数据上使用它可能没有意义。您需要了解它的作用,以及您需要如何准备数据以获得有用的结果。