通常,具有若干属性的对象之间的邻近度用单个属性的邻近度的组合来定义,因此我们首先讨论具有单个属性的对象之间的邻近度。考虑由一个标称属性描述的对象,对于两个这样的对象,相似意味什么呢?由于标称属性只携带了对象的相异性信息,因此我们只能说两个对象有相同的值,或者没有。因而在这种情况下,如果属性值匹配,则相似度定义为1,否则为0;相异度用相反的方法定义:如果属性值匹配,相异度为0,否则为1。

对于具有单个序数属性的对象,情况更为复杂,因为必须考虑序信息。考虑一个在标度{poor, fair, OK, good, wonderful}上测量产品(例如,糖块)质量的属性。一个评定为wonderful的产品P1与一个评定为good的产品P2应当比它与一个评定为OK的产品P3更接近。为了量化这种观察,序数属性的值常常映射到从0或1开始的相继整数,例如,{poor = 0, fair =1, OK = 2, good = 3, wonderful = 4}。于是,P1与P2之间的相异度d(P1, P2) = 3   2 = 1,或者,如果我们希望相异度在0和1之间取值,d(P1, P2) = (3   2)/4 = 0.25;序数属性的相似度可以定义为s = 1   d。

序数属性相似度(相异度)的这种定义可能使读者感到有点担心,因为这里我们定义了相等的区间,而事实并非如此。如果根据实际情况,我们应该计算出区间或比率属性。值fair与good的差真和OK与wonderful的差相同吗?可能不相同,但是在实践中,我们的选择是有限的,并且在缺乏更多信息的情况下,这是定义序数属性之间邻近度的标准方法。

对于区间或比率属性,两个对象之间的相异性的自然度量是它们的值之差的绝对值。例如,我们可能将现在的体重与一年前的体重相比较,说"我重了10磅。"在这类情况下,相异度通常在0和 之间,而不是在0和1之间取值。如前所述,区间或比率属性的相似度通常转换成相异度。

表2-7总结了这些讨论。在该表中,x和y是两个对象,它们具有一个指明类型的属性,d(x, y)和s(x, y)分别是x和y之间的相异度和相似度(分别用d和s表示)。其他方法也是可能的,但是表中的这些是最常用的。

表2-7  简单属性的相似度和相异度

闵可夫斯基距离(Minkowski distance)来推广:

 

其中r是参数。下面是闵可夫斯基距离的三个最常见的例子。

r = 1,城市街区(也称曼哈顿、出租车、L1范数)距离。一个常见的例子是汉明距离(Hamming distance),它是两个具有二元属性的对象(即两个二元向量)之间不同的二进制位个数。

r = 2,欧几里得距离(L2范数)。

r =  ,上确界(Lmax或L 范数)距离。这是对象属性之间的最大距离。切比雪夫距离,更正式地,L 距离由公式(2-3)定义:

 

注意不要将参数r与维数(属性数)n混淆。欧几里得距离、曼哈顿距离和上确界距离是对n的所有值(1, 2, 3,...)定义的,并且指定了将每个维(属性)上的差的组合成总距离的不同方法。

通常,文档用向量表示,向量的每个属性代表一个特定的词(术语)在文档中出现的频率。当然,实际情况要复杂得多,因为需要忽略常用词,并使用各种技术处理同一个词的不同形式、不同的文档长度以及不同的词频。

尽管文档具有数以百千计或数以万计的属性(词),但是每个文档向量都是稀疏的,因为它具有相对较少的非零属性值。(文档规范化并不对零词目创建非零词目,即文档规范化保持稀疏性。)这样,与事务数据一样,相似性不能依赖共享0的个数,因为任意两个文档多半都不会包含许多相同的词,从而如果统计0-0匹配,则大多数文档都与其他大部分文档非常类似。因此,文档的相似性度量不仅应当像Jaccard度量一样需要忽略0-0匹配,而且还必须能够处理非二元向量。下面定义的余弦相似度(cosine similarity)就是文档相似性最常用的度量之一。如果x和y是两个文档向量,则

 

其中," "表示向量点积,

例2.18  两个文档向量的余弦相似度  该例计算下面两个数据对象的余弦相似度,这些数据对象可能代表文档向量:

