机器学习算法——聚类2(距离计算)

距离度量需要满足以下性质:

非负性:dist(x_i,x_j) \geqslant 0

同一性:dist(x_i,x_j)=0当且仅当x_i=x_j

对称性:dist(x_i,x_j)=dist(x_j,x_i)

直递性:dist(x_i,x_j) \leqslant dist(x_i,x_k) +dist(x_k,x_j)

给定样本x_i = (x_{i1},x_{i2},...,x_{in})x_j=(x_{j1},x_{j2},...,x_{jn}),最常用的是“闵可夫斯基距离”(Minkowski distance):

dist_{mk}(x_i,x_j) = (\sum_{u=1}^{n} |x_{iu}-x_{ju}|^p)^{\frac{1}{p}}

当p=2时,闵可夫斯基距离即欧氏距离(Euclidean distance)

dist_{ed}(x_i,x_j) = ||x_i-x_j||_2 = \sqrt{\sum_{u=1}^{n}|x_{iu}-x_{ju}|^2}

当p=1时,闵可夫斯基距离即曼哈顿距离(Manhattan distance)

dist_{man}(x_i,x_j)=||x_i-x_j||_1=\sum_{u=1}^{n} |x_{iu}-x_{ju}|

我们常将属性划分为“连续属性”和“离散属性”。前者在定义域上有无穷多个可能的取值,后者在定义域上是有限个取值。然而,在讨论距离计算时,属性是否定义了“序”关系更为重要。例如,

定义域为{1,2,3}能直接在属性值上计算距离:“1”与“2”比较接近,与“3”比较远,这样的属性称为“有序属性”。而定义域为{飞机,火车,轮船}这样的离散属性不能直接在属性值上计算距离,称为“无序属性”。显然,闵可夫斯基距离可用于有序属性

对于无序属性,可采用VDM(Value Difference Metric)。令m_{u,a}表示在属性u上取值为a的样本数,m_{u,a,i}表示在第i个样本簇中在属性u上取值为a的样本数,k为样本簇数,则属性u上两个离散值a与b之间的VDM距离为:

VDM_p(a,b)=\sum_{i=1}^{k} |\frac{m_{u,a,i}}{m_{u,a}}-\frac{m_{u,b,i}}{m_{u,b}}|^p

将闵可夫斯基距离和VDM结合可处理混合属性,假定有n_c个有序属性,n-n_c个无序属性,不失一般性,令有序属性排列在无序属性之前,则:

MinkovDM_p(x_i,x_j) = (\sum_{u=1}^{n_c} |x_{iu}-x_{ju}|^p + \sum_{u=n_c+1}^n VDM_p(x_{iu},x_{ju}))^\frac{1}{p}

当样本空间中不同属性的重要性不同时,可使用“加权距离”,以加权闵可夫斯基距离为例:

dist_{wmk} (x_i,x_j) = (w_1 \cdot |x_{i1}-x_{j1}|^p + ... + w_n \cdot |x_{in}-x_{jn}|^p)^\frac{1}{p}

其中权重w_i\geqslant 0 (i=1,2,...,n)表征不同属性的重要性,通常\sum_{i=1}^{n} w_i =1

通常我们是基于某种形式的距离来定义“相似度度量”,距离越大,相似度越小。然而,用于相似度度量的距离未必一定满足距离度量的所有基本性质,尤其是直递性。这样的距离称为“非度量距离”。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值