开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第9天,点击查看活动详情
相似度或距离的度量方式。
层次聚类和K均值聚类的思想和实例。
作业能独立完成
聚类
聚类是针对给定的样本,依据它们特征的相似度或距离,将其归并到若干个“类”或“簇” 的数据分析问题。一个类是给定样本集合的一个子集。直观上,相似的样本聚集在相同的类,不相似的样本分散在不同的类。这里,样本之间的相似度或距离起着重要作用。
聚类的目的是通过得到的类或簇来发现数据的特点或对数据进行处理,在数据挖掘、模式识别等领域有着广泛的应用。聚类属于无监督学习,因为只是根据样本的相似度或距离将其进行归类,而类或簇事先并不知道。
相似度、距离
聚类的核心概念是相似度(similarity) 或距离(distance),有多种相似度或距离的定义。因为相似度直接影响聚类的结果,所以其选择是聚类的根本问题。具体哪种相似度更合适取决于应用问题的特性。
闵可夫斯基距离
马哈拉诺比斯距离
方差:在统计学中,方差是用来度量单个随机变量的离散程度,而协方差则一般用来刻画两个随机变量的相似程度,其中,方差的计算公式为
其中,n表示样本量,符号 ¯x表示观测样本的均值。
在此基础上,协方差的计算公式被定义为
在公式中,符号 ¯x, ¯y分别表示两个随机变量所对应的观测样本均值。
样本x1, x2, …,xd的协方差矩阵定义为:
马哈拉诺比斯距离(Mahalanobis distance),简称马氏距离,也是另一种常用的相似度,考虑各个分量(特征)之间的相关性并与各个分量的尺度无关。
相关系数
样本之间的相似度也可以用相关系数(correlation cofficient)米表示。相关系数的绝对值越接近于1,表示样本越相似;越接近于0,表示样本越不相似。
夹角余弦
样本之间的相似度也可以用夹角余弦(cosine)米表示。夹角余弦的越接近于1,表示样本越相似;越接近于0,表示样本越不相似。
类或簇
通过聚类得到的类或簇,本质是样本的子集。如果一个聚类方法假定一个样本只能属于-一个类,或类的交集为空集,那么该方法称为硬聚类(hard clustering)方法。 否则,如果一个样本可以属于多个类,或类的交集不为空集,那么该方法称为软聚类(soft clustering) 方法。本章只考虑硬聚类方法。
用G表示类或簇(cluster),用xi,xj表示类中的样本,用nG表示G中样本的个数,用dij 表示样本xi与样本xj之间的距离。
类的特征
1.类的中心,又称类的均值G
nG是类G的样本个数
2.类的直径DG 类的直径DG是类中任意两个样本之间的最大距离,即
3.类的样本散步矩阵AG与样本协方差矩阵SG
类与类之间的距离
类Gp与类Gq之间的距离D(p,q),也成为连接。
类Gp包含np个样本,类Gq包含nq个样本,分别用p和q表示Gp和Gq的均值,即类的中心。
层次聚类
层次聚类假设类别之间存在层次结构,将样本聚到层次化的类中。 层次聚类分为聚合聚类(自下而上)、分裂聚类(自上而下)两种方法。层次聚类属于硬聚类
聚合聚类开始将每个样本各自分到一个类;之后将相距最近的两类合并,建立一个新的类,重复此操作直到满足停止条件;得到层次化的类别。
分裂聚类开始将所有样本分到一个类;之后将已有类中相距最远的样本分到两个新的类,重复此操作直到满足停止条件;得到层次化的类别。
聚合聚类
聚合聚类的具体过程如下:对于给定的样本集合,开始将每个样本分到一个类;然后按照一定规则,例如类间距离最小,将最满足规则条件的两个类进行合并;如此反复进行,每次减少一个类, 直到满足停止条件,如所有样本聚为一类。
例子
k均值聚类
k均值聚类是基于样本集合划分的聚类算法。k均值聚类将样本集合划分为k个子集,构成k个类,将n个样本分到k个类中,每个样本到其所属类的中心的距离最小。每个样本只能属于一个类,所以k均值聚类是硬聚类。
K均值聚类的策略是通过损失函数最小化选取最优的划分
采用欧氏距离平方作为样本之间的距离
定义样本与其所属类的中心之间的距离的总和为损失函数
k均值算法
k均值聚类的算法是一个迭代的过程,每次迭代包括两个步骤。 首先选择k个类的中心,将样本逐个指派到与其最近的中心的类中,得到一个聚类结果,然后更新每个类的样本的均值,作为类的新的中心,重复以上步骤,直到收敛为止。
例题
k均值算法特性
总体特点:
- 基于划分的聚类方法
- 类别数k事先指定
- 以欧氏距离平方表示样本之间的距离,以中心或样本的均值表示类别
- 以样本和其所属类的中心之间的距离的总和为最优化的目标函数
- 得到的类别是平坦的、非层次化的
- 算法是迭代算法,不能保证得到全局最优。
收敛性:
- k均值聚类属于启发式方法,不能保证收敛到全局最优,初始中心的选择会直接影响聚类结果。
- 注意,类中心在聚类的过程中会发生移动,但是往往不会移动太大,因为在每一步,样本被分到与其最近的中心的类中。
初始类的选择:
- 选择不同的初始中心,会得到不同的聚类结果。
- 初始中心的选择,比如可以用层次聚类对样本进行聚类,得到k个类时停止。然后从每个类中选取一个与中心距离最近的点。
类别数k的选择:
- k均值聚类中的类别数k值需要预先指定,而在实际应用中最优的k值是不知道的。
- 尝试用不同的k值聚类,检验得到聚类结果的质量,推测最优的k值。
- 聚类结果的质量可以用类的平均直径来衡量。
- 一般地,类别数变小时,平均直径会增加
- 类别数变大超过某个值以后,平均直径会不变,而这个值正是最优的k值。实验时,可以采用二分查找,快速找到最优的k值。