当不知道ground truth labels时,需要内部度量来评估聚类算法的性能。sklearn.metrics库中有3个内部度量,学习笔记如下:
1、轮廓系数(Silhouette Coefficient)
取值范围为(-1,1),系数越大,聚类效果越好;
metrics.silhouette_score(X, labels, metric=‘euclidean’);
基于某个样本点与同一簇中其他样本点之间的平均距离和次邻近簇中所有样本点之间的距离的平均值;
当数据形状为凸时,系数值往往较大;
对密度聚类不友好;
对谱聚类也不友好;
2、方差比指标(Calinski-Harabasz Index)
值越大,聚类效果越好;
metrics.calinski_harabasz_score(X, labels)
基于簇间离散度的和与簇内离散度和的比,其中离散度由距离的平方和定义;
当数据形状为凸时,系数值往往较大;
对密度聚类不友好;
对谱聚类也不友好;
3、DBI(Davies-Bouldin Index)
值越小,聚类效果越好;
sklearn.metrics.davies_bouldin_score(X, labels)
基于每个点与簇均值的平均距离,簇均值间的距离;
优点:计算比轮廓系数简单;
缺点:当数据形状为凸时,系数值往往较大;
对密度聚类不友好;
对谱聚类也不友好;
距离测度被限制在欧几里得空间。
啊哈,三种方法都对密度聚类,谱聚类不友好呢,看来是要判断数据到底是什么形状的。
参考
聚类性能评估——内部度量
最新推荐文章于 2024-06-27 17:45:24 发布