学过机器学习的小伙伴应该都很清楚:几乎所有的机器学习理论与实战教材里面都有非常详细的理论化的有监督分类学习算法的评价指标。例如:正确率、召回率、精准率、ROC曲线、AUC曲线。但是几乎没有任何教材上有明确的关于无监督聚类算法的评价指标!

那么学术界到底有没有成熟公认的关于无监督聚类算法的评价指标呢?本文就是为了解决大家的这个疑惑而写的,并且事先明确的告诉大家,关于无监督聚类算法结果好坏的评价指标不仅有,而且还挺多的。接下来我会一一详述!

1、有类标的情况

既然聚类是把一个包含若干文档的文档集合分成若干类,像上图如果聚类算法应该把文档集合分成3类,而不是2类或者5类,这就设计到一个如何评价聚类结果的问题。下面介绍几种聚类算法的评价指标,看下图:

如图,认为x代表一类文档,o代表一类文档,方框代表一类文档,完美的聚类显然是应该把各种不同的图形放入一类,事实上我们很难找到完美的聚类方法,各种方法在实际中难免有偏差,所以我们才需要对聚类算法进行评价看我们采用的方法是不是好的算法。

1.1 Purity方法

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

purity(Ω,C)=1N∑kmaxj|ωk∩cj|

purity(\Omega , C)=\frac{1}{N}\sum_k \max_j|\omega_k \cap c_j|

其中Ω={ω1,ω2,...,ωk}Ω = \{ ω_1, ω_2, . . . , ω_k\} 是聚类的集合ωkω_k表示第k个聚类的集合。C={c1,c2,...,cj}C = \{c_1, c_2, . . . , c_j\}是文档集合,cjc_j表示第j个文档。N表示文档总数。

如上图的:

purity=(3+4+5)/17=0.71

purity = ( 3+ 4 + 5) / 17 = 0.71

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

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

1.2 RI方法(Rand index兰德指数)

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

RI=TP+FPTP+FP+TN+FN

RI=\frac{TP+FP}{TP+FP+TN+FN}

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

TP+FP=C(2,6)+C(2,6)+C(2,5)=15+15+10=40

TP+FP = C(2,6) + C(2,6) + C(2,5) = 15 + 15 + 10 = 40

其中C(n,m)C(n,m)是指在m中任选n个的组合数。

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

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

FP=40−20=20

FP = 40 - 20 = 20

相似的方法可以计算出:

TN=72FN=24

TN = 72\qquad FN = 24

所以:

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

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

1.3 F值方法

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

P=TPTP+FP

P=\frac{TP}{TP+FP}

R=TPTP+FN

R=\frac{TP}{TP+FN}

Fβ=(β2+1)PRβ2P+R

F_\beta=\frac{(\beta^2+1)PR}{\beta^2P+R}

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

2、无类标的情况

对于无类标的情况,没有唯一的评价指标。对于数据 凸分布 的情况我们只能通过 类内聚合度、类间低耦合 的原则来作为指导思想,如下如:

当然,有这些还不够,对于如下图所示的数据在N维空间中的不是 凸分布 的情况下,此时我们就需要采用另外的一些评价指标。典型的无监督聚类算法也很多,例如基于局部密度的LOF算法,DBSCAN算法等,在此种情况下的聚类效果就非常的优秀。

2.1 Compactness(紧密性)(CP)

CP计算每一个类各点到聚类中心的平均距离CP越低意味着类内聚类距离越近。著名的 K-Means 聚类算法就是基于此思想提出的。

缺点:没有考虑类间效果

2.2 Separation(间隔性)(SP)

SP计算 各聚类中心两两之间平均距离,SP越高意味类间聚类距离越远

缺点:没有考虑类内效果

2.3 Davies-Bouldin Index(戴维森堡丁指数)(分类适确性指标)(DB)(DBI)

DB计算 任意两类别的类内距离平均距离(CP)之和除以两聚类中心距离求最大值。DB越小意味着类内距离越小 同时类间距离越大

缺点:因使用欧式距离 所以对于环状分布 聚类评测很差

2.4 Dunn Validity Index (邓恩指数)(DVI)

DVI计算 任意两个簇元素的最短距离(类间)除以任意簇中的最大距离(类内)。 DVI越大意味着类间距离越大 同时类内距离越小

缺点:对离散点的聚类测评很高、对环状分布测评效果差

对机器学习,人工智能感兴趣的小伙伴,请关注我的公众号:

参考文献:

  1. Yanchi Liu, Zhongmou Li, Hui Xiong, Xuedong Gao, Junjie Wu:
    Understanding of Internal Clustering Validation Measures. 911-916

  2. http://blog.csdn.net/u012102306/article/details/52423074

