怎样评价聚类结果好坏?
聚类定义回顾: 把一个文档集合根据文档的相似性把文档分成若干类,究竟分成多少类,这个要取决于文档集合里文档自身的性质。
假设我们使用k-means算法,通常会加上SSE (Sum of squared errors)平方误差和,其他算法会有不同指标。
总体思想为一个cluster聚类内的数据点聚集在一起的密度越高,圈子越小,离centroid中心点越近,那么这个聚类的总体质量相对来说就会越好。
其他的方法有Rand Value和Purity,其中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:熵: