在无监督学习中unsupervised learning
中,训练样本的标记信息是未知的,其目标是通过对无标记训练样本的学习来揭示数据的内在性质及规律,为进一步的数据分析提供基础。而此类学习任务中应用最广、研究最多的即聚类clustering
。
以通俗的语言讲解,聚类学习将数据集中的样本分成若干个互不相交的子集(称为簇cluster
)。保持簇内差异尽可能小而簇间差异尽可能大我们就可以将每个簇映射到一些潜在的类别。
需要注意的是,划分的类别对于聚类而言事先是位置的,聚类过程仅能将数据集自动划分为不同的簇,但每个簇对应的概念语义是需要使用者自己来把握和命名。
聚类学习
照旧我们以数学语言描述聚类学习,假定样本集
包含
个无标记样本,每个样本
是一个
维特征向量,则聚类算法将样本
划分为
个不相交的簇
。我们用
表示样本
的簇标记cluster label
,则聚类结果可用包含
个元素的簇标记向量
表示。
从本质上讲,我们希望聚类形成簇内方差尽可能小而簇间方差尽可能大的分类结果,即相同类别的元素尽可能相似而归属不同类别的元素尽可能不同。
对数据集
,假定通过聚类给出的簇划分为
,定义:
其中
衡量两个样本之间的距离,
表示簇
的中心点,
表示簇
内样本间的平均距离,
表示簇
内样本间的最远距离,
表示两个簇最近样本间的距离,
表示两个簇中心点间的距离。 基于这些指标,我们常用下面的聚类性能度量聚类效果:
Davies-Bouldin Index
:值越小表示聚类效果越好
Dunn Index
:值越大表示聚类效果越好
给定样本
和
,度量两个样本点间距离
的方法有很多种,最常用的就是“闵可夫斯基距离”Minkowski distance
:
当
时,闵可夫斯基距离等价于欧式距离Euclidean distance
;
时,闵可夫斯基距离等价于曼哈顿距离Manhattan distance
给定样本集
,k-means
最小化聚类所得簇划分
的平方误差:
最小化上式需要遍历样本集
中所有可能的簇划分,这本身就是一个NP
难的问题,因此k-means
算法采取了贪心策略,通过迭代优化来近似求解。
输入:样本集
,聚类簇数
输出:最优的簇划分
中随机抽取
个样本作为初始均值向量
中的每个样本
,计算它与各均值向量
的距离:
,将样本划入离它最近的簇中:
,对应的簇更新为
个簇重新计算均值向量:
,更新均值向量
先回顾以下多元高斯分布的概率密度函数:
其中
是均值向量,
是
的协方差矩阵,高斯分布完全由均值向量
和协方差矩阵
这俩参数确定,因此我们可将其记为
。
基于多元高斯分布的概念,我们可定义高斯混合分布:
该分布共由
个混合分布组成,每个混合成分对应一个高斯分布,而
为相应的混合系数mixture coefficient
,且满足
假设样本的生成过程由高斯混合分布给出:首先根据
定义先验分布选择高斯混合成分,然后根据被选择的混合成份的概率密度函数进行采样,从而生成相应的样本。 给定训练集
由上述过程生成,令随机变量
表示生成样本
的高斯混合成分,其取值未知。根据贝叶斯定理,可以计算
的后验分布为:
即
给定了样本
由第
个高斯混合成分生成的后验概率,我们将其记为
,高斯混合聚类将样本集
划分为
个簇
,每个样本
的簇标记
确定如下:
输入:样本集
;高斯混合成分个数
输出:簇划分
由高斯各混合部分生成的后验概率,即
,计算新协方差矩阵
,计算新混合系数
,并更新对应的三个模型参数
将样本
划到对应的簇中,即
密度聚类density-based clustering
假设聚类结构能通过样本分布的紧密程度确定,密度聚类算法从样本密度的角度来考察样本之间的可连接性,并基于可连接样本不断扩展聚类簇以获得最终的聚类结果。
给定数据集
,有如下概念:
邻域:
,即样本集中与
距离不超过
的样本集合
core object
:若的
邻域内至少包含
个样本,则它是一个核心对象
directly density-reachable
:若位于
的
邻域中,且
是核心对象,则称
由
密度直达
density-reachable
:对和
,若存在样本序列
,其中
且
由
密度直达,则称
由
密度可达
density-connect
:对与
,如果存在
使得
与
均由
密度可达,则称
和
密度相连
下图给出了密度聚类相关概念的直观展示:
密度聚类概念
在
的情况下,虚线表示
邻域,
是核心对象,
由
密度直达,
由
密度可达,
与
密度相连。
基于上述的概念,密度聚类将“簇”定义为:由密度可达关系导出的最大密度相连样本集合。从数学角度上讲,即给定邻域参数
,簇
是满足以下性质的非空样本子集:
connectivity
:maximality
:不难证明,若
为核心对象,则由其密度可达的所有样本组成的集合记为
满足连接性与最大性。
输入:样本集
;邻域参数
输出:簇划分
的
邻域满足
,那么将其加入核心对象集合
,遍历该核心对象
邻域内的所有样本点
(包括它自身),如果该样本也是核心对象,则
邻域内的所有样本点,更新
,生成聚类簇
直观展示如下:
密度聚类
层次聚类hierarchical clustering
试图在不同层次上对数据集进行划分,从而形成树形的聚类结构,数据集的划分既可以采用“自底向上”的聚合策略,也可以采用“自顶向下”的分拆策略。
AGNES
是一种自底向上聚合策略的层次聚类算法,它先将数据集中每个样本看成一个初始聚类簇,然后在算法运行的每一步中找到最近的两个聚类簇进行合并,该过程不断重复直至达到预设的聚类簇个数,关键在于如何计算连个聚类簇之间的距离。
最小距离:
最大距离:
平均距离::
当聚类簇距离分别由
、
或
计算时,AGNES
算法被相应地成为“单链接”single-linkage
、“全链接”complete-linkage
或“均链接”average-linkage
算法。
输入:样本集
;聚类簇距离度量函数
;聚类簇数
输出:簇划分
和
,将其合并
,对于所有下标大于
的簇,将聚类簇
重编号为
令AGNES
算法执行到所有样本出现在同一个簇中,可得到如下的树状图:
层次聚类树状图
在树状图的特定层次上分割即可得到对应的簇划分结果,上图中虚线划分的位置将样本分为7个簇,理解一下背后的原理。
[1] 周志华 机器学习