聚类:假设不成立时的 k-means 替代方案

机器算法验证 聚类 k-均值
2022-04-04 03:27:12

本质上,本教程(http://scikit-learn.org/stable/auto_examples/cluster/plot_kmeans_assumptions.html#example-cluster-plot-kmeans-assumptions-py)非常清楚地解释了 k-means 聚类方法的一些限制,这些限制是植根于它的假设。

具体来说:1)k-means假设每个属性(变量)分布的方差是球形的;2)所有变量具有相同的方差;3)所有k个聚类的先验概率是相同的,即每个聚类有大致相等的观测数;

现在,多亏了剪影方法,我可以处理带有错误数量的斑点的情况,但我不知道如何处理其他情况。您能否指出一些解决其他问题的方法,如果可能,如何将它们混合在一起,因为在我的数据集中这些行为并存?

1个回答

如何理解 K-means 的缺点的答案中,我们已经详细讨论了 k-means 的缺点。

其中一些对于玩具示例似乎很容易应对(例如,通过取消对扭曲数据集的缩放),但实际数据会复杂得多,不幸的是,全局标准化可能还不够。

与其热修复这些问题,不如验证 k-means目标是否解决了您的问题

这不仅仅是将点聚类到分区中。您想要解决一个潜在的问题。通过聚类,它通常是关于“洞察”您的数据。一个简单的方法是仔细研究结果并丢弃任何可疑的结果。这不能自动化(您可以自动生成不同的结果以避免冗余,请参阅“替代聚类”)。

k-means 最好被视为一种矢量量化方法,而不是聚类。它不会尝试识别数据中的结构,而是假设结构(k 个中心),然后优化模型参数。在优化过程中,它假设所有变量都相等,并且每个实例的成本都以平方和来衡量

cost(xi)=mincenter cdim d(xi,dμc,d)2
只要数据没有假设的结构,或者这个成本函数不合适,它就会失败。

因此,每当考虑 k-means 时,首先需要检查最小化上述方程是否能解决您的问题如果您不想回答“根据上述方程,哪些中心的成本最小”的问题,那么 k-means 是错误的算法!

这是一个正面的例子,其中 k-means 是一个不错的选择:

我们有一个 24 位深度 (8bpp) 的 RGB 图像,我们想要压缩该图像以便在 interwebz 上快速加载。我们希望仅使用 4 位索引到 16 色调色板,而不是每像素存储 24 位。游程编码将进一步帮助压缩数据。所以我们必须用一个调色板条目来近似每个像素。较大的偏差不好,因此使用平方会有所帮助,并且像素的颜色近似误差可以计算为这与 k-means 的成本函数完全匹配——因此我们可以使用该算法来优化我们的调色板。ΔR2+ΔG2+ΔB2