【周志华机器学习】九、聚类
文章目录
- 参考资料
- 1. 基本概念
- 1.1 距离度量
- 1.2 性能度量
- 1.2.1 外部指标
- 1.2.2 内部指标
- 2. 原型聚类
- 2.1 K-Means
- 1. k值的选择
- 2. K-Means优缺点及改进
- 2.2 学习向量量化(LVQ)
- 2.3 高斯混合聚类(GMM)
- GMM与K-Means相比
- 3. 密度聚类
- 4. 层次聚类
- 5. 后记
- 5.1 KNN与K-means区别?
- 5.2 聚类算法如何评估
参考资料
- Machine-learning-learning-notes
- LeeML-Notes
- ML-NLP
本博客是根据周志华的西瓜书和参考资料1、2、3所做的笔记,主要用于学习,非技术类博客,因此存在大量复制粘贴,请见谅。
如果本篇博客有后记部分,则该部分表示的是在书本原有的基础知识上,进行的知识点的扩充。
代码演示见于github仓库
1. 基本概念
聚类是一种经典的无监督学习方法,无监督学习的目标是通过对无标记训练样本的学习,发掘和揭示数据集本身潜在的结构与规律,即不依赖于训练数据集的类标记信息。聚类则是试图将数据集的样本划分为若干个互不相交的类簇,从而每个簇对应一个潜在的类别。
聚类直观上来说是将相似的样本聚在一起,从而形成一个类簇(cluster)。
那首先的问题是如何来度量相似性(similarity measure)呢?这便是距离度量,在生活中我们说差别小则相似,对应到多维样本,每个样本可以对应于高维空间中的一个数据点,若它们的距离相近,我们便可以称它们相似。
那接着如何来评价聚类结果的好坏呢?这便是性能度量,性能度量为评价聚类结果的好坏提供了一系列有效性指标。
1.1 距离度量
谈及距离度量,最熟悉的莫过于欧式距离了:即对应属性之间相减的平方和再开根号。度量距离还有其它的很多经典方法,通常它们需要满足一些基本性质:
最常用的距离度量方法是“闵可夫斯基距离”(Minkowski distance):
当p=1时,闵可夫斯基距离即曼哈顿距离(Manhattan distance):
当p=2时,闵可夫斯基距离即欧氏距离(Euclidean distance):
我们知道属性分为两种:连续属性和离散属性(有限个取值)。对于连续值的属性,一般都可以被学习器所用,有时会根据具体的情形作相应的预处理,例如:归一化等;而对于离散值的属性,需要作下面进一步的处理:
- 若属性值之间存在序关系,则可以将其转化为连续值,例如:身高属性“高”“中等”“矮”,可转化为{1, 0.5, 0}。
- 若属性值之间不存在序关系,则通常将其转化为向量的形式,例如:性别属性“男”“女”,可转化为{(1,0),(0,1)}。
在进行距离度量时,易知连续属性和存在序关系的离散属性都可以直接参与计算,因为它们都可以反映一种程度,我们称其为“有序属性”;
而对于不存在序关系的离散属性,我们称其为:“无序属性”,显然无序属性再使用闵可夫斯基距离就行不通了。
对于无序属性,我们一般采用VDM(Value Difference Metric)进行距离的计算,例如:对于离散属性的两个取值a和b,定义:
于是,在计算两个样本之间的距离时,我们可以将闵可夫斯基距离和VDM混合在一起进行计算:
若我们定义的距离计算方法是用来度量相似性,例如下面将要讨论的聚类问题,即距离越小,相似性越大,反之距离越大,相似性越小。这时距离的度量方法并不一定需要满足前面所说的四个基本性质,这样的方法称为:非度量距离(non-metric distance)。
1.2 性能度量
由于聚类算法不依赖于样本的真实类标,就不能像监督学习的分类那般,通过计算分对分错(即精确度或错误率)来评价学习器的好坏或作为学习过程中的优化目标。一般聚类有两类性能度量指标:外部指标和内部指标。
1.2.1 外部指标
即将聚类结果与某个参考模型的结果进行比较,以参考模型的输出作为标准,来评价聚类好坏。假设聚类给出的结果为λ,参考模型给出的结果是λ*,则我们将样本进行两两配对,定义:
其中集合SS包含了在CCC中隶属于相同簇且在C∗C^*C∗中也隶属于相同簇的样本对,集合SD包含了在CCC中隶属于相同簇但在C∗C^*C∗中隶属于不同簇的样本对,……由于每个样本对(ci,aj)(i<j)(c_i,a_j) (i<j)(ci,aj)(i<j)仅能出现在一个集合中,因此有a+b+c+d=m(m−1)/2a+b+c+d = m(m - 1)/2a+b+c+d=m(m−1)/2成立.
显然a和b代表着聚类结果好坏的正能量,b和c则表示参考结果和聚类结果相矛盾,基于这四个值可以导出以下常用的外部评价指标:
显然,上述性能度量的结果值均在[0,1][0,1][0,1]区间,值越大越好.
1.2.2 内部指标
内部指标即不依赖任何外部模型,直接对聚类的结果进行评估,聚类的目的是想将那些相似的样本尽可能聚在一起,不相似的样本尽可能分开。
对数据集D=[D1,D2,...,Dm]D= [D_1, D_2,..., D_m]D=[D1,D2,...,Dm],假定通过聚类给出的簇划分为C=[C1,C2,...,Ck]C=[C_1,C_2,...,C_k]C=[C1,C2,...,Ck],参考模型给出的簇划分为C∗=[C1∗,C2∗,...,Cs∗]C^*=[C_1^*,C^*_2,...,C_s^*]C∗=[C1∗,C2∗,...,Cs∗].相应地,令λ\lambdaλ与λ∗\lambda^*λ∗分别表示与CCC和C∗C^*C∗对应的簇标记向量,我们将样本两两配对考虑,定义:
基于上面的四个距离,可以导出下面这些常用的内部评价指标:
2. 原型聚类
原型聚类即“基于原型的聚类”(prototype-based clustering),原型表示模板的意思,就是通过参考一个模板向量或模板分布的方式来完成聚类的过程,常见的K-Means便是基于簇中心来实现聚类,混合高斯聚类则是基于簇分布来实现聚类。
2.1 K-Means
K-Means的思想十分简单,首先随机指定类中心,根据样本与类中心的远近划分类簇,接着重新计算类中心,迭代直至收敛。但是其中迭代的过程并不是主观地想象得出,事实上,若将样本的类别看作“隐变量”(latent variable),类中心看作样本的分布参数,这一过程正是通过EM算法的两步走策略而计算出,其根本的目的是为了最小化平方误差函数E:
给定样本集D=[D1,D2,...,Dm]D= [D_1, D_2,...,D_m]D=[D1,D2,...,Dm], "k均值”(k-means)算法针对聚类所得簇划分C=[C1,C2,...,Ck]C=[C_1,C_2,...,C_k]C=[C1,C2,...,Ck]最小化上述平方误差,其中μi=1∣Ci∣∑x∈Cix\mu_i=\frac{1}{|C_i|}\sum_{x\in C_i}xμi=∣Ci∣1∑x∈Cix是簇CiC_iCi的均值向量.直观来看,式(9.24)在一定程度上刻画了簇内样本围绕簇均值向量的紧密程度,E值越小则簇内样本相似度越高。
算法流程如下:
更新当前均值向量后,不断重复上述过程,直到结果不再更新,迭代停止,算法停止,得到最终的簇划分。
1. k值的选择
在运行 K-均值算法的之前,我们首先要随机初始化所有的聚类中心点,下面介绍怎样做:
- 聚类中心点的个数要小于所有训练集实例的数量。
- 随机选择
【周志华机器学习】九、聚类相关推荐
- 周志华机器学习--绪论
周志华机器学习–绪论 第一章 绪论 第二章 模型评估与选择 第三章 线性模型 第四章 决策树 第五章 支持向量机 第六章 神经网络 第七章 贝叶斯分类器 第八章 集成学习和聚类 文章目录 周志华机器学 ...
- 周志华机器学习(西瓜书)学习笔记(持续更新)
<周志华机器学习>笔记 第1章 绪论 1.1 引言 1.2 基本术语 1.3 假设空间 1.4 归纳偏好 1.5 发展历程 1.6 应用现状 第2章 模型评估与选择 2.1 经验误差与过拟 ...
- 周志华机器学习--模型评估与选择
周志华机器学习–模型评估与选择 第一章 绪论 第二章 模型评估与选择 第三章 线性模型 第四章 决策树 第五章 支持向量机 第六章 神经网络 第七章 贝叶斯分类器 第八章 集成学习和聚类 文章目录 周 ...
- 周志华机器学习-决策树
周志华机器学习-决策树 第一章 绪论 第二章 模型评估与选择 第三章 线性模型 第四章 决策树 第五章 支持向量机 第六章 神经网络 第七章 贝叶斯分类器 第八章 集成学习和聚类 文章目录 周志华机器 ...
- 周志华机器学习-支持向量机
周志华机器学习-支持向量机 第一章 绪论 第二章 模型评估与选择 第三章 线性模型 第四章 决策树 第五章 支持向量机 第六章 神经网络 第七章 贝叶斯分类器 第八章 集成学习和聚类 – 文章目录 周 ...
- 周志华-机器学习西瓜书-第三章习题3.3 编程实现对率回归
本文为周志华机器学习西瓜书第三章课后习题3.3答案,编程实现对率回归,数据集为书本第89页的数据 使用tensorflow实现过程 # coding=utf-8 import tensorflow a ...
- 周志华机器学习(6):支持向量机
周志华机器学习(6):支持向量机 6 支持向量机 6.1 间隔与支持向量 6.2 对偶问题(dual problem) 6.3 核函数 6.4 软间隔与正则化 基本是大段摘录西瓜书加上一些自己的解释补 ...
- 【读书笔记】周志华 机器学习 第二章 模型评估和选择
第二章 模型评估和选择 1 欠拟合和过拟合 偏差和方差 1.1 欠拟合和过拟合 1.2 偏差和方差 2 评估方法 性能度量 2.1 评估方法 2.1.1 留出法 2.2.2 交叉验证法 2.2.3 自 ...
- numpy实现周志华机器学习 9.4.3 高斯混合聚类(GMM算法)
本文主要参考周志华<机器学习>的9.4.3章节,对高斯混合聚类的原理做简单介绍,并使用numpy实现GMM. 要想很好得理解掌握高斯混合聚类算法,以我的学习经验来看,需要掌握两方面背景知识 ...
最新文章
- 报名 | 清华大学海外学者短期讲学:创新创业发展课程
- 小程序点击按钮 关闭小程序
- 我给媳妇解释设计模式:第一部分
- 数据分析师可不是啥好工作
- Prefix Sum Primes
- 排序算法二:归并排序(Merge sort)
- jupyter安装与迁移文件
- java生成自定义标志、大小的二维码
- ubuntu卸载vmware player
- 如何备份博客:利用博客备份工具BlogDown
- MongoDB概念集合
- ADB logcat 过滤方法
- Ubuntu因为内存问题卡死解决方案
- python调用大漠插件寻路_python怎么调用大漠?
- 2018最新廖雪峰全套Java完整版
- linux 游戏 复刻,魔法门复刻手游官网版-魔法门复刻下载v4.00.9-Linux公社
- 邮件退信RCPT TO command问号
- RocketMQ 集群踩坑记
- 视频的码率、帧率、分辨率之间的区别
- Mac 查看隐藏文件(夹)
热门文章
- 周志华机器学习--绪论