聚类学习

聚类,无监督学习,将无标签样本分为几个簇,两个基本问题,性能度量和距离计算
聚类性能度量大致分为2类,外部指标:将聚类结果与某个“参考模型”进行比较;内部指标:直接考察聚类结果但是不利用任何参考模型。
外部指标JC/FMI/RI等,值越大性能越好。内部指标DBI/DI等,根据簇内样本的距离值来进行考察。

距离计算,距离函数dist(.,.)满足非负性,同一性,对称性,直递性,最常用的是“闵可夫斯基距离”,当p为2是为欧氏距离,根号下各坐标轴差值的平方和;当p为1时为曼哈顿距离,各坐标轴差值的和(街区距离)。

属性分为“连续属性”和“离散属性”,闵可夫斯基距离可用于计算有序属性,对于无序属性可使用VDM来计算距,将二者结合使用,即可处理混合属性,以上的距离定义和算法都是事先定义好的常规方法,对于现实任务,可以通过“距离度量学习”基于数据样本来确定合适的距离计算公式。

原型聚类,此类算法假设聚类结构能通过一组原型刻画。通常先对原型进行初始化,然后对原型进行迭代更新求解。
1. K均值算法
适用于给定样本集D,聚类划分为k个簇,k均值算法将最小化平方误差,直观来看,一定程度上刻画了簇内样本围绕簇均值向量的紧密程度。
此算法需先找到其样本集的所有可能的簇划分,是一个NP难问题,因此采用贪心策略,通过迭代优化来近似求解式(先根据样本集设定n个簇,然后假设n个初始均值向量,然后对样本进行分簇(根据样本和簇向量之间的距离,通过闵可夫斯基距离来进行计算),然后再计算各簇的均值向量并更新(即计算添加了新样本的簇的均值向量),再划分再求再更新,直到不变。实例详见西瓜书第9章。

   2. 学习向量量化
   与k均值算法类似,LVQ也是试图找到一组原型向量来刻画聚类结构,不同的是,LVQ假设数据样本带有类别标记,学习过程利用这些监督信息来辅助聚类。???假设标记从何而来,还是半标记??
   过程:先对原型向量初始化,从那些带类别标记的样本中选n个样本类别作为该类的原型向量。然后开始迭代,算法随机选取一个有标记训练样本,计算其最近的原型向量,如果和其类别标记一致,则将此时的原型向量更向类别标记方向偏离,偏离大小受学习率控制,不一致则相反。

   !!!类别数和原型向量没有数量关系,原型向量等于簇数,可以大于假设类别数。“原型”:样本空间中具有代表性的点,原型聚类则假设聚类结构能够通过一组原型来刻画。

   3. 高斯混合聚类,不同于二者,使用概率模型来表达聚类。多维高斯公式定义,将概率密度函数记为p(x|均值向量,协方差矩阵) 对应等同于 X∼N(μ,σ2)。
   过程:生成一个高斯混合聚类,由k个高斯混合成分组成,也就是讲分为k个簇,但不同于上述的距离计算,结合贝叶斯原理,计算样本最有可能由第k个高斯混合成分生成的后验概率来划分簇。

   高斯混合聚类是采用概率模型(高斯分布)对原型进行刻画,簇划分则由原型对应的后验概率确定。

   高斯混合分布公式由:各高斯混合成分的混合系数,均值向量,协方差矩阵构成,假设k个簇,则3k个参数。如何求解这3k个模型参数呢?? 可以采用极大似然估计,

密度聚类。DBSCAN算法,此算法假设聚类结构能通过样本分布的紧密程度确定,从样本密度角度考察样本的可连接性,并基于可连接样本不断拓展簇类。
算法概念:邻域/核心对象/密度直达/密度可达/密度相连
过程:对所有样本点进行核心对象检测,然后从核心对象集中随机选取一点出来找出其邻域内的点,若存在核心对象,则扩大邻域范围,直到无可加入的核心对象,至此一个簇的划分完成。然后从剩下的核心对象中继续上述步骤,直到无核心对象。
综上我们可知,簇划分中核心样本的加入扩充簇的范围。

层次聚类。AGNES算法,一种自底向上聚合策略的层次聚类算法,通过不断合并距离最近的簇来不断聚合簇。
过程:初始化,先将所有的样本视为一个初始聚类簇,然后求出各簇之间的距离,然后按顺序逐层进行合并,直到为预定的簇数。

你可能感兴趣的:(机器学习)