读书笔记 -- 005_数据挖掘_度量数据的相似性和相异性

来源:互联网 发布:苹果mac笔记本切换系统 编辑:程序博客网 时间:2024/05/17 19:17

1、概述
相似性和相异性都成为邻近性(Proximity)。相似性和相异性是有关联的。典型地,如果两个对象i和j不相似,则他们的相似性度量将返回0。

2、数据矩阵和相异性矩阵
假设我们有n个对象,每个对象由p个属性进行刻画。那么得到对象集X = (x1, x2, x3, …. xn) ,对象xi的属性集为 P = (pi1, pi2, pi3 … pip) , 1 < i < n。

数据矩阵(data matrix)

或称对象-属性结构。这种数据结构用关系表的形式或 n x p(n个对象 x p个属性)矩阵存放n个数据对象:
图--数据矩阵

相异性矩阵(dissimilarity matrix)

或称对象-对象结构。存放n个对象两两之间的邻近度,通常用一个n x n矩阵表示:
图--相异性矩阵
其中d(i, j)是对象i和对象j之间的相异性值。一般而言,d(i, j)是一个非负的数值。相似性可以表示成相异性度量的函数:sim(i, j) = 1 – d(i, j)。

数据矩阵由两种实体或者“事物”组成,即行(代表对象)和列(代表属性)。因而,数据矩阵经常被称之为二模(two mode)矩阵。相异性矩阵只包含一类实体,因此被称之为一模(one mode)矩阵。许多聚类和最邻近算法都在相异性矩阵上运行。在使用这些算法之前,可以把数据矩阵转换成相异性矩阵。

3、标称属性的邻近性度量
标称属性可以去两个或者多个状态,类似于java语言中的枚举类型。设一个标称属性的状态的数目是M。这些状态可以用字母、数字或者一组整数表示。注意这些整数只是用于数据处理,并不代表任何特定的顺序。两个对象i和j之间的相异性可以根据不匹配率来计算:
d(i, j) = (p - m)/p
其中,m是匹配的数目(即i和j取值相同状态的属性值),而p是刻画对象的属性总数。我们可以通过赋予m较大的权重,或者赋给有多状态的属性的匹配更大的权重来增加m的影响。
这里写图片描述

例如:因为表1中只有Test-1的数据类型是标称型的,于是我们得到相异矩阵:
这里写图片描述

标称属性刻画的对象之间的邻近性也可以使用编码方案计算。标称属性可以按以下方法用非对称的二元属性编码:对M种状态的每个状态创建一个新的二元属性。对于一个具有给定状态值得对象,对应于该状态的二元属性值为1,而其余的二元属性值都设置为0。

4、 二元属性的邻近性度量
我们考察用对称和非对称的二元属性刻画对象间的相异性和相似性度量。二元属性的状态只有两种:0和1,其中0表示该属性不出现,1表示该属性出现。像对待数值一样来处理二元属性会误导。因此,要采用特定的方法来计算二元数据的相异性。

一种方法涉及由给定的二元数据计算相异性矩阵。如果所有的二元都被看作具有相同的权重,则我们得到一个二元属性的列联表(表2),其中q是对象i和j都取1的属性数,r是对象i取1、在对象j取0的属性数,s是对象i取0、对象j取1的属性数,t是对象i和对象j都取0的属性数。属性的总数是p。其中p = q + r + s + t 。
这里写图片描述

对称的二元属性

对于对称的二元属性,每个状态都同样重要。基于对称二元属性的相异性称作对称的二元相异性。如果对象i和j都用对称的二元属性刻画,则对象i和j的相异性为:
这里写图片描述

非对称的二元属性

非对称的二元属性的两种状态不是同等重要的。给定两个非对称的二元属性,两个都取1的情况(正匹配)被认为比两个都取0的情况(负匹配)更有意义。因此,这样的二元属性经常被认为是“一元”的(只有一种状态)。基于这种属性的相异性被称之为非对称的二元相异性,其中负匹配t被认为是不重要的,因此在计算中被忽略,如下所示:

这里写图片描述

互补地,我们可以基于相似性而不是基于相异性来度量两个二元属性的差别。例如,对象i和j之间的非对称的二元形似性可以用下式来计算:
这里写图片描述

例:假设一个患者记录表(表3—用二元属性描述的患者记录的关系表)包含属性name、gender、fever、cougn、test-1、test-2、test-3和test-4,其中name是对象标识符,gender是对称属性,其他的是非对称属性。
这里写图片描述
对于非对称属性,值Y(yes)和P(position)被设置成1,值N(no或者negative)被设置成0。假设对象(患者)之间的距离只是基于非对称属性来计算。那么,三个患者俩俩之间的距离(相异性)如下:
这里写图片描述

5、数值属性的相异性:闵科夫斯基距离

欧几里得距离

即,直线或者“乌鸦飞行”距离。令i = (xi1, xi2, ….. , xip)和j = (xj1, xj2, ….. , xjp)是两个被p个数值属性描述的对象。对象i和j之间的欧几里得距离定义为:
这里写图片描述
曼哈顿(或城市块距离)距离,曼哈顿距离定义为:
d(i, j) = |xi1 – xj1| + |xi2 – xj2| + …. + |xip - xjp|

欧几里得距离和曼哈顿距离有如下数学性质:
非负性 : d(i, j) >= 0 距离是一个非负的数值;
同一性 : d(i, j) == 0 对象到自身的距离为0;
对称性 : d(i, j) = d(j, i) 距离是一个对称函数;
三角不等式 :d(i, j) <= d(i, k) + d(k, j) 从对象i到对象j的直接距离不会大于途径任何其他对象k的距离。
满足这些条件的测度(measure)称作度量(metric)。

闵科夫斯基距离(Minkowski distance)是欧几里得距离和曼哈顿距离的推广,定义为:

这里写图片描述
在某些文献中这种距离被称之为Lp 范数(norm)。当p = 1时,它表示曼哈顿距离;当p = 2时,它表示欧几里得距离。

上确界距离

又称之为Lmax ,L∞ 范数和切比雪夫(Chebyshev)距离。是h→∞时闵科夫斯基的推广。定义为:
这里写图片描述
L∞ 范数也称之为一致范数。

如果对每个变量根据其重要性赋予一个权重,则加权的欧几里得距离可以用下式计算:
这里写图片描述

6、混合类型属性的相异性
在许多实际的数据库中,对象被混合类型的属性描述。一般来说,一个数据库可能包含标称的、对称二元的、非对称二元的、数值的和序数的数据类型。那么,如何计算这些由混合数据类型刻画的对象之间的相异性呢 ?一种可取的办法是将所有的属性一起处理,只做一次分析。一种这样的技术将不同的属性组合在单个相异性矩阵中表,把所有有意义的属性转换到共同的区间[0.0, 1.0]。

这里写图片描述

0 1