聚类
来源:互联网 发布:mac压感 编辑:程序博客网 时间:2024/05/12 15:52
聚类的任务:
- 聚类属于“无监督学习”,目标是通过对无标记训练样本的学习来揭示数据的内在的性质和规律,为进一步的数据分析提供基础。
- 聚类试图将数据集中的样本划分为若干个通常是不相交的子集,每个子集称为一个“簇”。
- 聚类既能作为一个单独过程,用于寻找数据内在的分布结构,也可作为分类等其他学习任务的前驱过程。例如,可以根据聚类结果将每个簇定义为一个类,然后再基于这些类训练分类模型,用于对数据的预测。
- 聚类涉及到两个基本问题:性能度量和距离计算。
- 聚类分类:原型聚类,密度聚类,层次聚类。
性能度量:
- 聚类性能度量亦成为聚类“有效性指标”。我们需要通过某种性能度量来评估其好坏;另一方面,若明确了最终将要使用的性能度量,则可直接将其作为聚类过程的优化目标,从而更好地得到符合要求的聚类结果。
- 聚类目标是使“簇内相似度”高且“簇间相似度”低。
- 聚类性能度量大致有两类,一类是聚类结果与某个“参考模型”进行比较,成为“外部指标”(external index);另一类是直接考察聚类结果而不利用任何参考模型,称为“内部指标”(internal index)。
- 对数据集,假定通过聚类给出的簇划分为,参考模型给出的簇划分为。相应的,令与分别表示与C和对应的簇标记向量。我们将样本两两配对考虑,定义(1-1),(1-2),(1-3),(1-4)。
- 基于以上四个式中,我们给出聚类性能度量外部指标:
- Jaccard系数(Jaccard Coefficient,简称JC)(1-5)结果区间[0,1],值越大越好。
- FM指数(Fowlkes and Mallows Index,简称FMI)(1-6)结果区间[0,1],值越大越好。
- Rand指数(Rand Index,简称RI)(1-7)结果区间[0,1],值越大越好。
- 考虑聚类结果簇划分为,定义
- (1-8)
- (1-9)
- (1-10)
- (1-11)
- 其中,dist(,)用于计算两个样本之间的距离;u代表簇C的中心点。显然,avg(C)代表簇C内样本间的平均距离,diam(C)代表簇C内的样本间最远的距离,(1-10)代表Ci和Cj最近样本间的距离,(1-11)代表对应簇Ci和Cj中心点的距离。
- 则基于上述四式,可以推导出聚类内部指标:
- DBI指标(Davies-Bouldin Index,简称DBI)(1-12)
- Dunn指数(Dunn Index,简称DI)(1-13)
- DBI指标值越小越好,DI指标值越大越好。
距离计算:
- 属性分为“连续属性”和“离散属性”。又可以分为“有序属性”和“无序属性”。对于“有序属性”,可使用闵可夫斯基距离进行计算,而对于“无需属性”,可采用VDM(Value Difference Metric)进行计算。
- 给定样本与,闵可夫斯基距离(Minkowski distance)公式为:,其中p≥1。
- p=2时,闵可夫斯基距离即为欧氏距离(Euclidean distance):。
- p=1时,闵可夫斯基距离即为曼哈顿距离(Manhattan distance):。
- 对于无序属性,使用VDM。令表示在属性u上取值为a的样本数,表示在第i个样本簇中在属性u上取值为a的样本数,k为样本簇数,则属性u上的两个属性a和b之间的VDM距离为:。
- 可将闵可夫斯基距离和VDM结合即可处理混合属性。假定有个有序属性,n-个无序属性,不是一般性,令有序属性排列在无序属性之前,则。
- 当样本空间中不同属性的重要性不同时,可使用“加权距离”(weighted distance),以闵可夫斯基距离为例:。
原型聚类:
- 原型聚类亦称“基于原型的聚类”,此类算法假设聚类结构能通过一组原型刻画,在现实聚类任务中极为常用。算法先对原型进行初始化,然后对原型进行迭代更新求解。采用不同原型表示,不用的求解方式,将产生不同的算法。
- K-Means算法:
- 改进k-Means算法:
k-means算法简单,收敛速度快,可扩展且效率高,然而该算法存在聚类个数确定困难,初始聚类中心选取不准确导致聚类结果易陷入局部最优解等缺陷。
设对象集合 M={x1,x2,...,xn},xi=(xi1,xi2,...,xit),样本xi与样本xj的欧式距离计算公式如下:d(xi,xj )=[(xi1 - xj1)2+ (xi2 - xj2 )2 ... + (xin- xjn )2] (1)
1)k-means初始聚类中心的选择。
数据对象之间的欧式距离越小,其相似性越大。如果数据集中某一数据对象所处区域内的数据对象越多,区域内的其它对象到该对象的距离越小,说明该对象的数据密度越大,能够较好地反映数据分布特征,作为聚类中心更有利于平方误差准则函数的收敛,且能够避免由于初始聚类中心选择的随机性带来结果陷入局部最优的僵局。
按照公式(1)计算2 个对象间的距离 d(xi,xj)。
按照下式计算对象集合M 中所有对象间的平均距离 MeanDis(M)。
根据公式 (2),按照下式计算对象 xi的密度 Den(xi)。
其中当 x≥0时,u(x)=1,否则u(x)=0。密度集合D={Den(x1),Den(x2),...,Den(xn)}。 如果选择K个聚类,则选择前K个作为K个聚类的中心。
2)如何选择K?
初步假定簇的个数为 k,按照步骤1)选择每个簇的中心,将第i 个簇内数据对象间的平均距离作为数据对象的分散程度,用pi表示,表示第i 个簇和第 j个簇间的距离。pi 可以根据MeanDis公式计算。为两个簇中心的距离之差。从k=2开始试验,目标是使公式(2)取得最小值。最小值的k值为最终的簇点数。
- 学习向量量化(Learning Vector Quantization,简称LVQ):先假设数据样本带有类别标记,学习过程利用样本的这些监督信息来辅助聚类。住:样本的标记是随机标记的。
- 高斯混合聚类:
- 与K-Means、LVQ用原型向量来刻画聚类结构不同,高斯混合聚类采用概率模型来表达聚类原型。对n维样本空间X中的随机向量x,若x服从高斯分布,其概率密度函数为:。其中u是n维均值向量,是n*n的协方差矩阵。有上式可知,高斯分布完全由均值向量u和协方差矩阵这两个参数决定。为了明确显示高斯分布与相应参数的依赖关系,将概率密度函数记为p(x|u,)。定义高斯混合分布(1-14)。该分布共由k各混合成分组成。每个混合分布对应一个高斯分布。其中和是第i个高斯混合成分的参数。而>0为相应的“混合系数”,。
- 假设样本的生成过程由高斯混合分布给出:首先,根据定义的先验分布选择选择高斯混合成分,其中为选择第i个混合成分的概率;然后,根据被选择的混合成分的概率密度函数进行采样,从而生成相应的样本。若训练集由上述过程生成,令随机变量表示生成样本的高斯混合成分,其取值未知。显然,的先验概率对应于。根据贝叶斯定理,的后验分布对应于(9.30)。此式表明样本xj由第i个高斯混合成分生成的后验概率,简记。当高斯混合分布(1-14)已知时,高斯混合聚类将把样本集D划分为k个簇,每个样本xj的簇标记如下确定:(9.31)。
密度聚类:
- 密度聚类亦称“基于密度的聚类”(density-based clustering),此类算法假设聚类结构能通过样本分布的紧密程度确定。通常情形下,密度聚类算法从样本密度的角度来考察样本之间的可连接性,并基于可连接性不断扩展聚类簇以获得最终的聚类结果。DBSCAN是一种著名的聚类算法。它基于邻域参数来刻画样本分布的紧密程度。给定数据集。
- -邻域:对于,其-邻域包含样本集D中的与xj的距离不大于的样本,即。
- -邻域:对于,其-邻域包含样本集D中的与xj的距离不大于的样本,即。
层次聚类:
- 层次聚类试图在不同层次对数据集进行划分,从而形成树形的聚类结构。数据集的划分可采用“自底向上”的局聚合策略,也可采用“自顶向下”的分拆策略。AGNES是一种采用“自底向上”聚合策略的算法。它先将数据集中的每个样本看做一个初始聚类簇,然后在算法运行的每一步中找出距离最近的两给聚类簇进行合并,该过程不断重复,直至达到预设的聚类簇个数。
- 其中使用的d(,)函数由一下几个函数选一个即可。
- 选择不同d(,)函数,AGNES算法的名字也不同,从上到下分别叫做“单链接(single-linkage)”,“全链接(complete-linkage)”,“均链接(average-linkage)”算法。
- 聚类
- 聚类
- 聚类
- 聚类
- 聚类
- 聚类
- 聚类
- 聚类
- 聚类
- 聚类
- 聚类
- 聚类
- 聚类
- 聚类
- 聚类
- 聚类
- 聚类
- 聚类
- Linux切换到root用户失败原因
- HDU 4305 Lighting(生成树计数+点在线段判断)
- (4.6.19)Android性能分析工具整理汇总
- redis info命令中各个参数的含义
- Spring Boot示例 - 2. 使用Spring Boot + Spring Data REST + Spring Data JPA构建符合HATEOAS规范的REST应用
- 聚类
- LeetCode:Implement strStr()
- HDFS安全模式详解
- PHP下载功能代码实现
- PHP 7.0 新特性
- C二叉树的基本操作---创建、遍历、求深度、求叶子结点
- 图像:模式与调整
- Java String
- Nginx+php-fpm 502 504问题