一、监督学习与非监督学习
监督学习:给定,学习输入x与输出y之间的关系:分类、回归、排序
非监督学习:给定,寻找数据的内在结构:概率密度估计、聚类、降维/可视化
二、聚类的相关概念
1.聚类
发现数据中分组聚集的结构:根据数据中样本与样本之间的距离或相似度,将样本划分为若干组/类/簇。划分的原则:簇内样本相似、簇间样本不相似。
2.聚类的类型
基于划分的聚类(无嵌套):将所有的样本划分到若干不重叠的子集(簇),每个样本仅属于一个子集。
层次聚类(嵌套):树形聚类结构,在不同层次对数据集进行划分,簇之间存在嵌套。
3.簇的类型
- 基于中心的簇:簇内的点和其“中心”(质心/中心点)较为相近(或相似),和其他簇的“中心”较远,这样的一组样本形成的簇。
- 基于连续性的簇:相比其他任何簇的点,每个点都至少和所属簇的某一个点更近。
-
基于密度的簇:簇是由高密度的区域形成的,簇之间是一些低密度的区域。
-
基于概念的簇:同一个簇共享某种性质,这个性质是从整个结合推导出来的,通常不是基于中心、邻接、密度的。
4.聚类分析的“三要素”
样本间的“远近”:使用相似性/距离函数
评价聚类出来的簇的质量:利用评价函数去评估聚类质量
获得聚类的簇:表示簇、设计划分和优化算法、算法停止时间
三、距离度量函数
1.距离函数
一个距离度量函数满足:
- 非负性:
- 不可分的同一性:
- 对称性:
- 三角不等式:
2.闵可夫斯基距离
当p=2时,为欧氏距离
当p=1时,为曼哈顿距离
3.数据预处理
4.余弦相似度
夹角余弦:两变量xi,xj看做D维空间的两个向量,这两个向量间的夹角余弦可计算:
5.相关系数
6.杰卡德相似系数(Jacard)
四、聚类性能评价指标
1.聚类性能评价方法
外部评价法:聚类结果与参考结果有多相近
内部评价法:聚类的本质特点(无参考结果)
2.参考模型
数据集:
聚类结果:,其中Ck表示属于类别k的样本的集合
参考模型:
3.外部索引
4.簇内相似度
5. 簇间相似度
6.内部评价指标
7.轮廓指数
五、聚类算法
1.k均值聚类(基于划分的聚类方法、基于中心的聚类方法,数据在向量空间,对于非向量空间可以用类似核函数度量相似性)
问题:给定N个样本点进行聚类
输入:数据,簇数目为K
- 随机选择K个种子数据点作为K个簇的中心
- repeat
- for each do
- 计算xi与每一个簇中心 的距离
- 将xi指配到距离最近的簇中心:
- end for
- 用当前的簇内点,重新计算K个簇中心位置
- until当前簇中心未更新
1.本质
优化目标函数:,其中为从属度,指示样本xi是否属于簇k,且(即每个样本点属于且仅属于一个类)
K-means是在目标函数上进行坐标轴下降优化,J是非凸的,所以J上应用坐标下降法不能保证收敛到全局最小值。最好将K-means运行多次,选择最好的结果。
2.K的选择——肘部法
寻找估计目标函数风险急剧下降的地方,令表示聚成K个簇的经验风险(目标函数值),寻找第一个K,使得的改进很小,这个位置称为肘部法
给定一个较小的数值,定义
3.K的选择——假设检验法
对每个K,进行假设检验:原假设H0:簇的数目为K,备择假设H1:簇的数目不为K
从K=1开始,如果拒绝H0,则继续对K=2进行假设检验,直到接受原假设,即K为第一个不被拒绝的假设。
假设检验:检验每个簇的分布是否为一个多元正态分布。如果不是,将簇分裂为2个簇。
4.初始化K-means
启发式做法:随机确定第一个类的中心,其他类的中心位置尽量远离已有类中心,Scikit-Learn中K-means实现中参数inti可设置初始值的设置方式,默认值为“k-means++”,将初始化质心彼此远离,得到比随机初始化更好的结果。
k-means:
给定: 数据,簇数目为K
- 从随机选择一个样本点,记为;
- For k=2,3,...,K
- for each do
- 计算与已有簇中心的最短距离:
- end for
- 以下述概率抽取样本点:
- 将这个随机抽样得到的样本点作为第k个初试的簇中心
5.预处理和后处理
预处理:标准化数据(e.g.缩放到单位标准差);消除离群点
后处理:删除小的簇:可能代表离群点;分离松散的簇:簇内节点间距离之和很高;合并距离较近的簇
6.K-means的优点与局限性
优点:经典的聚类算法,简单、快速;能处理大规模数据,可扩展性好;当簇接近高斯分布时,效果较好;
局限性:当簇具有不同的尺寸、密度、非球形时,K-means会存在问题;K-means可能得不到理想的聚类结果;硬划分数据点到簇,当数据上出现一些小扰动,可能会导致一个点划分到另外的簇。
——>
使用更大数量的簇,用几个小的簇表示一个真实的簇;使用基于密度的方法。
高斯混合模型:假定簇为球形且每个簇的概率相等。
7.K-medoids
均值作为中心易受影响,换用簇的中位点做为中心。
对比:1.均值极有可能不存在,不足以代表该簇的样本,而中值是一个样本集合中真实存在的一个样本点;2.相对均值,中值对噪声(孤立点、离散点)不那么敏感;3.但是中值计算需要对簇内所有样本进行排序,计算费用高。
2.高斯混合模型和EM算法
1.高斯混合模型
概率解释:假设有K个簇,每个簇服从高斯分布,以概率随机选择一个簇k,从其分布中采样出一个样本点,如此得到观测数据
概率密度函数:
模型参数:
2.引入隐含变量
为每个样本点x关联一个K维的隐含变量,指示样本x所属的簇(one-hot向量),其对应的随机向量用Z表示。如果已知z的取值,如x属于第k簇,则
参数估计:极大似然估计
最大化对数似然函数
3.求解方法:EM算法
类似K均值聚类,采用(块)坐标轴下降,称为EM算法
E步:基于目前参数值,推断隐含变量的信息(后验概率/期望)
可看做是对从属于第k个簇的一种估计或者“解释”
M步:基于当前的期望,重新估计参数的值
4.通用的EM算法
5.EM for GMM
6.K-means与高斯混合模型(GMM)
K-means:损失函数为最小化平方距离的和;样本点硬划分到某个簇;假定样本属于每个簇的概率相等,且为球形簇。
GMM:最小化负对数似然;点到簇的从属关系为软分配;可以被用于椭圆形簇,且各个簇概率不同。
3.层次聚类
产生树形嵌套的簇,可被可视化为树状图
1.层次聚类的优点
优点:不需要提前假定簇的数目:通过选择树状图的某一层可以获得任意簇数量的聚类结构;聚类结果可能对应着有意义的分类体系。
2.层次聚类的分类
- 自底向上(凝聚式,更流行):递归的合并相似度最高/距离最近的两个簇
- 自顶向上(分裂式):递归地分裂最不一致的簇(例如:具有最大直径的簇)
3.定义簇间相似性
- 最小距离:优势:可形成非球形、非凸的簇;问题:链式效应
- 最大距离:对噪声更加鲁棒(不成链);问题:趋向于拆开大的簇,偏好球形簇
- 平均距离:最小距离和最大距离的折中方案
- 中心点距离:问题:反向效应(后边合并的簇间距离可能比之前合并的簇间距离更近)
- Ward's方法使用平方误差:两个簇的相似性基于两个簇融合后平方误差的增加:更少受噪声和离群点影响;倾向于球形簇;K-means的层次化版本,可以初始化K-means
4.层次聚类的簇数目确定
簇的数目:树状图中垂直线的数量,垂直线由水平线切割而成,水平线可以垂直穿过最大距离而不与聚类相交。
5.层次聚类的限制
贪心:一旦簇被合并或者拆分,过程不可逆。
没有优化一个全局的目标函数,不同方法存在以下一个或者多个问题:对噪声和离群点敏感;比较难处理不同尺寸的簇和凸的簇;成链,误把大簇分裂。
4.基于密度的聚类
1.基于密度的聚类
基于密度的聚类:临近的密度高的区域练成一片形成簇。优点:各种大小、各种形状的簇;具有一定的抗噪音特性。
2.DBSCAN
密度=给定半径内点的个数
核心点:指定半径内多于指定数量MinPts个点
边界点:半径内有少于MinPts个点,但在某个核心点的邻域内
噪声点:核心点和边界点之外的点
点q由点p密度可达:连接两个点的路径上所有的点都是核心点。(如果p是核心点,那么由它密度可达的点形成一个簇。)
点q和点p是密度相连的:如果存在点o从其密度可达点q和点p。
聚类的簇满足两个性质:1.连接性:簇内的任意两点是密度相连的。2.最大性:如果一个点从一个簇中的任意一点密度可达,则该点属于该簇。
DBSCAN算法:
- 初始化核心点集合:
- #确定核心点
- for i=1,2,...,N
- 确定样本点xi的领域内的样本
- if
- 则将样本xi加入核心点集合:
- end if
- end for
- 初始化簇的数目K=0,未访问过的点集合
- #对所有核心点
- while do
- 记录当前未访问过的点集合
- 随机选择一个核心点,初始化队列
- while do
- 去除队列Q中的首个样本点q
- if
- 为邻域中未访问过的点
- 将中的点加入队列Q
- end if
- end while
- K=K+1,
对DBSCAN的分析:优势:不需要明确簇的数量;任何形状的簇;对离群点较为鲁棒。劣势:参数选择比较困难;不适合密度差异较大的数据集;需计算每个样本的邻居点,操作耗时,即使使用k-d tree索引等技术加速计算,算法的时间复杂度为
3.聚类中心
pi:点i的局部密度
截断核:,其中,dc为截止距离,pi为点i距离小于dc的点的数目
Gaussian核:
到其他高密度点的距离(相对距离)
- 为的降序排序的索引,即
- 局部密度大,且相对距离大的点,可以看成是一个聚类中心。
4.基于图的聚类
所有数据点构成相似图:带权无向图
结点集合,N表示节点数目,vi表示数据点xi。结点之间可以用边连接:边的集合,其中ei,j表示结点vi和vj之间边,其权重wi,j:结点vi和vj的相似性。相似的两个结点之间的边权重值较高,不相似的两个结点之间的边权重值较低。
聚类:对所有数据点组成的相似图进行切图。不同的子图间边权重和尽可能的低,子图内的边权重和尽可能高。
1.边的创建
两个准则:邻域:如果,结点vi和vj之间连一条边;K近邻:如果xi是xj的K个最近邻之一且/或xj是xi的K个最近邻之一,则结点vi和vj之间连一条边。
2.边的权重
定义矩阵W为邻接矩阵,元素wi,j表示结点vi和vj的相似度,即为边ei,j的权重。
通常两个结点之间的相似度可取:,其中
两个常见的边权重计算方式:
3.图论基础
邻接矩阵W:所有点之间的权重值wi,j,构成图的邻接矩阵W,这是一个N*N的对称矩阵。
度矩阵D:每个点度构成N*N的度矩阵D。结点vi的度di定义为和它相连的所有边的权重之和,即
D是对角矩阵,第i行的主对角线元素值,为结点vi的度数。
Laplace矩阵L:L=D-W
- L是对称矩阵,所有特征值都是实数。
- 对于任意的向量f:
- 拉普拉斯矩阵L是半正定的,且对应的N个实数特征值都大于等于0,即()
- L的最小特征值是0,且特征值0所对应的特征向量为全1向量;
- L的特征值中“0”出现的次数是图连通区域的个数。
规范化的拉普拉斯矩阵:
对称Laplace矩阵:,随机游走Laplace矩阵:
性质: 1.对于任意向量f,。2.如果Lrm的特征值为,对应的特征向量为v,则是Lsym的特征值,是对应的特征向量。3 .如果Lrm的特征值为,对应的特征向量为v,当且仅当是广义特征值问题的解。
切图:
无向图G的切图:将图G(V,E)切成互不连接的K个子图,每个子图点的集合为,满足
切图权重:对任意两个子图点的集合定义A,B之间的切图权重为:
切图:对K个子图点的集合,定义切图为,其中为的补集。
最佳分割:图的切图最小。缺点:切图权重与边的数目成正比;倾向于剪切成小的、孤立的成分。
规范化剪切:定义子集的体积为与A相连的边的权重:,则规范化剪切为
4.优化目标
目标函数:
矩阵P的表示:
矩阵O的表示:
矩阵Q的表示:
优化目标:
变换,则,优化目标为
5.Ncuts特征值分解
- 根据输入的相似矩阵构建邻接矩阵W和度矩阵D
- 计算出拉普拉斯矩阵L
- 构建规范化的对称拉普拉斯矩阵:/
- 计算Lsym/Lrm最小的K1个特征值对应的特征向量vk,k=1,..,K1
- 将vk作为矩阵V的列,得到N*K1维的特征矩阵V,(Lsym:并将V每行规范化(模长为1))
- 对V中的每一行作为一个K1维的样本,共N个样本作为输入进行聚类,聚类类别数为K2
- 得到簇分布
6.优缺点
优点:可灵活选择邻接矩阵;对稀疏数据的聚类效果很有效;当聚类的类别个数较小时,谱聚类的效果好;建立在谱图理论上,能在任意形状的样本空间上聚类,且收敛于全局最优解。
缺点:对相似图和聚类参数的选择非常敏感;适用于簇大小均衡的问题。