聚类结果不好怎么办_聚类性能评估-轮廓系数

聚类结果不好怎么办_聚类性能评估-轮廓系数_第1张图片

当文本类别未知时,可以选择轮廓系数作为聚类性能的评估指标。轮廓系数取值范围为[-1,1],取值越接近1则说明聚类性能越好,相反,取值越接近-1则说明聚类性能越差。

  • a:某个样本与其所在簇内其他样本的平均距离
  • b:某个样本与其他簇样本的平均距离

则针对某个样本的轮廓系数s为:

聚类总的轮廓系数SC为:SC=

详细内容参考文献

https://pdf.sciencedirectassets.com/271610/1-s2.0-S0377042700X02142/1-s2.0-0377042787901257/main.pdf?X-Amz-Security-Token=IQoJb3JpZ2luX2VjEFoaCXVzLWVhc3QtMSJIMEYCIQCr1%2B7VZniJXYilH5jVsEOsZN0MckMSt7Y6Pxlp%2F3BmhAIhAKpq%2BoPUgq74xAmPsnjW5YETFUKl4ebfVmiUlQyWfeqHKrQDCCIQAhoMMDU5MDAzNTQ2ODY1Igx1z6BueFVBJNRoExEqkQNGizrAsFOKfihjNGqSMmFbwaPovvnPE35CSgxq6w1Z3e%2BwxYhKNUkUGihxY8J%2BEtWg5E2YJOBOgrDYwZIBKJfi5jaRTxHiAec5l2gq2WYjYSqGOzXBE%2BpEG8m1SsWXPH8v8SqpMwbc5nss59n%2FtgX7RZN41%2F9t5AFJr6M5HGQyF9Q5pgfJppnd0rvFGFqWokyfw6vrqq8lN9Bt50QwwcgCNj%2FzLfvFJzwuGh%2Fot7aTWvdgEEqnfRzY5vzjWKACrLkQ%2B4eZjOznfao2jPLSpfER7PKHctC99l8nvFc6rL86X3mb0EokCtwlRN8TrKftZzgFZiR%2FWpFnP7f1oCrOoNJ27b5cb7BUWnnvM7ZPzKfSpf1f1%2B%2Fhtsc9n52NQkvtWTR6CN9VBUt515CiZRtmdlWbhOfSCf8PhSUXbXbQszA7AVfkFcRJJ7zEwbAA%2BHAdVKBduOwH2Ye0BMMHaExyroPhhUdO1GnqSaAppgBENmrF1p1YKSreAbMrvKl1U%2B7D8eXgn893K%2FOlzXE8t17hvH0%2BjTDp3LzyBTrqAV5PtHmvLUze1b3mvUlQum1MLZanvYwSlNN21ps9tV9HgzLhceShmwjWjO2CGjKwAQUoZfW3UJBNF7hGkgfI3ig3KmB7gApWJ6HF2Iwm%2Bg%2FHUpKMPXrPt5peXC4aew8pWRHT36L1uZlFH4mNcB9OwJfREHUO2IZ8ZmtN2OFI4Z5I5BnEEj3DZ6ogiko348uDd%2BJh92bRg7GTIBk83eoEoU3QSQwkM5u%2BDtvBcrqxjlxMMR1HtfOcypKj8c7bvg4eNfXCP7avoyoMt9jfTtklyK%2B6s3qG4jRM6ofNB3T408u1YkQ2YsYi3RaoFg%3D%3D&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20200221T020556Z&X-Amz-SignedHeaders=host&X-Amz-Expires=300&X-Amz-Credential=ASIAQ3PHCVTYTD7IOQPQ%2F20200221%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Signature=24e9a1302cc1a6592f957e7c862eb8a58a450825bf4115de7ac5bac8d91aeb63&hash=349ed651e3e04381583631d592aa6caa2ffb4f46fd70a16d7f113e9fd1b901d9&host=68042c943591013ac2b2430a89b270f6af2c76d8dfd086a07176afe7c76c2c61&pii=0377042787901257&tid=spdf-4244c10d-412f-463b-be42-f179342b8743&sid=d87f366747189645506890a8692d3afd53b3gxrqa&type=client​pdf.sciencedirectassets.com

这里我们用鸢尾花数据集举例baiziyu:sklearn-鸢尾花数据集

# 加载鸢尾花数据集
from sklearn import datasets
dataset = datasets.load_iris()
X = dataset.data
y = dataset.target

# 聚类,将每个实例的簇标签放入labels序列
from sklearn.cluster import KMeans
kmeans_model = KMeans(n_clusters=3, random_state=1).fit(X)
labels = kmeans_model.labels_

# 评估聚类结果的轮廓系数
from sklearn import metrics
metrics.silhouette_score(X, labels, metric='cosine')

我们看一下代码中的labels

聚类结果不好怎么办_聚类性能评估-轮廓系数_第2张图片

以上一共有150个实例的簇标签

我们看一下代码中的X,也就是每条实例向量

聚类结果不好怎么办_聚类性能评估-轮廓系数_第3张图片

得到的轮廓系数

7a050d55981e26deef3eb37effbca560.png

轮廓系数的优点

  • 轮廓系数为-1时表示聚类结果不好,为+1时表示簇内实例之间紧凑,为0时表示有簇重叠。
  • 轮廓系数越大,表示簇内实例之间紧凑,簇间距离大,这正是聚类的标准概念。

轮廓系数的缺点

  • 对于簇结构为凸的数据轮廓系数值高,而对于簇结构非凸需要使用DBSCAN进行聚类的数据,轮廓系数值低,因此,轮廓系数不应该用来评估不同聚类算法之间的优劣,比如Kmeans聚类结果与DBSCAN聚类结果之间的比较。

官网参考示例:确定簇数量

你可能感兴趣的:(聚类结果不好怎么办)