该博客是在一篇博主的基础上该的,如果要看详细的,可以参考他的博客:
https://blog.csdn.net/shichensuyu/article/details/94552906
聚类的应用
生物进化树
寻找优质客户
推荐系统
信用卡照片
黑客攻击
聚类和分类的区别
聚类没有学习集,告诉我这些样本点如何去分类,无监督学习
分类:有监督学习
什么样的聚类结果比较好呢?
同一簇的样本尽可能相似,不同簇的样本尽可能不同,即簇内相似度高,簇间相似度低
评价指标
内部指标:将聚类结果与某个“参考模型”进行比较(Jaccard系数、FM系数、Rand指数)
内部指标:直接考察聚类结果而不用任何参考模型(DB指数、Dunn指数)
聚类如何分类呢?
基于几何特征:距离(满足非负性、同一性、对称性、直递性-三角形定理)、密度
针对有序属性:闵可夫斯基距离(包含了欧氏距离、曼哈顿距离)
针对无序属性:VDM(Value Difference Metric)
针对混合属性:闵可夫斯基距离和VDM结合(MinkovDM)
Note:当样本空间中不同属性的重要性不同时,可使用“加权距离”(线性加权)
原型聚类
k均值算法:基于最小化平方误差,优点是复杂度低,缺点是容易局部最优,需要先设k值。
学习向量量化:与一般聚类算法不同的是,LVQ假设数据样本带有类别标签标记,学习过程采用样本的这些监督信息来辅助聚类。判断标准是最近的原型向量Pi与xj的类别是否相同,则令pi向xj的方向靠拢。
高斯混合聚类:采用概率模型来表达聚类原型,模型的参数通过极大似然估计求解
密度聚类
DBSCAN:基于一组邻域参数来刻画样本分布的紧密程度
相关概念:
e邻域:包含样本集D中与xj的距离不大于e的样本
核心对象:若xj的e邻域至少包含minpts样本,即xj是一个核心对象
密度直达:位于xj位于xi的e邻域中,且xi是核心对象,则称xj由xi密度直达
密度可达:对xi与xj,若存在样本序列
9.1 聚类任务
聚类试图将数据集中的样本划分为若干个通常是不相交的子集,每个子集称为一个簇(cluster)。但需注意的是,聚类过程仅能自动形成簇结构,簇所对应的概念语义需由使用者来把握和命名。
聚类既能作为一个单独的过程,用于寻找数据内在的分布结构,也可作为分类等其他学习任务的前驱过程。
9.2 性能度量
聚类性能度量也称聚类有效性指标(validity index),与监督学习中的性能度量作用类似。
对聚类结果,需要通过某种性能度量来评估其好坏。
若明确了最终将要使用的性能度量,则可直接将其作为聚类过程的优化目标。
对于聚类,一般通用的度量标准为“物以类聚”,即:簇内相似度高且簇间相似度低。
两类性能度量:
外部指标:将聚类结果与某个参考模型(如将领域专家给出的划分结果作为参考模型)进行比较
内部指标:直接考察聚类结果而不利用任何参考模型
外部指标:
定义
注:S代表Same,D代表Different
外部指标
Rand指数(Rand Index,简称RI)
a+b表示与参考模型划分结果一致的样本数量
注:以上指数取值范围为[0,1],且越大越好
内部指标
定义
簇内样本平均距离avg( C)
某个簇内样本间的平均距离,应该越小越好
簇内样本间最远距离diam( C )
显然diam( C)应该越小越好
簇间最近样本距离dmin(C)
应越大越好
簇中心间距dcen(Ci,Cj)
内部指标
由聚类结果的一般标准:簇内相似度高且簇间相似度高可知:
对于式(9.12)的分子(簇内平均距离),应越小越好,分母则是越大越好,故整体DBI应越小越好
对于式(9.13)的分子(最小簇间距离)应越大越好,分母(簇内样本最大距离)应越小越好,故整体DI应越大越好
9.3 距离计算
注:直递性常被直接称为“三角不等式”,不满足直递性的距离称为非度量距离,对于某些现实任务,我们不能使用定义好的距离公式,而是需要我们基于数据样本来确定合适的距离计算式,这可通过距离度量学习来实现
闵可夫斯基距离(Minkowski distance)
其中p≥1p≥1
曼哈顿距离(街区距离)
当闵可夫斯基距离表达式的p=1p=1
欧氏距离
当闵可夫斯基距离表达式的p=2p=2
注:红蓝黄都为曼哈顿距离,绿色为欧氏距离
切比雪夫距离
9.4 原型聚类
原型:样本空间中具有代表性的点
原型聚类也称基于原型的聚类(prototype-based clustering),此类算法假设聚类结构能通过一组原型刻画。采用不同的原型表示、不同的求解方式,将产生不同的算法。
9.4.1 k均值算法(k-means聚类)
k-means聚类算法过程:
对于簇中心的迭代停止条件为:达到最大迭代轮数或调整幅度小于最小调整幅度阈值
9.4.2 学习向量量化
学习向量量化(Learning Vector Quantization,LVQ)同k-means聚类类似,也是试图找到一组原型向量来刻画聚类结构。不同的是,LVQ针对于带有类别标记的数据样本,学习过程利用样本的监督信息(类别标记)来辅助聚类。
注:停止条件为达到最大迭代轮数或原型向量更新很小甚至不再更新
上面的算法过程6-10行对应着如何更新原型向量。
9.4.3 高斯混合聚类
与k-means、LVQ用原型向量来刻画聚类结构不同,高斯混合聚类采用概率模型来表达聚类原型。
注:一元高斯分布的概率密度函数为:
1.定义高斯混合分布
2.样本生成过程
9.5 密度聚类
密度聚类也称基于密度的聚类,此类算法假设聚类结构能通过样本分布的紧密程度确定(原型聚类是假设聚类结构能够通过一组原型刻画)。
通常情况下,密度聚类算法从样本密度角度来考察样本间的可连接性(密度直达,密度可达,密度相连),并基于可连接样本来不断拓展聚类簇。
簇的定义
基于上面的概念,DBSCAN将簇定义为:由密度可达关系导出的最大密度相连样本集合。对于D中不属于任何簇的样本,会被视为噪声或异常样本。
算法过程
9.6 层次聚类
层次聚类试图在不同层次对数据集进行划分,从而形成树形的聚类结构。
对于数据集的划分,层次聚类通常有两种策略:
自底向上的聚合策略
自上而下的分拆策略
AGNES算法
AGNES是一种采用自底向上聚合策略的层次聚类算法。算法的基本过程是:先将每个样本都看做一个初始聚类簇,然后在算法运行的每一步中找出距离最近的两个聚类簇进行合并,该过程不断重复,直到到达预设的聚类簇个数。
对于簇间距离的计算,可通过以下式子计算Ci和CjCi和Cj C_i和C_jCi和Cj之间的距离:
显然,可以看出:
簇间最小距离由两个簇的最近样本决定
簇间最大距离由两个簇的最远样本决定
平均距离由两个簇的所有样本决定
当聚类簇的距离由dmin、dmax或davgdmin、dmax或davg d_{min}、d_{max}或d_{avg}dmin、dmax或davg计算时,AGNES算法被相应地称为单链接、全链接或均链接算法。
AGNES算法过程
习题答案:
3.试析k均值算法能否找到最小化(9.24)的最优解。
不能,因为k均值算法只是局部最有的近似算法,只能找到初始化均值附近的局部最优解,无法找到全局最优解。
4.编程实现k均值算法,设置三组不同的k值,三组不同的初始中心点,在西瓜数据集4.0上进行实验,并讨论什么样的初始中心有利于取得好结果。
西瓜数据集4.0中30未分类样本,属性纬度2,都是连续属性。
K-means算法是一种局部最优的最小化类间最小化均方误差的算法,初始随机的中心不同会导致算法的迭代次数与最终结果有很大