相似度和相异度、常用距离度量、余弦相似度相关推荐

  1. 数据对象与对象之间相似度与相异度的度量

    为方便起见,我们使用术语邻近度(proximity)表示相似性或相异性.由于两个对象之间的邻近度是两个对象对应属性之间的邻近度的函数. 我们首先介绍如何度量仅包含一个简单属性的对象之间的邻近度,然后考 ...

  2. 百面机器学习 #2 模型评估:03 余弦距离和余弦相似度、欧氏距离

    文章目录 余弦相似度 余弦相似度和余弦距离 和欧式距离的比较和关系 余弦距离不是一个严格定义的距离 在模型训练过程中,我们也在不断地评估着样本间的距离,如何评估样本距离也是定义优化目标和训练方法的基础 ...

  3. 大数据学习笔记:距离度量和相似度度量

    文章目录 一.度量 (一)概述 (二)距离度量 1.距离度量概念 2.常用距离度量 (三)相似度度量 1.相似度度量概念 2.常用相似度度量 二.欧式距离 (一)欧氏距离定义 1.二维空间欧式距离 2 ...

  4. 计算欧式距离和余弦相似度

    本文介绍Python计算欧式距离和余弦相似度.为了余弦相似度需要使用欧式距离,我们首先介绍欧式距离. 欧式距离 欧式距离标识两个向量之间的距离,计算公式如下: 欧式距离 = Σ(Ai−Bi)2\sqr ...

  5. 欧式距离、曼哈顿距离、余弦相似度(python代码)

    欧式距离/欧几里得度量(Euclidean Distance) 欧氏距离就是两点之间最短的直线距离. (1)二维空间里A.B两点间的欧式距离: SAB=(xA−xB)2+(yA−yB)2S_{AB}= ...

  6. 距离度量与相似度度量

    概述 在分类和聚类任务中,需要用到距离度量评估样本之间的相似度. 距离度量方法需要满足:1)样本到自身的距离为0:2)距离满足非负性:3)对称性,即A到B的距离与B到A的距离相同:4)三角形法则,即两 ...

  7. 余弦欧式距离matlab,余弦相似度和欧几里得距离

    1.余弦相似度 同过两个向量的夹角的余弦值来判断两个向量的相似度. 余弦值取值[-1,1],越接近1,两向量夹角越小,越相似. 图片.png 二维公式: 图片.png n维公式: 图片.png 存在的 ...

  8. 计算特征矩阵之间的余弦距离(余弦相似度)

    转自两矩阵各向量余弦相似度计算操作向量化.md - 苏轶然 - 博客园 (cnblogs.com)https://www.cnblogs.com/suanec/p/9121092.html 对A,B矩 ...

  9. 数据挖掘之-简单属性之间的相似度和相异度

    通常,具有若干属性的对象之间的邻近度用单个属性的邻近度的组合来定义. 首先了解什么是标称属性: 标称意味"与名称相关".标称属性(nominal attribute)的值是一些符号 ...

最新文章

  1. ASP.NET编译执行常见错误及解决方法汇总之一
  2. vscode+MinGW+cmake设置轻量ide
  3. 计算字符串相似度算法—Levenshtein
  4. VC++初步实现保存数据为音频WAV文件
  5. 本地连接出来的很慢解决方法
  6. 我对CTO的理解 CTO要有技术魅力[转载]
  7. Unity3D实践1:摄像机跟随
  8. Android 高级面试-2:IPC 相关
  9. 【Three.js】模型抗锯齿处理
  10. 鸟哥的linux的私房菜基础学习篇,鸟哥的Linux私房菜 基础学习篇-鸟哥.pdf
  11. 怎么修改PDF文件中的图片以及文字
  12. centos查询mysql端口被占用_centos查看端口占用情况
  13. 劳务派遣人员是否有加班费
  14. c语言读取ascii文件,C++对ASCII文件的读写操作
  15. ultron,奥创,ultron官网,奥创官网,奥创中国区官网,ultron中国区官网,奥创公链,ultron公链,ulx,ultron奥创,海洋renhe333333
  16. 统计|如何理解多元线性回归的F检验的作用与目的
  17. 中国石油大学(北京)-《中国近现代史纲要》第二阶段在线作业
  18. git commit 规范及 changelog
  19. 用Python+ChatGPT
  20. Win10系统双硬盘安装Ubuntu18.04心得

热门文章

  1. 1036 跟奥巴马一起编程 (15分)——16行代码AC
  2. 【GIF动画+完整可运行源代码】C++实现 希尔排序——十大经典排序算法之四
  3. 24行代码AC_蓝桥杯2019省赛 试题 D: 数的分解
  4. cobbler网络装机
  5. Linux PXE批量网络装机与Kickstart 无人值守安装
  6. python僵尸进程和孤儿进程_python中多进程应用及僵尸进程、孤儿进程
  7. c语言简单的模拟坐标,C语言模拟实现简单扫雷游戏
  8. react dispatch_React纯Hooks状态管理探索
  9. 运用python的方式_六、python 方法的使用
  10. 树莓派是python的应用领域吗_树莓派为什么采用python语言为主要开发语言?