怎样评价聚类结果好坏?

聚类定义回顾: 把一个文档集合根据文档的相似性把文档分成若干类,究竟分成多少类,这个要取决于文档集合里文档自身的性质。

 

 回答1:
 基于不同算法,会有不同指标,通常较通用的应该一定都会有Entropy 熵 和 Accuracy, (Accuracy 里可以包含了precision, recall, f-measure.)
假设我们使用k-means算法,通常会加上SSE (Sum of squared errors平方误差和,其他算法会有不同指标。
总体思想为一个cluster聚类内的数据点聚集在一起的密度越高,圈子越小,离centroid中心点越近,那么这个聚类的总体质量相对来说就会越好。
 
   回答2:     
     聚类的评估也需要预先标注,把相似的数据放到一个堆(文件)里。算法完成后再进行测试,主要测试宏观准确度,宏观召回率,宏观混杂度。
 
  回答3:
  可以参考分类的precision和recall来进行评价,使用pair-wised 的方式(??进行计算,比如任选取两个结果,看它们是否应该在一起,在一起就是T,不在一起就是F。
其他的方法有Rand ValuePurity,其中Rand Value也是基于pair-wised的。
 
 
 
具体聚类效果评估方法列举介绍:
 

评价方法一:purity

purity方法是极为简单的一种聚类评价方法,只需计算正确聚类的文档数占总文档数的比例: 

其中Ω = {ω1,ω2, . . . ,ωK}是聚类的集合ωK表示第k个聚类的集合。C = {c1, c2, . . . , cJ}是文档集合,cJ表示第J个文档。N表示文档总数。

如上图的purity = ( 3+ 4 + 5) / 17 = 0.71

其中第一类正确的有5个,第二个4个,第三个3个,总文档数17。

purity方法的优势是方便计算,值在0~1之间,完全错误的聚类方法值为0,完全正确的方法值为1。同时,purity方法的缺点也很明显它无法对退化的聚类方法给出正确的评价,设想如果聚类算法把每篇文档单独聚成一类,那么算法认为所有文档都被正确分类,那么purity值为1!而这显然不是想要的结果。

 

评价方法二:RI

实际上这是一种用排列组合原理来对聚类进行评价的手段,公式如下:

其中TP是指被聚在一类的两个文档被正确分类了,TN是只不应该被聚在一类的两个文档被正确分开了,FP只不应该放在一类的文档被错误的放在了一类,FN只不应该分开的文档被错误的分开了。对上图

TP+FP = C(2,6) + C(2,6) + C(2,5) = 15 + 15 + 10 = 40    其中C(n,m)是指在m中任选n个的组合数。

TP = C(2,5) + C(2,4) + C(2,3) + C(2,2) = 20

FP = 40 - 20 = 20

相似的方法可以计算出TN = 72 FN = 24

所以RI = ( 20 + 72) / ( 20 + 20 + 72 +24) = 0.68

 

评价方法三:F值

这是基于上述RI方法衍生出的一个方法,

RI方法有个特点就是把准确率和召回率看得同等重要,事实上有时候我们可能需要某一特性更多一点,这时候就适合F值方法

 

评价方法4:熵:

 

 
 
 
 
 
 
 
 
参考:http://blog.csdn.net/luoleicn/article/details/5350378
posted @ 2013-09-13 10:54  无脚的鸟  阅读(11183)  评论(0编辑  收藏  举报