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

来源:互联网 发布:整合网络推广方案ppt 编辑:程序博客网 时间:2024/06/05 11:14

说明

簇的轮廓信息对验证聚类效果非常有用,之前我们已经对聚类效果的评估指标进行了说明,聚类效果的好坏同时取决于簇内对象的相似性与簇间对象的相异性。轮廓系数能够同时对簇内距离与和簇间距离进行考量,其取值范围为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)

k均值聚类轮廓系数图
k均值聚类轮廓系数图

原理

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

原创粉丝点击