什么是数据的相似性和相异性?
在数据挖掘或者机器学习中,在确定适用的算法模型之后,就应该使得数据也能适用于我们所建立的算法模型。不妨假设我们的数据为适用于无监督算法的数据,即作为
评判标准
1.概念介绍
对于不同类型的属性,若知道其相异性程度,那么也就能够知道其相似性程度,那么,在这里主要研究的是如何计算两个对象之间的相异性问题。
在这里,首先介绍两个基本的概念,即是数据矩阵和相异性矩阵。
1. 数据矩阵
2. 相异性矩阵
在上述的数据矩阵中,有m个对象,一行表示一个对象。在这里,我们用
同样的,由于相似性和相异性是对立的,即可由式子
2.具体属性相异性计算
针对不同类型的属性,计算对象之间的相异性有着不同的方法。属性一般分为标称属性、二元属性、数值属性、混合属性。
1. 标称属性
两个或者多个状态,并且这些状态之间是“平等”的关系,如性别、颜色。可以用不匹配率来计算相异性,即
其中p表示标称属性的个数,m表示标称属性中属性值不相同的个数。
通俗些说也就是属性值不相同的的属性个数占了所有属性个数的比例。
2. 二元属性
二元属性分为两种,分别是对称属性和非对称属性。二者的区别在于属性值的重要性是否一样,一样的即为对称属性,如性别即是标称属性又是对称属性。
由于二元属性仅有两个取值,非0即1。不妨假设所有的二元属性都具有相同的权重,那么可用一个两行两列的列联表表示两个对象的关系。如下:
| 1 | 0 | sum | |
|---|---|---|---|
| 1 | q | r | q+r |
| 0 | s | t | s+t |
| q+s | r+t | p |
其中
-对称属性(一样重要):
-非对称属性(不一样重要):
3. 数值属性
对于数值属性的数据,为连续型数据,这样我们便不能通过上述的两种方法去计算相异性矩阵。又因为对于不同的数值属性,其数值的范围可能相差较大,有的区间长度很小,有的区间长度却很大,这时我们应对数值属性做规范化处理,使得所有的数值属性都在某一个相同的区间内,这使得每一个数值属性都具有相同的权重。通常,数值属性规范化到区间[-1,1]或者[0,1]。接下来,假设数据已做规范化处理。
为了计算数值属性的相异性,我们常使用一些距离度量。常见的距离度量如下:
欧几里得距离
d(i,j)=(xi1−xj1)2+(xi2−xj2)2+⋯+(xin−xjn)2−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−√(6) 曼哈顿距离
d(i,j)=|xi1−xj1|+|xi2−xj2|+⋯+|xin−xjn|(7) 闵科夫斯基距离
d(i,j)=|xi1−xj1|h+|xi2−xj2|h+⋯+|xin−xjn|h−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−√h(8) 上确界距离
d(i,j)=maxfn|xif−xjf|(9)
上述给出了四个计算数值属性相异性的方法,那么在何种时候使用哪种度量方法呢?
在这里我认为的是,欧几里得距离和曼哈顿距离是其他距离的一个基础,在数据挖掘过程中,若要计算数值属性的相异性推荐的是计算欧几里得距离和曼哈顿距离。数学专业的朋友应该清楚,我们这里所说的欧几里得距离就是向量的2范数,而曼哈顿距离其实就是向量的1范数。
4. 序列属性
序列属性,即是属性值具有有意义的序或排位,或者说是level不一样。如small、medium、large。
不妨假设序列属性
通过下式可以将R中数据标准化到[0,1]上。
通过上述处理,我们可以将序列属性转换成数值属性,再通过数值属性计算相异性的方法去计算序列属性的相异性。
5. 混合属性
对于混合属性,也是我们在进行数据挖掘时常遇到的属性,对于这种属性计算相异性的方法是将非数值属性的属性转化为数值属性,再将其规范化到相同的区间上,利用数值属性的计算相异性的方法进行求解。
3.余弦相似性
在这里介绍一种常用于计算文档相似性的方法。
每一篇文档都可以用一个词频向量表示,即以某个词出现的次数作为其词频向量的分量。不妨假设
在数学中,上述式子用于计算两个向量的余弦值
共同学习,写下你的评论
评论加载中...
作者其他优质文章