数据的相似性和相异性的度量
要讨论相似度(similarity)和相异度(dissimilarity),我们先引入一个术语叫邻近度(proximity)。邻近度可以表示相似性或者相异性,相当于是一个总括概念。邻近度度量有很多,比如相关和欧几里得距离(在时间序列这样的稠密数据或者二维点用到)、余弦相似度和Jaccard系数(文档类稀疏数据)。我们接下来简明扼要地来探讨梳理一下。
本文讲解的目录是:
一、相异度
二、相似度
三、邻近性度量实例
四、邻近度计算问题
五、如何选择邻近性度量
一、相异度
距离
我们最属性的距离就是欧几里得距离d。这是我们中学时就用到的。引申到一维、二维、或更高维度的数据空间中也一样适用。它就是表征两个数据(点)之间的差距嘛!所以可以用来表征相异度。
如果一个点有多个属性值,如x={x1,x2...xk}, y={y1,y2...yk},那么他们的欧几里得距离可以表示为:
但是我们到了大学之后,特别是研究生搞科研阶段,不好意思再用这么简单的距离了吧?应该说是要根据问题的形态选取合适的度量(这个我们在本文第5部分深入讲)。所以有些牛人就构造了更牛x的距离表达式,瞬间让你高大上的:
闵可夫斯基距离:
r=1:城市街区距离。比如常见的汉明距离。实际上是表征两个二元向量之间不同的二进制位的个数。二元向量就是具有二元属性的对象,在上一篇博文《数据预处理工作中的几个关键主题探讨:聚集、抽样、降维、变量变换等》中我们讲过如何用二元属性来表征一个数据对象哦!
r=2:欧几里得距离。就是我们上面讲的。也叫L2范数。范数是矩阵论中的内容,若有兴趣可以自学了解一下!也是很有用的。
r=∞:上确界距离。也叫无穷范数。是对象属性之间的最大距离。即表示为:
需要指出的是,距离具有一些通用的性质。
1、非负性。距离肯定是非负数的。
2、对称性。d(x,y)=d(y,x)。
3、三角不等式。即两边之和大于(这里可以等于)第三边!!d(x,z)≤d(x,y)+d(y,z)。
满足这些性质的测度才可以称为度量。但是实践中根据需要我们常常违反这一规定。比如:时间。
比如d(1pm,2pm)=1h,而d(2pm,1pm)=23h,这种定义是有意义的,考虑到了隔天(跨天)的实际情况。但是不符合上面的度量的全部性质。
二、相似度
对于相似度,三角不等式通常不成立,但对称性和非负性通常成立。
用s(x,y)表示相似度。则:
1、s取值范围是[0,1],当且仅当x=y时s=1。
2、s(x,y)=s(y,x)。即对称性。
三、邻近性度量实例
这里我们讨论几种邻近性度量实例,包括二元数据的度量、余弦相似度、非常重要的统计学概念相关性等等。
二元数据的相似性度量——相似系数(similarity coefficient)
设x,y是两个二元向量。记:
f00=x取0且y取0的属性个数;
f01=x取0且y取1的属性个数;
f10=x取1且y取0的属性个数;
f11=x取1且y取1的属性个数。
简单匹配系数(Simple Matching Coefficeient, SMC)
注意到,SMC对属性为0的也进行了技术。而更多时候我们不关心属性记号为0,我们只关心一个对象有什么属性,而不是他不具有什么属性。所以SMC可能更适合0和1标号同等重要的情况,比如判断对错的是非题。
Jaccard系数
对上述问题做了改进:
我们通过一个例子比较二者:
余弦相似度
余弦相似度常使用在文档数据中。它可以忽略0-0的匹配,而且还能够处理非二元的向量。
这个计算就是中学时候求向量夹角一样简单:
只是这里x,y可能是高维的向量,因为机器学习、数据挖掘中,数据的维度都比较高。求法是把对应位置坐标(属性值)相乘后求和、除以模长乘积就可以了。或者先对每个向量做标准化(归一化),然后坐标相乘求和。
有时候判断两个数据是否属于同一类,就用余弦相似度来评价。
广义Jaccard系数
也可以用于文档数据,只是在二元属性情况下则规约为Jaccard系数(上面讲到了)。
该系数用EJ表示:
这样比简单的Jaccard系数扩展了一些,可以适用于非二元属性的简单数据对象情形之中了。
相关性
即皮尔森相关系数:是统计学中非常重要的概念,在数据处理领域也常常用得上。
其中:
相关系数值域[-1,1],1表示完全正相关,-1表示完全负相关。若为0表示两个对象之间不具备线性关系(但可能存在非线性关系)。
需要注意的是,皮尔逊系数只是表达是否具有线性关系!不能完全依赖它作为数据相似性的度量。
四、邻近度计算中几个重要问题
1、当属性具有不同值域?
标准化!都归为[0,1]!
2、当属性具有不同类型?
简单粗暴,把异种属性忽略掉!
3、当属性权重不同?
修改邻近度公式,对每个属性的贡献加权,一般情况下,wk和为1。则上面(2-15)改写为:
闵可夫斯基距离改写为:
4、属性之间相关?
用Mahalanobis距离!
其中,Σ是协方差矩阵。它的第ij个元素是第i个和第j个属性的协方差。
五、如何选择邻近性度量
一言以蔽之,所选择的邻近性度量要与数据类型相对应。比如连续稠密的数据,常常用距离来描述。对于上面讲到的,需要忽略0-0匹配的数据,就可以用余弦相似度或者Jaccard系数。广义的Jaccard系数不仅仅只适用于具备二元属性的对象。等等。
最好是我们在处理这堆数据前先查资料看看前人使用何种度量。如果别人已经论证过哪种度量在哪种算法中好用,就引用他的论证就好了,站在巨人的肩膀上,高瞻远瞩!
感谢您的阅读和对原创分享的支持。
数据的相似性和相异性的度量相关推荐
- 数据挖掘 第二篇:基于距离评估数据的相似性和相异性
聚类分析根据对象之间的相异程度,把对象分成多个簇,簇是数据对象的集合,聚类分析使得同一个簇中的对象相似,而与其他簇中的对象相异.相似性和相异性(dissimilarity)是根据数据对象的属性值评估的 ...
- 数据挖掘基础:度量数据的相似性和相异性
数据矩阵(data matrix)或称对象-属性结构:这种数据结构用关系表的形式或n×p(n个对象×p个属性)矩阵存放n个数据对象: 相异性矩阵(dissimilarity matrix)或称对象- ...
- 相似性和相异性的度量
相似度和相异度简介 相似度(Similarity): 两个数据对象相似程度的数值度量: 对象越相似,值越高: 通常在[0, 1]区间取值. 有时候相似度的取值范围可能在[-1, 1]之间,这时正负号包 ...
- 数据的相似性与相异性矩阵
数据矩阵:对象-属性结构:存放着数据对象 相异性矩阵:对象-对象结构:存放着对象之间的邻近度 一. 相异性矩阵(标称属性) 1.假设我们有表1中的样本数据 表1 样本数据表 对象 标识符 Leng ...
- 七、度量数据的相似性和想异性
1.相似性和想异性度量 度量数据的相似性和相异性主要包括以下方面的内容: 数数据矩阵和相异性矩阵: 标称属性的临近性度量: 二元属性的临近性度量: 数值属性的相异性:闵科夫斯基距离 2 数据矩阵和相异 ...
- 数据科学中 17 种相似性和相异性度量
本文解释了计算距离的各种方法,并展示了它们在我们日常生活中的实例.限于篇幅,便于阅读,将本文分为上下两篇,希望对你有所帮助. "There is no Royal Road to Geome ...
- 【机器学习算法】聚类分析-1 聚类是什么,我们如何确定类别间的相似性或者相异性
目录 聚类分析 聚类的概念 如何衡量两笔数据的相似性 二元变量的相似性的衡量方法 混合类别型变量与数值型变量的的相似性衡量 距离的计算 明天我们在接下来解决剩下两个问题 我的主页:晴天qt01的博客_ ...
- 【机器学习】数据科学中 17 种相似性和相异性度量(上)
本文解释了计算距离的各种方法,并展示了它们在我们日常生活中的实例.限于篇幅,便于阅读,将本文分为上下两篇,希望对你有所帮助. "There is no Royal Road to Geome ...
- 通过相似性或相异指数的数值分布比较群落Beta多样性高低
在基于高通量测序的微生物群落分析中,若提到如何描述不同群落β多样性是否存在差异或者评估组内或组间的差异程度,我们通常可以想到很多方法,这些都是描述群落β多样性特征的常见分析.例如,一般我们首先会基于微 ...
最新文章
- 别让SSL证书暴露了你的网站服务器IP
- 车辆管理系统之开始自己的任务(三)
- SharePoint 2013 APP 开发示例 系列
- limit mysql 性能_MySQL 用 limit 为什么会影响性能?
- Node.js实现Excel转JSON
- 十种排序算法的java汇总
- ES6_类_note
- 使用栈将递归函数转化为非递归函数_栈(Stack)及其应用-Python实现
- 字节跳动最爱考的前端面试题:计算机网络基础
- 踩坑:VScode 集成 eslint 插件
- cad卸载_CAD绘图效率太低?1GCAD逆天插件送给你,用了再也不卸载
- excel表用office2007一保存就闪退
- OpenCore引导配置说明第十四版-基于OpenCore-0.6.7
- web功能测试方法大全——完整!全面!(纯干货,建议收藏哦~)
- html闹钟设置,设置闹钟标签.html
- virtualbox不能桥接的解决办法
- matlab三个坐标,[MATLAB基础] 画有一个有xyz三个坐标的图
- haproxy代理https配置方法【转】
- 全球与中国马铃薯面粉市场深度研究分析报告
- TOR交换机和普通交换机有什么区别?
热门文章
- 解决IDEA src下的目录全部变灰无法运行
- 电商网络支付结算风险与防范
- Androidstudio之TextView点击变色
- 9.ESP32--ADC
- oracle分类账设置,Oracle EBS R12 总帐和子分类账关系详解[转载]
- 【python机器学习】线性回归--梯度下降实现(基于波士顿房价数据集)
- OmniPeek tools install and setting
- 解决Application、Session丢失问题 — ASP.NET Application_End事件
- 上学期c语言作业答案,C语言作业答案4
- 【机器学习中的矩阵分解】LU分解、QR分解、SVD分解