1.可以实现聚类的算法大概有这么多:
K-means系列的:K-means,K-means++,K_means||,canopy,mini Batch K-means
密度聚类:
层次聚类:
谱聚类:
2.相似度/距离表示:
2.1 闵可夫斯基距离
两个n维变量a(x11,x12,…,x1n)与 b(x21,x22,…,x2n)间的闵可夫斯基距离定义为:其中p是一个变参数。
当p=1时,就是曼哈顿距离
两个n维向量a(x11,x12,…,x1n)与 b(x21,x22,…,x2n)间的曼哈顿距离
示例图:
当p=2时,就是欧氏距离
- 1. 欧氏距离,最常见的两点之间或多点之间的距离表示法,它定义于欧几里得空间中,如点 x = (x1,...,xn) 和 y = (y1,...,yn) 之间的距离为:
当p→∞时,就是切比雪夫距离
证明过程如下:
注:
1.闵可夫斯基距离比较直观,但是它与数据的分布有关,如果 x 方向的幅值远远大于 y 方向的值,这个距离公式就会过度放大 x 维度的作用。
2.离散属性不能直接在属性值上计算闵式距离
2.2 标准化欧氏距离 标准化欧氏距离是针对简单欧氏距离的缺点而作的一种改进方案。标准欧氏距离的思路:既然数据各维分量的分布不一样,那先将各个分量都“标准化”到均值、方差相等。
经过简单的推导就可以得到两个n维向量a(x11,x12,…,x1n)与 b(x21,x22,…,x2n)间的标准化欧氏距离的公式:
如果将方差的倒数看成是一个权重,这个公式可以看成是一种加权欧氏距离(Weighted Euclidean distance)。
2.3 夹角余弦
2.4 KL距离,也叫做相对熵(Relative Entropy)。
它衡量的是相同事件空间里的两个概率分布的差异情况。我们用D(P||Q)表示KL距离,计算公式如下:
当两个概率分布完全相同时,即P(X)=Q(X),其相对熵为0 。我们知道,概率分布P(X)的信息熵为:
虽然KL被称为距离,但是其不满足距离定义的三个条件:1)非负性(满足);2)对称性(不满足);3)三角不等式 (不满足)。
我们以一个例子来说明,KL距离的含义。
假如一个字符发射器,随机发出0和1两种字符,真实发出概率分布为A,但实际不知道A的具体分布。现在通过观察,得到概率分布B与C。各个分布的具体情况如下:
A(0)=1/2,A(1)=1/2
B(0)=1/4,B(1)=3/4
C(0)=1/8,C(1)=7/8
那么,我们可以计算出得到如下:
从分布上也可以看出,实际上B要比C更接近实际分布(因为其与A分布的KL距离更近)。
2.5 杰卡德相似系数(Jaccard similarity coefficient)
(1) 杰卡德相似系数两个集合A和B的交集元素在A,B的并集中所占的比例,称为两个集合的杰卡德相似系数,用符号J(A,B)表示。
杰卡德相似系数是衡量两个集合的相似度一种指标。(2) 杰卡德距离与杰卡德相似系数相反的概念是杰卡德距离(Jaccard distance)。杰卡德距离可用如下公式表示:
杰卡德距离用两个集合中不同元素占所有元素的比例来衡量两个集合的区分度。(3) 杰卡德相似系数与杰卡德距离的应用可将杰卡德相似系数用在衡量样本的相似度上。举例:样本A与样本B是两个n维向量,而且所有维度的取值都是0或1,例如:A(0111)和B(1011)。我们将样本看成是一个集合,1表示集合包含该元素,0表示集合不包含该元素。M11 :样本A与B都是1的维度的个数M01:样本A是0,样本B是1的维度的个数M10:样本A是1,样本B是0 的维度的个数M00:样本A与B都是0的维度的个数依据上文给的杰卡德相似系数及杰卡德距离的相关定义,样本A与B的杰卡德相似系数J可以表示为:
这里M11+M01+M10可理解为A与B的并集的元素个数,而M11是A与B的交集的元素个数。而样本A与B的杰卡德距离表示为J':
- 杰卡德相似系数(Jaccard similarity coefficient)
(1) 杰卡德相似系数两个集合A和B的交集元素在A,B的并集中所占的比例,称为两个集合的杰卡德相似系数,用符号J(A,B)表示。
杰卡德相似系数是衡量两个集合的相似度一种指标。(2) 杰卡德距离与杰卡德相似系数相反的概念是杰卡德距离(Jaccard distance)。杰卡德距离可用如下公式表示:
杰卡德距离用两个集合中不同元素占所有元素的比例来衡量两个集合的区分度。(3) 杰卡德相似系数与杰卡德距离的应用可将杰卡德相似系数用在衡量样本的相似度上。举例:样本A与样本B是两个n维向量,而且所有维度的取值都是0或1,例如:A(0111)和B(1011)。我们将样本看成是一个集合,1表示集合包含该元素,0表示集合不包含该元素。M11 :样本A与B都是1的维度的个数M01:样本A是0,样本B是1的维度的个数M10:样本A是1,样本B是0 的维度的个数M00:样本A与B都是0的维度的个数依据上文给的杰卡德相似系数及杰卡德距离的相关定义,样本A与B的杰卡德相似系数J可以表示为:这里M11+M01+M10可理解为A与B的并集的元素个数,而M11是A与B的交集的元素个数。而样本A与B的杰卡德距离表示为J':
2.6皮尔逊相关系数
3.聚类算法衡量标准:
3.1.均一性:Ki是某个簇,Ci是实际分类,N(Ci==Ki)表示一个簇分类正确的样本,正确分类样本占簇的样本数,又可以称之为正确率;
3.2.完整性:
每个聚簇正确分类样本数占这类样本总数的比例,又称为召回率;
加权平均得:
3.3 Rand index(兰德指数)(RI) 、Adjusted Rand index(调整兰德指数)(ARI)
其中C表示实际类别信息,K表示聚类结果,a表示在C与K中都是同类别的元素对数,b表示在C与K中都是不同类别的元素对数
其中表示数据集中可以组成的对数,RI取值范围为[0,1],值越大意味着聚类结果与真实情况越吻合。
RI越大表示聚类效果准确性越高 同时每个类内的纯度越高
数据集S共有N个元素,两个聚类结果分别为X:{X1,X2……Xr},Y:{Y1,Y2,……Ys},
X和Y的元素个数分别为:a={a1,a2……ar},b={b1,b2……bs},它们之间关系如下图:
其中nij为即属于Xi有属于Yj的。
3.4Normalized Mutual Information (标准互信息)(NMI)、Mutual Information(互信息)(MI)
I(X,Y)越大,说明X,Y信息相似度越高;
标准化互聚类信息都是用熵做分母将MI值调整到0与1之间,一个比较多见的实现是下面所示:
3.5轮廓系数:
计算样本i到同簇其他样本的平均距离ai。ai 越小,说明样本i越应该被聚类到该簇。将ai 称为样本i的簇内不相似度。
簇C中所有样本的a i 均值称为簇C的簇不相似度。
计算样本i到其他某簇Cj 的所有样本的平均距离bij,称为样本i与簇Cj 的不相似度。
定义为样本i的簇间不相似度:bi =min{bi1, bi2, ..., bik}
bi越大,说明样本i越不属于其他簇。
根据样本i的簇内不相似度a i 和簇间不相似度b i ,定义样本i的轮廓系数:
4,判断:
si大于0,说明该样本分类正确(ai<bi);si小于0,说明该样本分类错误( ai>bi );
si越接近1,则说明样本i聚类越合理;
si越接近-1,则说明样本i更应该分类到另外的簇;
若si 近似为0,则说明样本i在两个簇的边界上。
求全部样本si的均值,作为该聚类的评价标准;
5.计算量:
O(N^2),计算量很大;