如何在完全无监督的系统中评估聚类成功?

数据挖掘 聚类
2021-09-19 13:19:58

有问题的算法是 Kohonen 的 SOM。但这个问题也可能适用于 PCA 和其他一些问题。

当检查 umatrix(或码本?)时,有没有办法判断聚类的成功程度?

应用 GA 来优化大小、晶格结构、学习率、学习退化函数以及聚类的 epoch 计数是否是一个好主意,或者在这种情况下是否存在过度拟合的危险?

假设 SOM 数据来自明显较弱的 PRNG,并且第一次尝试显示出独特的结构。是否有一些统计属性或算法可以评估用于 GA 适应度函数的结构的存在和程度?

3个回答

首先,PCA 不是一种聚类方法。这是一种降维方案。您可以通过分析在减少维数时保留的数据集中方差百分比来评估 PCA 的性能。保留 99%、95% 或 90% 通常是理想的,具体取决于您的问题。

关于聚类,您可能希望从Silhouette Coefficient开始。这结合了对凝聚力(集群的紧密程度)和分离(每个集群与其他集群的分离程度)的评估。

  • 计算 a = i 到其簇中点的平均距离
  • 计算 b = min(i 到另一个簇中的点的平均距离)
  • 一个点的轮廓系数由下式给出: s =1 – a/b, if a < b

它通常介于 0 和 1 之间,数字越大“越好”。您可以对集群或整个区域的系数进行平均,以评估集群或数据的整个聚类过程。

更一般地,尝试使用谷歌搜索“评估聚类”或“聚类有效性”以了解可以为聚类算法评分的所有其他方式。 这里是一个非常完整的话题处理

希望这可以帮助!

很难评估无监督算法产生的结果的正确性。在许多情况下,这种评估完全是主观的,并且需要对问题的领域有一些了解。

如果我们专注于聚类算法(如上一个答案中所述,PCA 不是聚类算法),则可以应用许多聚类验证措施,例如“聚类分析”维基百科页面中“评估和评估”部分中列举的那些. 这些度量返回一个数字,您可以使用它来比较不同的聚类解决方案,在聚类紧凑度(每个聚类中的元素彼此之间的距离)和分离度(来自不同聚类的元素之间的距离)方面。当然,您可以使用这些度量来通过交叉验证来执行超参数选择(晶格大小、结构、学习率等)。

但是,必须注意,不同的集群验证度量可能会产生不同的验证结果,因此,您的最佳聚类解决方案可能会因所选度量而异。因此,即使是验证度量的选择也是主观的。再次,关于您的数据的知识对于做出此决定非常重要。

剪影分数,在之前的答案中提到过,但我没有评论的声誉。 如果您使用 python 实现集群,这里这里是有用的链接。检查第 2.3.9.4 节。

我认为剪影分数考虑了过度拟合。例如,如果我有一个包含 24 个聚类点的数据集,如果我将它们放在 23 个聚类中,则得分为 0.0263。如果我使用 K-Means 将它们放在 6 个集群中,那么我的得分为 0.2705。

所以在你的 GA 中,你可以很好地使用它作为适应度函数。