无监督聚类算法该如何评价相关推荐

  1. 手把手教你在多种无监督聚类算法实现Python(附代码)

    来源: 机器之心 本文约2704字,建议阅读6分钟. 本文简要介绍了多种无监督学习算法的 Python 实现,包括 K 均值聚类.层次聚类.t-SNE 聚类.DBSCAN 聚类. 无监督学习是一类用于 ...

  2. dbscan和谱聚类_R 无监督聚类算法(1)K-means和层次聚类

    首先我们要解决几个问题 聚类算法主要包括哪些算法? 主要包括:K-means.DBSCAN.Density Peaks聚类(局部密度聚类).层次聚类.谱聚类. 什么是无监督学习? • 无监督学习也是相 ...

  3. 聚类算法 距离矩阵_快速且不需要超参的无监督聚类方法

    论文: Efficient Parameter-free Clustering Using First Neighbor Relations Efficient Parameter-free Clust ...

  4. NAACL 2021 | AWS AI 提出基于对比学习的端到端无监督聚类方法

    ©PaperWeekly 原创 · 作者 | 李婧蕾 学校 | 北京邮电大学硕士生 研究方向 | 自然语言处理 Abstract 无监督聚类的目的是根据在表示空间中的距离发现数据的语义类别.然而,在学 ...

  5. 机器学习算法_无监督机器学习算法:主成分分析

    之前我们曾经讲过,无监督学习是一种不使用标记数据(无目标变量)的机器学习.因此,算法的任务是在数据本身中寻找模式.无监督机器学习算法的两种主要类型分别是使用主成分分析的降维算法和聚类算法(包括K-Me ...

  6. 机器学习-Sklearn-07(无监督学习聚类算法KMeans)

    机器学习-Sklearn-07(无监督学习聚类算法KMeans) 学习07 1 概述 1.1 无监督学习与聚类算法 聚类算法又叫做"无监督分类",其目的是将数据划分成有意义或有用的 ...

  7. 无监督聚类 -- Kmeans

    无监督聚类 – K-means Kmeans将数据划分为几个等方差的类,并且使类内方差最小(minimizing a criterion known as the inertia or within- ...

  8. 什么是无监督学习(监督学习,半监督学习,无监督聚类)?

    作者:王丰 链接:https://www.zhihu.com/question/23194489/answer/25028661 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请 ...

  9. 9种有监督与3种无监督机器学习算法

    机器学习作为目前的热点技术广泛运用于数据分析领域,其理论和方法用于解决工程应用的复杂问题.然而在机器学习领域,没有算法能完美地解决所有问题(数据集的规模与结构.性能与便利度.可解释性等不可能三角),识 ...

最新文章

  1. 不停应用重启oracle数据库,此类情况下解决Oracle数据库重启的四种方案
  2. Python中小整数对象池和大整数对象池
  3. 初识Ildasm.exe——IL反编译的实用工具(转自Youngman)
  4. shell shocked伴奏版_Shell Shocked
  5. c++利用初始化列表在类内部和类外部定义构造函数的区别
  6. Android SystemClock 应用
  7. 类查找android中跨项目的数据库操作ContentProvider的使用
  8. Microsoft+R:Microsoft R Open (MRO)安装和多核运作
  9. 如何用python画矿物分布地图_python怎么画出分布图?
  10. 地理坐标系转换工具,支持WGS84/GCJ02/BD09等常用坐标系互转
  11. 如何零基础转行成为一个自信的前端达人
  12. 魅族手机TOF摄像头搭载奥比中光解决方案,看看到底有哪些功能?
  13. 英语--副词描述变化量大小
  14. Html5新特性之meter
  15. CentOS7 win7 双系统安装
  16. 艺宁书局-专业经营原版国外电子书
  17. GIS大讨论(十一):当前地理信息产业发展动向与趋势
  18. 经典排序算法之快速排序(二分法排序)
  19. 浙江计算机机房监控,大华机房动环监控解决方案
  20. 选择广州Java培训 铸就不悔人生

热门文章

  1. Swift 编译器中间码 SIL
  2. 第19组 Beta(1/3)
  3. C++ 捕获本机网卡的IP包并对其解析的实现
  4. 文件已上传服务器去哪找,ftp文件服务器上传后的文件在哪
  5. 例1.1-2 Strongbox
  6. shell--基础正则表达式之grep
  7. 【图】女孩暴雨中为残疾乞丐撑伞引热议
  8. 2008年10大知名杀毒软件排行榜
  9. 美赛数学建模 | 信息检索与竞赛工具 降低信息差
  10. elasticsearch win10 安装