【阅读记录】聚类(《机器学习》第9章)
前言:
{
之前《机器学习》[1]第8章还有几个习题没搞明白(8.1和8.2我甚至连题目的意思都还没看懂,可见我的水平是有多捉急),这次就先进行第9章的内容,毕竟时间宝贵(也许有一天突然开窍了也说不定)。
}
正文:
{
聚类指标和距离度量:
{
聚类是一种无监督学习。度量聚类效果的指标有两类:外部指标和内部指标。
外部指标的使用需要配合一个参考模型(或者说标签,不过这样还算是无监督学习吗?)。书上介绍了三种外部指标:Jaccard系数,FM指数和Rand指数。
内部指标的使用无需参考模型(无需标签)。书上给出了两种内部指标:DB指数和Dunn指数。
具体的指标公式我就跳过了,需要时我就去查资料,在这只记录名字。
部分指标的计算涉及距离度量。像物理距离一样,距离度量需要满足4个距离性质:非负性(距离不能为负),同一性(自己到自己的距离是0),对称性(a到b的距离=b到a的距离=a和b之间的距离),和直递性(a到c的距离<=a到b的距离+b到c的距离)。
最常用的距离度量是闵可夫斯基距离,见式(9.18)。
闵可夫斯基距离包括了欧式距离(p=2)和曼哈顿距离(p=1)。
闵可夫斯基距离的缺点就是样本的属性必须是有序属性。有序属性是能够比较距离的属性,例如升高体重等数值属性。与它相对应的是无序属性,例如名称等标签属性。
书中给出了无序属性的距离度量:VDM,见式(9.21)。
式(9.21)中代表属性u取a值的样本在样本簇i中的数量,代表属性u取a值的样本的总数。值得注意的是,VDM描述的是一种离散属性值之间的距离,它的参数是具体的属性值而不是样本。另外,有方法把标签特征转换为数值特征[2]中正文的第一部分。
结合闵可夫斯基距离和VDM,一种复合距离被形成了,见式(9.22)。
式(9.22)中样本的有序属性被排到第一到第个,后面的则是无序属性。
另外,还可以为每种属性设置权值。
有些度量被称为非度量距离,其在某种程度上代表样本的相似性,但不属于距离度量,例如孪生网络[3]的输出。
聚类过程:
{
之后作者介绍了三种聚类方式:原型聚类,密度聚类和层次聚类。
原型聚类:
{
原型聚类假设聚类结构能通过一组原型来表示,这种聚类包括k均值算法,学习向量量化和高斯混合聚类。
k均值算法算是大名鼎鼎(至少在我心目中),其目的是求使式(9.24)最小的参数。
式(9.24)中x,是第i个类簇的样本均值向量(或者说是此簇的平均样本?),是第i个类簇的样本集。不过这里默认用了样本到均值向量的欧式距离,这个度量也许可以换成其他的度量。
k均值算法的求解不容易,书中给出了一种方法:1,首先设置q个聚类簇;2,随机选出q个样本加入q个类簇以分别作为其均值样本;3,将剩下的样本分别放入最接近的均值样本的类簇;4,通过平均分别计算出所述q个类簇的新均值样本;5,使用所述新均值样本以从2开始循环,直到新均值样本与上一次的均值样本相同。
学习向量量化是原型聚类的另一种方法。书中说这种方法需要样本具有标签,但是我一直在想如果已经有标签了那还需要聚类吗?直到我搜到了[4],上面说标签刚开始是随机分配的。
书上给出的学习向量量化的方法如下:1,首先设置聚类簇数q,并且为所有样本随机分配q种标签;2,随机选择每种标签的一个样本,组成q个原型样本;3,对每个其他样本,若离其最近的原型样本和其同标签,则更新为,否则更新为;4,使用更新后的所有原型样本执行3,直到达到停止条件(比如最大迭代数或原型样本基本不再变动)。
另外,上述学习向量量化步骤形成的簇划分又叫Voronoi剖分。
高斯混合聚类和上面两种方法不同,它采用更复杂的概率模型。
高斯混合聚类假设每一个类簇的所有样本都是一个高斯分布的采样,而整个样本集则是多个所述高斯分布组成的高斯混合分布的采样,之后通过贝叶斯方法把样本分到最可能的簇中。式(9.29)是高斯混合分布,其参数,由极大似然估计确定,k为高斯分布数(或类簇数),p为高斯分布的概率密度函数。式(9.30)是后验分布函数。
此方法大致包括:1,首先设置类簇数或高斯分布数k;2,根据贝叶斯方法把样本分到后验概率最大的簇中;3,通过极大似然估计更新当前状态的参数;4循环2到3(书上称之为EM)直到满足停止条件(比如到达一定的迭代次数,或参数基本不能更新)。
下面是参数更新的一些公式:
另外,书中高斯混合聚类涉及的公式还有一些,之后有需要时再来查公式。
}
密度聚类:
{
作者在这里引入了一些很像图论知识的概念:-邻域,核心对象,密度直达,密度可达和密度相连。
假设将所有样本作为节点以构建完全图G,将其之间的某种距离度量作为G中边的权值,则:
1,节点n的-邻域为与其连接权值不大于的节点的集合(包括n自己);
2,核心对象为-邻域至少包括一定数量的节点的节点;
3,节点n2由节点n1密度直达代表n2在n1的-邻域中;
4,节点n2由节点n1密度可达代表存在从n1到n2的节点序列,节点序列中从第二个节点开始均由前一节点密度可达;
5,节点n1和节点n2密度相连代表存在一个节点,n1和n2均由此节点可达。
当然原文没有建图,只是我联想到了之前学的图知识,把样本换成了节点。
之后书中介绍了DBSCAN算法。其大概过程包括:1,找出所有样本中的核心对象;2,随机选择一个核心对象,并且从样本集里选出由此核心对象密度可达的所有样本(包括核心对象本身)以构建一个簇;3,从样本集和其他核心对象中剔除所构簇的所有样本;4,循环2到3直到剔除了所有的核心对象或所有样本。
}
层次聚类:
{
书中给出了一种层次聚类的方法:AGNES。我之见过这种方法,但是对这个名字却很陌生。AGNES的大概过程包括:1,设定簇数q;2,使得每个样本自成一簇;3,计算簇间距离,并且合并最接近的两个簇;4,循环3直到剩余簇的数量为q。
上述簇间距离有三种,分别为最小距离,最大距离和平均距离。设类簇为C,则两个类簇的三种距离如式(9.41),式(9.42)和式(9.43)。
上式中dist为某种上面提到的距离度量。
}
部分习题:
{
9.1,对于样本,由,和可知闵可夫斯基距离满足非负性,同一性和对称性。
当p=1时此距离显然满足直递性。其他情况的直递性证明涉及闵可夫斯基不等式[5][6]。设,,分别为样本1,样本2,样本3的第k个特征值,=,=,则当p>1时,有:,因此满足直递性;并且当p<1时,上式的≤变为≥,因此不满足直递性。
由于当p无限大时,,所以此时闵可夫斯基距离等于对应分量的最大绝对距离。
9.2,显然豪斯多夫距离满足非负性和对称性。
同一性:如果X与Z完全相等,则显然对应的豪斯多夫距离为0;如果X与Z不完全相等,则至少有一个空间点p只属于一个集合,设此集合为X,则式(9.45)中的x为p时对应的豪斯多夫距离不为0。
(直递性部分暂缺)
9.3,不能,因为这种方法进行聚类只基于上次迭代聚类的结果,而没有考虑到全局所有信息。
9.5,连接性:X中的样本都由x密度可达,因此它们都与彼此密度相连。
最大性:若,由密度可达,又因为由x密度可达,因此由x密度可达,因此。
9.6,如果两个簇在样本空间中呈现相对的长条形,则两种度量的结果差别巨大,最小距离度量的结果明显小于另一种的结果;但是如果两个长条形簇平行,则两种度量的结果相近。另外,与最小距离度量不同的是,当使用最大距离度量时,即使两个簇相接触或重叠,这两个簇也不一定合并。
9.7,高斯混合聚类为非凸聚类,其他聚类为凸聚类。最明显的特点是:其他聚类都是在空间上进行迭代探索;而高斯混合聚类则依靠概率,因此得到的簇在空间上比较松散。(感觉这个回答有待改进)
9.8,这里的度量和第2章中的评估方式很像。设样本数为m,可以重新定义第2张模型评估中的参数:令TP=式(9.1),FP=式(9.2),FN=式(9.3),TN=式(9.4),样例总数=m(m-1)/2,则第二章的各种性能度量也被泛化到了这里。(效果通过编程实验证明,这里略过)
}
}
结语:
{
习题部分我都先试着自己想,想不出来就参考[5],一时想不出来[5]中又没有的地方就暂缺。
习题部分只是自己练习的答案,没有放出题目内容。
[8]是不错的参考资料,感谢大佬们的贡献。
参考资料:
{
[1] 周志华.《机器学习》.清华大学出版社
[2] https://blog.csdn.net/fish_like_apple/article/details/88825872
[3] https://blog.csdn.net/fish_like_apple/article/details/84769744
[4] https://blog.csdn.net/changyuanchn/article/details/80427922
[5] https://en.wikipedia.org/wiki/Minkowski_inequality
[6] https://baike.baidu.com/item/%E9%97%B5%E5%8F%AF%E5%A4%AB%E6%96%AF%E5%9F%BA%E4%B8%8D%E7%AD%89%E5%BC%8F/5519914?fr=aladdin
[7] https://blog.csdn.net/icefire_tyh/article/details/52224676
[8] https://github.com/scutan90/DeepLearning-500-questions/blob/master/ch02_%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E5%9F%BA%E7%A1%80/%E7%AC%AC%E4%BA%8C%E7%AB%A0_%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E5%9F%BA%E7%A1%80.md
}
}
【阅读记录】聚类(《机器学习》第9章)相关推荐
- 认识机器学习 机器学习实战第一章
学习目标 机器学习实战第一章 学习内容 1. 什么是机器学习? 答:简单地说,机器学习就是把无序的数据转换成有用的信息. 2. 数据来源? 从互联网上可以获取大量的人为数据,比如某用户的购物记录,刷过 ...
- 机器学习-第六章 支持向量机(SVM)
机器学习-第六章 支持向量机(SVM) D系鼎溜关注 2020.02.09 21:19:41字数 1,131阅读 458 6.1 间隔与支持向量 开倍速观看视频之后,对课本所说的会更加了解. 支持向量 ...
- 西瓜书学习记录-神经网络(第五章)
西瓜书学习记录-神经网络(第五章) 第五章啦,大佬的视频没讲第五章,所以看书自学一下: 书籍来自周志华的<机器学习>.
- 【读书】2020年阅读记录及心得
[读书]2020年阅读记录及心得 主要记录个人今年的阅读情况,以及部分带有强烈主观思想的读书笔记输出(按大致的时间顺序). 阅读工具:微信读书(真的很方便).Kindle(有些书微信阅读上没资源,补充 ...
- Life Long Learning论文阅读记录之LwF
Life Long Learning论文阅读记录之LwF 写在前面 获取原文 问题 难点 目标 符号说明 现有方法 不使用旧数据集的方法 Learning without Forgetting(LwF ...
- 文献阅读记录1-YOLOv3:An Incremental Improvement
我只是翻译或转载文献,截屏论文图片,记录下阅读记录.如有侵权,请联系删帖. 原标题: YOLOv3: An Incremental Improvement 原作者: Joseph Redmon, Al ...
- 【数据聚类】第三章第二节2:K-Means算法及其Python实现(算法实现、结果展示)
pdf下载(密码:7281) 本文上接:[数据聚类]第三章第二节1:K-Means算法及其Python实现(距离度量方式.目标函数和算法流程) 本文下接:[数据聚类]第三章第二节3:K-Means算法 ...
- 西瓜书学习记录-决策树(第四章)
西瓜书学习记录-决策树(第四章) 第四章啦 知乎黄耀鹏-决策树算法的Python实现: https://zhuanlan.zhihu.com/p/20794583 一般分布例子如下:(见下具体例题) ...
- 西瓜书学习记录-线性模型(第三章)
西瓜书学习记录-线性模型(第三章) 第三章啦 反函数(上图) 梯度下降法: 补充:: 看的大佬的教学视频,标明一下出处: https://www.bilibili.com/video/BV17J411 ...
- 原版英文书籍《Linux命令行》阅读记录5 | 使用命令
背景: 阅读英文原作只为了更好地理解书中的精髓,当然也是为了更好地掌握书中的技巧.我们会坚持阅读全书,并记录书中的精髓. 在前面的章节里,我们学到的都是一些神秘的命令,我们不知道他们怎么来的,不过接下 ...
最新文章
- 如何在VMware虚拟机上安装Linux操作系统(Ubuntu)
- 谁是最强的女汉子_JAVA
- mysql英文版怎么调中文_MYSQL 5.6安装设置中英文翻译
- mysql定时器每月执行一次_MySQL定时器可以设置执行次数吗
- yii2 ajax访问控制器,如何在yii2中运行控制器动作作为ajax
- 【文章】工作之余,放松心情
- 2020中国零售品牌数字化转型白皮书
- spring总结(01)
- java net time_建了服可是老是提示java.net.SocketTimeoutException: Read time
- 010 、JVM实战总结: 动手实验:亲自感受一下线上系统部署时如何设置JVM内存大小
- linux查看网卡型号
- Visio 2013打开自动关闭,闪退的解决办法
- OpenGL 视椎体剔除算法
- 三大云厂商 ARM 架构服务器性能对比
- devops运维平台汇总
- 怎么做照片拼图?这些方法值得收藏
- 如何在小程序内实现界面快速置顶功能?
- 2.2 线性微分方程与常数变易法
- ettercap局域网劫持
- 国内首例!违反 GPL 协议致侵权,被判赔偿 50 万元
热门文章
- 系统管理:Unix 文本编辑
- vue集成超图supermap-cesium实践
- c语言程序设计中国铁道出版社孙辉答案,C语言程序设计实验指导与习题集
- 如何在线完成视频转gif制作?分享一招视频秒转gif
- 【小程序】犀牛鸟云开发训练day8笔记
- p40怎么装鸿蒙,P40没使用鸿蒙,但鸿蒙适配的“华为汽车”要来了,今年能落地 - 区块网...
- Box2D C++ 教程-碰撞剖析
- Xposed 使用教程
- Tensorflow2学习笔记:简单灰度图分类
- Sandboxie 5.12