聚类算法评估――轮廓系数及python实现

匿名 (未验证) 提交于 2019-12-02 22:51:30

含义

可见轮廓系数的值是介于 [-1,1] ,越趋近于1代表内聚度和分离度都相对较优。

计算步骤

1)对于簇中的每个向量,分别计算它们的轮廓系数。

簇内不相似度a(i) :i向量到同簇内其他点不相似程度平均值,体现凝聚度

簇间不相似度b(i) :i向量到其他簇平均不相似程度最小值,体现分离度

2)所有点的轮廓系数求平均,就是该聚类结果总的轮廓系数。


python实现

 # -*- coding: utf-8 -*- import pandas as pd import numpy as np from sklearn.cluster import KMeans from sklearn import metrics  #假如我要构造一个聚类数为10的聚类器 estimator = KMeans(n_clusters=10, random_state=777)#构造聚类器,设定随机种子 estimator.fit(kmeans_data_tf)#聚类  r1 = pd.Series(estimator.labels_).value_counts()  #统计各个类别的数目 r2 = pd.DataFrame(estimator.cluster_centers_)     #找出聚类中心 r = pd.concat([r2, r1], axis = 1) #横向连接(0是纵向),得到聚类中心对应的类别下的数目 r.columns = list(kmeans_data_tf.columns) + [u'类别数目'] #重命名表头 print(r) print("轮廓系数:", metrics.silhouette_score(kmeans_data_tf, estimator.labels_, metric='euclidean'))

文章来源: https://blog.csdn.net/qq_14997473/article/details/96840513
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!