1.原理
在聚类过程中类的个数如何来确定才合适呢?这是一个十分困难的问题,人们至今仍未找到令人满意的方法。但是这个问题又是不可回避的。下面我们介绍两种比较常用的方法。
(1)阈值法
阈值法是最简单且有效的方法,其要点就是通过观测聚类图,给出一个合适的阈值T,要求类与类之间的距离不要超过T值。比如,在图4-7所示的层次聚类图中,如果取阈值T=6,则聚为2类,如果取阈值T=3,则聚为4类。在实际的聚类中,我们一方面希望类之间有明显的区分,同时希望类别的数量越大越好。因此对于此图显示的聚类分析,该问题聚成4类是比较合适的。
图4-7 层次聚类图
(2)轮廓图法
轮廓图法是一种相对更智能确定聚类类别的方法。轮廓图可由MATLAB中的silhouette函数来绘制。该函数可以用来根据cluster.clusterdata.kmeans的聚类结果绘制轮廓图,从图上可以看每个点的分类是否合理。轮廓图上第i点的轮廓值定义为
其中,a是第i个点与同类其他点的平均距离;b是向量,其元素表示第i个点与不同类的类内各点的平均距离。
S(i)的取值范围是[-1,1],此值越大,说明该点的分类越合理。当S(i)<0时,说明该点分类不合理。(www.xing528.com)
在MATLAB中,silhouette函数有以下几种用法:
s=silhouette(X,clust) %此命令只返回轮廓值,不画轮廓图;
[s,h]=silhouette(X,clust);
[…]=silhouette(X,clust,metric);
[…]=silhouette(X,clust,distfun,pl,p2,…)。
【实例】利用K-means方法和轮廓图法确定最佳的聚类类别数,结果如图4-8所示,此图中分别显示当类别为2、3、4时的轮廓图。图4-9得到各类别数对应的平均轮廓值,根据聚类的原则,由此图可知,类别数取4比较合适。
图4-8 类别为2、3、4时的轮廓图
图4-9 不同类别对应的平均轮廓值
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。