聚类算法(一)

聚类任务

 在无监督学习(unsupervised learning)中,训练样本的标记信息是未知的,目标是通过对无标记训练样本的学习来揭示数据的内在性质及规律,为进一步的数据分析提供基础。形式化的表示为:样本集 D={x1,x2...,xm} D = { x 1 , x 2 . . . , x m } 包含 m m 个无标记样本,每个样本 xi=(xi1,xi2,...,xin) x i = ( x i 1 , x i 2 , . . . , x i n ) 是一个 n n 维的特征向量,则聚类算法就是将样本集 D D 划分为 个不相交的簇 {Cl|l=1,2,...,k} { C l | l = 1 , 2 , . . . , k } ,其中 ClCl= C l ′ ⋂ C l = ∅ ll l ′ ≠ l ,且 D=l=1kCl D = ⋃ k l = 1 C l .相应的 λj{1,2,...,k} λ j ∈ { 1 , 2 , . . . , k } 表示 xj x j 簇标记(cluster label),即就是 jCλj x j ∈ C λ j 。于是,聚类觉过可用包含 m m 个元素的簇标记向量 λ=(λ1;λ2;...;λm) λ = ( λ 1 ; λ 2 ; . . . ; λ m ) 表示。

性能度量

聚类性能度量大致分为两类:
1.将聚类模型结果与某个参考模型进行比较,这种称为外部指标
2.直接参考聚类结果而不利用任何参考模型,这种称为内部指标

外部指标

样本集 D={x1,x2...,xm} D = { x 1 , x 2 . . . , x m }
实验模型 C={C1,C2,...,Ck} C = { C 1 , C 2 , . . . , C k }
参考模型 C={C1,C2,...,Cs,} C ∗ = { C 1 ∗ , C 2 ∗ , . . . , C s ∗ , }
λ λ 表示 C C 的簇标记向量
λ λ ∗ 表示 C C ∗ 的标记向量
做一下定义:
a=|SS|={(xi,xj)|λi=λj,λi=λj,i<j} a = | S S | = { ( x i , x j ) | λ i = λ j , λ i ∗ = λ j ∗ , i < j }
b=|SD|={(xi,xj)|λi=λj,λiλj,i<j} b = | S D | = { ( x i , x j ) | λ i = λ j , λ i ∗ ≠ λ j ∗ , i < j }
c=|DS|={(xi,xj)|λiλj,λi=λj,i<j} c = | D S | = { ( x i , x j ) | λ i ≠ λ j , λ i ∗ = λ j ∗ , i < j }
d=|DD|={(xi,xj)|λiλj,λiλj,i<j} d = | D D | = { ( x i , x j ) | λ i ≠ λ j , λ i ∗ ≠ λ j ∗ , i < j }
jaccard系数(Coefficient,简称JC)
JC=aa+b+c J C = a a + b + c
FM指数(Fowlkes and Mallows Index,简称FMI)
FMI=aa+baa+c F M I = a a + b ∗ a a + c
Rand指数(Rand Index,简称RI)
RI=2(a+d)m(m1) R I = 2 ( a + d ) m ( m − 1 )
上述性能衡量的结果值均在 [0,1] [ 0 , 1 ] 区间,值越大越好

内部指标

DB指数
Dunn指数
见博客:https://blog.csdn.net/u012102306/article/details/52423074

距离计算

连续值

标量也就是无方向意义的数字,也叫标度变量。现在先考虑元素的所有特征属性都是标量的情况。例如,计算X={2,1,102}和Y={1,3,2}的相异度。一种很自然的想法是用两者的欧几里得距离来作为相异度,欧几里得距离的定义如下:

d(X,Y)=(x1y1)2+(x2y2)2+...+(xnyn)2 d ( X , Y ) = ( x 1 − y 1 ) 2 + ( x 2 − y 2 ) 2 + . . . + ( x n − y n ) 2 其意义就是两个元素在欧氏空间中的集合距离,因为其直观易懂且可解释性强,被广泛用于标识两个标量元素的相异度。将上面两个示例数据代入公式,可得两者的欧氏距离为:

d(X,Y)=(21)2+(13)2+(1022)2=100.025 d ( X , Y ) = ( 2 − 1 ) 2 + ( 1 − 3 ) 2 + ( 102 − 2 ) 2 = 100.025 除欧氏距离外,常用作度量标量相异度的还有曼哈顿距离和闵可夫斯基距离,两者定义如下:

曼哈顿距离:

d(X,Y)=|x1y1|+|x2y2|+...+|xnyn| d ( X , Y ) = | x 1 − y 1 | + | x 2 − y 2 | + . . . + | x n − y n |

闵可夫斯基距离:

d(X,Y)=|x1y1|p+|x2y2|p+...+|xnyn|pp d ( X , Y ) = | x 1 − y 1 | p + | x 2 − y 2 | p + . . . + | x n − y n | p p

欧氏距离和曼哈顿距离可以看做是闵可夫斯基距离在p=2和p=1下的特例。另外这三种距离都可以加权,这个很容易理解,不再赘述。

下面要说一下标量的规格化问题。上面这样计算相异度的方式有一点问题,就是取值范围大的属性对距离的影响高于取值范围小的属性。例如上述例子中第三个属性的取值跨度远大于前两个,这样不利于真实反映真实的相异度,为了解决这个问题,一般要对属性值进行规格化。所谓规格化就是将各个属性值按比例映射到相同的取值区间,这样是为了平衡各个属性对距离的影响。通常将各个属性均映射到[0,1]区间,映射公式为:


ai=aimin(ai)max(ai)min(ai) a i ′ = a i − m i n ( a i ) m a x ( a i ) − m i n ( a i )

其中max(ai)和min(ai)表示所有元素项中第i个属性的最大值和最小值。例如,将示例中的元素规格化到[0,1]区间后,就变成了X’={1,0,1},Y’={0,1,0},重新计算欧氏距离约为1.732。

离散值

在进行距离度量时,易知连续属性和存在序关系的离散属性都可以直接参与计算,因为它们都可以反映一种程度,我们称其为“有序属性”;而对于不存在序关系的离散属性,我们称其为:“无序属性”,显然无序属性再使用闵可夫斯基距离就行不通了。对于无序属性,我们一般采用VDM进行距离的计算。
VDM见这个博客https://blog.csdn.net/u011826404/article/details/70991604

    原文作者:聚类算法
    原文地址: https://blog.csdn.net/u012123197/article/details/79809744
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