在做海量数据聚类分析(MiniBatch Kmeans)的时候,常常因为数据量太大画不出dendrogram,没办法用Elbow Method确定K值。这时需要其他metrics辅助确定K值。在做聚类之前,一定要先做去重啊!
概括地说,评估聚类的方法主要有两种:
- 内部评估方法:不需要借助其他监督数据,通过一个单一的量化得分评估算法好坏
- 外部评估方法:需要知道数据的类别,通过将聚类结果与ground truth进行对比,评估算法好坏
实际生产环境中,很少有标注数据帮助我们进行聚类,因为很难人为地确定到底有多少个簇,簇之间的区别不是很明显,特别是对于文本数据。
内部评估方法有:
- Silhouette Coefficient
- Calinski-Harbasz Score
- Davies-Boulding
详细地使用方法可以参考sklearn文档:2.3. Clustering — scikit-learn 1.0.2 documentation
为了后续复习方便,这里简单介绍一下Silhouette Coefficient。Silhouette Coefficient对于一个样本点需要计算两种距离: a-当前样本点与同类的其他样本点的平均距离,b-当前样本点与最接近的另一个类的其他样本点的平均距离。当前样本点的得分是s,计算方式如下: