为了账号安全,请及时绑定邮箱和手机立即绑定

如何度量数据的相似性和相异性?

标签:
人工智能

什么是数据的相似性和相异性?

在数据挖掘或者机器学习中,在确定适用的算法模型之后,就应该使得数据也能适用于我们所建立的算法模型。不妨假设我们的数据为适用于无监督算法的数据,即作为XX,其中XX的每一个记录(每一行)为一个n维数据。在无监督学习时,往往采用的算法为聚类算法、最近邻分类,也可以先采用离群点分析先排除一些离群点,使得数据更加的适用我们的算法。我们希望的是,相似的数据尽可能分为一类,而不相似(也就是相异)的数据尽可能的分为不同类,这时我们就需要一个评判标准来衡量什么数据应该是同一类的,什么数据应该是不同类的,这也就是标题所说的数据的相似性和相异性。

评判标准

1.概念介绍

对于不同类型的属性,若知道其相异性程度,那么也就能够知道其相似性程度,那么,在这里主要研究的是如何计算两个对象之间的相异性问题。
在这里,首先介绍两个基本的概念,即是数据矩阵相异性矩阵
1. 数据矩阵

X=x11x21⋯xm1x12x22⋯xm2⋯⋯⋱⋯x1nx2n⋯xmn(1)(1)X=[x11x12x1nx21x22x2nxm1xm2xmn]


2.  相异性矩阵
在上述的数据矩阵中,有m个对象,一行表示一个对象。在这里,我们用d(i,j)d(i,j)表示第ii个对象与第jj个对象之间的相异性。这样我们就可以得到相异性矩阵

D=0d(2,1)d(3,1)⋯d(m,1)0d(3,2)⋯d(m,2)0⋮⋯0⋯0(2)(2)D=[0d(2,1)0d(3,1)d(3,2)00d(m,1)d(m,2)0]


同样的,由于相似性和相异性是对立的,即可由式子sim(i,j)=1−d(i,j)sim(i,j)=1d(i,j)得到相似性矩阵。


2.具体属性相异性计算

针对不同类型的属性,计算对象之间的相异性有着不同的方法。属性一般分为标称属性、二元属性、数值属性、混合属性。
1. 标称属性
两个或者多个状态,并且这些状态之间是“平等”的关系,如性别、颜色。可以用不匹配率来计算相异性,即

d(i,j)=p−mp(3)(3)d(i,j)=pmp


其中p表示标称属性的个数,m表示标称属性中属性值不相同的个数。
通俗些说也就是属性值不相同的的属性个数占了所有属性个数的比例。
2. 二元属性
二元属性分为两种,分别是对称属性和非对称属性。二者的区别在于属性值的重要性是否一样,一样的即为对称属性,如性别即是标称属性又是对称属性。
由于二元属性仅有两个取值,非0即1。不妨假设所有的二元属性都具有相同的权重,那么可用一个两行两列的列联表表示两个对象的关系。如下:



10sum
1qrq+r
0sts+t

q+sr+tp

其中p=q+r+s+tp=q+r+s+t
-对称属性(一样重要):

d(i,j)=r+sp(4)(4)d(i,j)=r+sp


-非对称属性(不一样重要):

d(i,j)=r+sr+s+q(5)(5)d(i,j)=r+sr+s+q


3. 数值属性
对于数值属性的数据,为连续型数据,这样我们便不能通过上述的两种方法去计算相异性矩阵。又因为对于不同的数值属性,其数值的范围可能相差较大,有的区间长度很小,有的区间长度却很大,这时我们应对数值属性做规范化处理,使得所有的数值属性都在某一个相同的区间内,这使得每一个数值属性都具有相同的权重。通常,数值属性规范化到区间[-1,1]或者[0,1]。接下来,假设数据已做规范化处理。


为了计算数值属性的相异性,我们常使用一些距离度量。常见的距离度量如下:

  • 欧几里得距离

    d(i,j)=(xi1−xj1)2+(xi2−xj2)2+⋯+(xin−xjn)2−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−√(6)(6)d(i,j)=(xi1xj1)2+(xi2xj2)2++(xinxjn)2

  • 曼哈顿距离

    d(i,j)=|xi1−xj1|+|xi2−xj2|+⋯+|xin−xjn|(7)(7)d(i,j)=|xi1xj1|+|xi2xj2|++|xinxjn|

  • 闵科夫斯基距离

    d(i,j)=|xi1−xj1|h+|xi2−xj2|h+⋯+|xin−xjn|h−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−√h(8)(8)d(i,j)=|xi1xj1|h+|xi2xj2|h++|xinxjn|hh

  • 上确界距离

    d(i,j)=maxfn|xif−xjf|(9)(9)d(i,j)=maxfn|xifxjf|

上述给出了四个计算数值属性相异性的方法,那么在何种时候使用哪种度量方法呢?
在这里我认为的是,欧几里得距离和曼哈顿距离是其他距离的一个基础,在数据挖掘过程中,若要计算数值属性的相异性推荐的是计算欧几里得距离和曼哈顿距离。数学专业的朋友应该清楚,我们这里所说的欧几里得距离就是向量的2范数,而曼哈顿距离其实就是向量的1范数。
4. 序列属性
序列属性,即是属性值具有有意义的序或排位,或者说是level不一样。如small、medium、large。
不妨假设序列属性ff有m个取值,即对应着m个等级。则用rif∈{1,2,⋯,m}rif{1,2,,m}取代xifxif,这样我们就能将序列属性的数据矩阵XX转换为新的数据矩阵RR
通过下式可以将R中数据标准化到[0,1]上。

zif=rif−1m−1(10)(10)zif=rif1m1


通过上述处理,我们可以将序列属性转换成数值属性,再通过数值属性计算相异性的方法去计算序列属性的相异性。
5. 混合属性
对于混合属性,也是我们在进行数据挖掘时常遇到的属性,对于这种属性计算相异性的方法是将非数值属性的属性转化为数值属性,再将其规范化到相同的区间上,利用数值属性的计算相异性的方法进行求解。


3.余弦相似性

在这里介绍一种常用于计算文档相似性的方法。
每一篇文档都可以用一个词频向量表示,即以某个词出现的次数作为其词频向量的分量。不妨假设xx,yy为两篇文档的词频向量,为了比较两篇文章相似性,有如下方法:

sim(x,y)=x⋅y||x|| ||y||(11)(11)sim(x,y)=xy||x|| ||y||


在数学中,上述式子用于计算两个向量的余弦值cosθcosθ,这与传统的距离度量不一样,不遵循测量测度,故将之称为非度量测度。

原文出处

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消