一、导入
无监督学习中需要对无标记样本进行训练学习进而找到数据的内在性质和逻辑结构,聚类方法是为了为无监督学习的数据分析提供的基础学习方法。
聚类将数据集划分为若干个子集(每个子集称为类或者簇),如果一个样本只属于一个类(簇)则是硬聚类,如果某一个样本属于多个类那么就是软聚类。
二、评价指标
1、性能度量
确定了性能度量以后,可以直接将其作为聚类过程的优化目标,可以分为以下两类
外部指标
说明:需要有参考模型作为比较对象
对数据集D={X1, X2,…Xm}通过聚类得到的簇分类是C={c1, c2 …ck} ,参考模型的簇分类是C’={c1’, c2’, …ck’}
a:包含在c中属于相同簇且在c’中也属于相同簇的样本对
b:包含在c中属于相同簇且在c’中不属于相同簇的样本对
c:包含在c中不属于相同簇且在c’中属于相同簇的样本对
d:包含在c中不属于相同簇且在c’中不属于相同簇的样本对
注:由于每个样本对(Xi,Xj)(i<j)仅能出现在一个集合中,所以有a+b+c+d=m(m-1)/2
Jaccard系数\JC
JC=a(a+b+c)
FM指数
FMI=[(a(a+b))(a(a+c))]^1\2
Rand指数
RI=2(a+d)/m(m-1)
说明:以上指标取值均在0-1之间,值越大越好
内部指标
avg©:簇内样本点的平均距离,簇内所有样本点两两之间的距离求和再求均值
diam©:簇内距离最远的两个样本点间的距离
dmin属于不同簇的两个样本点,且两个样本点相比于簇内其他样本点相隔最近,该符号表示的就是满足这样的两点之间的距离
dcen:;两个簇的中心点的距离
DB指数
Dunn指数
说明:DBI越小越好;DI越大越好
2、距离计算\相似度
基本性质:非负性、同一性(当i=j时,dist(xi,xj)=0)、对称性、直递性\三角不等性。
当属性划分可以计算距离的时候是”连续属性“,例如{1,2,3};不可以直接计算距离的时候是“离散属性”,例如{飞机,汽车,火车}
对于连续属性可以用闵可夫斯基计算两个样本点的距离
对于离散属性需要DVM计算两个样本点的距离
闵可夫斯基距离
当p=2时为欧氏距离
当p=1时为曼哈顿距离
DVM
mu,a表示在属性u上取值为a的样本个数
mu,a,i表示在第i个样本簇中属性u上取值为a的样本数
闵可夫斯基可以与VDM结合处理混合属性,将两部分求和,具体可以阅读西瓜书;重要性不同时可以用加权距离计算距离
3、原型聚类
k-means
先看几张图片对该算法有一个直观的认识
这是一个没有标记的样本集,要对它进行聚合,K=2
随机生成两个中心点,也可以用样本点作为初始中心点
根据欧式距离公式,将样本点集合划分给两个不同的中心点。
将中心点移动到同色样本点(同一个颜色属于同一个簇)的均值处;此时完成一轮聚合操作。
和最开始相比,此刻初始中心点已经更新,开始第二次迭代,将数据点全部都清楚类标记,在按照前面三步的操作,进行样本点划分
上图满足了样本中心点不会再更新,即迭代完毕。
通过上面几个图的说明,不难看出K-Means是一个迭代的过程,
优化目标:就是最小化某类的中心点和属于该类的样本点的距离
至于选择K(中心点)的多少,可以按照肘部法则也可以根据实际需要进行设定
肘部法则:横轴是K取值,纵轴为lost function
局部最优(由于算法是迭代的,而且初始样本点的选取不同也会造成最终结果的不同)
学习向量量化LVQ
与K-Means不同的是,LVQ的样本是带有类别标记的
高斯混合聚类
4、密度聚类
####DBSCAN
5、层次聚类
层次聚类在不同层次对数据进行划分,形成树形结构,分为自底向上(聚合)自顶向下(分裂),都需要按照一定的规则进行操作,下面主要以聚合为例进行说明
AGNES采用自底向上的操作进行层次聚类
一开始所有的样本点都是一个类,接下来进行距离相近的类融合成一个新类知道满足K的要求为止。
其中两个类合并需要考虑两个类之间的距离,共有如下三种计算方式
最小距离:属于两个不同类的两个样本点,满足两点距离最近
最大距离:属于两个不同类的两个样本点,满足两点距离最远
均链接:属于两个不同类的任意两个样本点,两两的距离之和除以两个类的样本点个数的乘积。
说明:最小距离由两个簇的最近样本决定,最大距离由两个簇的最远样本决定,平均距离则由两个簇的所有样本决定。
满足最小距离的AGNES算法称为“单链接”算法
满足最大距离的AGNES算法称为“全链接”算法
满足均链接的AGNES算法称为”均链接“算法
例题:
D表示五个样本点的欧氏距离的矩阵
说明:该矩阵是对称阵
首先构建五各类Gi={Xi} i=12345
其中X3和X5距离为1,其他点之间的距离大于1,所以将G3和G5合并成G6={X3,X5}
目前有四个类。接下来继续合并
最小距离是X3X1之间,距离为2
将X1 合并到G6中变成G7={X1,X3,X5}
继续判断距离,X2和X4距离为4小于其特点之间的距离,G8={X2,X4}
所以,如果K为2的话,就是G7,G8两类
最后形成一个树形结构如下图
下面是西瓜书的例子
需要自己计算各个样本之间的距离,书上说采用dmax没有太明白,具体运用在哪个步骤中,后续学习中在更新吧
生成了如上图所示的树形结构,从叶子节点开(k=30)始,不断合并距离最近的聚类簇,最终到达根节点(k=1)
最后:聚类不存在固定的标准,距离计算是很多学习任务的核心技术。