py中轮廓系数计算

https://scikit-learn.org/stable/modules/generated/sklearn.metrics.silhouette_score.html

1.参数

主要是上面这两个参数,比如说X可以是经过tsne降维的n_feature=2的二维矩阵,第一维表示样本数量,labels为真实的label,这样的话可以得出轮廓系数的结果。

labels:是array类型的,需要是int型的label,通过LabelEncoder编码一下即可。

2.计算方法

https://blog.csdn.net/wangxiaopeng0329/article/details/53542606

轮廓系数(Silhouette Coefficient),是聚类效果好坏的一种评价方式。它结合内聚度和分离度两种因素。

  方法:

                  1,计算样本i到同簇其他样本的平均距离ai。ai 越小,说明样本i越应该被聚类到该簇。将ai 称为样本i的簇内不相似度

                            簇C中所有样本的a i 均值称为簇C的簇不相似度。

                  2,计算样本i到其他某簇Cj 的所有样本的平均距离bij,称为样本i与簇Cj 的不相似度。定义为样本i的簇间不相似度:bi =min{bi1, bi2, ..., bik}

                            bi越大,说明样本i越不属于其他簇。

                   3,根据样本i的簇内不相似度a i 和簇间不相似度b i ,定义样本i的轮廓系数

                            si接近1,则说明样本i聚类合理;

                            si接近-1,则说明样本i更应该分类到另外的簇;

                            若si 近似为0,则说明样本i在两个簇的边界上。

 

posted @ 2020-10-23 12:02  lypbendlf  阅读(825)  评论(0编辑  收藏  举报