R语言从簇中抽取轮廓信息

说明

簇的轮廓信息对验证聚类效果非常有用,之前我们已经对聚类效果的评估指标进行了说明,聚类效果的好坏同时取决于簇内对象的相似性与簇间对象的相异性。轮廓系数能够同时对簇内距离与和簇间距离进行考量,其取值范围为0~1,轮廓系数的值越接近于1,说明聚类效果越好。
调用kmeans函数生成一个k均值聚类对象km:

set.seed(22)
km = kmeans(customer,4)

计算聚类对象的轮廓系数:

set.seed(22)
km = kmeans(customer,4)
kms = silhouette(km$cluster,dist(customer))
summary(kms)
Silhouette of 60 units in 4 clusters from silhouette.default(x = km$cluster, dist = dist(customer)) :
 Cluster sizes and average silhouette widths:
        8        11        16        25 
0.5464597 0.4080823 0.3794910 0.5164434 
Individual silhouette widths:
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
 0.1931  0.4030  0.4890  0.4641  0.5422  0.6333 

绘制轮廓系数图:

plot(kms)

R语言从簇中抽取轮廓信息_第1张图片
k均值聚类轮廓系数图

原理

本节展示了如何使用轮廓系数图来比较聚类算法的效果,我们可以先获取聚类对象的轮廓信息,包括聚类大小,平均轮廓值,单个对象的轮廓值。最后,调用了plot函数来绘制轮轮廓图,左边为水平线段的个数,即簇的个数。右边列为当前簇平均相似度的与邻近簇平均相似度的差值,图的底部显示了平均轮廓的宽度值。

你可能感兴趣的:(R语言聚类)