Atitti knn实现的具体四个距离算法  欧氏距离、余弦距离、汉明距离、曼哈顿距离

1. Knn算法实质就是相似度的关系1

1.1. 文本相似度计算在信息检索、数据挖掘、机器翻译、文档复制检测等领域有着广泛的应用1

2. 汉明距离1

2.1. 历史及应用1

3. 曼哈顿距离2

3.1. SimHash + 汉明距离3

3.2. 、简单共有词4

1. Knn算法实质就是相似度的关系

1.1. 文本相似度计算在信息检索、数据挖掘、机器翻译、文档复制检测等领域有着广泛的应用

数据挖掘的过程中,只用用到了相似性(如物品之间的相似性、人之间的聚类等),就会涉及到距离的运用

 

2. 汉明距离

编辑

本词条由“科普中国”百科科学词条编写与应用工作项目 审核 。

汉明距离是使用在数据传输差错控制编码里面的,汉明距离是一个概念,它表示两个(相同长度)字对应位不同的数量,我们以d(x,y)表示两个字x,y之间的汉明距离。对两个字符串进行异或运算,并统计结果为1的个数,那么这个数就是汉明距离。

汉明距离是以理查德·卫斯里·汉明的名字命名的。在信息论中,两个等长字符串之间的汉明距离是两个字符串对应位置的不同字符的个数。换句话说,它就是将一个字符串变换成另外一个字符串所需要替换的字符个数。例如:

2.1. 历史及应用

编辑

汉明距离是以理查德·卫斯里·汉明的名字命名的,汉明在误差检测与校正码的基础性论文中首次引入这个概念。在通信中累计定长二进制字中发生翻转的错误数据位,所以它也被称为信号距离。

汉明距离更多的用于信号处理,表明一个信号变成另一个信号需要的最小操作(替换位),实际中就是比较两个比特串有多少个位不一样,简洁的操作时就是两个比特串进行异或之后包含1的个数。汉明距在图像处理领域也有这广泛的应用,是比较二进制图像非常有效的手段。计算一个数字的比特位包含1的个数有个小技巧:value &= value - 1这个运算的结果就是把value最后一个1去掉,循环进行运算直到value等于0(所有的1都被去掉)就可以知道vaule拥有多少个1了。其在包括信息论、编码理论、密码学等领域都有应用。但是,如果要比较两个不同长度的字符串,不仅要进行替换,而且要进行插入与删除的运算,在这种场合下,通常使用更加复杂的编辑距离等算法。

3. 曼哈顿距离

编辑

本词条缺少名片图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!

是由十九世纪的赫尔曼·闵可夫斯基所创词汇 ,是种使用在几何度量空间的几何学用语,用以标明两个点在标准坐标系上的绝对轴距总和。

出租车几何或曼哈顿距离(Manhattan Distance)是由十九世纪的赫尔曼·闵可夫斯基所创词汇 ,是种使用在几何度量空间的几何学用语,用以标明两个点在标准坐标系上的绝对轴距总和。图中红线代表曼哈顿距离,绿色代表欧氏距离,也就是直线距离,而蓝色和黄色代表等价的曼哈顿距离。曼哈顿距离——两点在南北方向上的距离加上在东西方向上的距离,即d(i,j)=|xi-xj|+|yi-yj|。对于一个具有正南正北、正东正西方向规则布局的城镇街道,从一点到达另一点的距离正是在南北方向上旅行的距离加上在东西方向上旅行的距离,因此,曼哈顿距离又称为出租车距离。曼哈顿距离不是距离不变量,当坐标轴变动时,点间的距离就会不同。曼哈顿距离示意图在早期的计算机图形学中,屏幕是由像素构成,是整数,点的坐标也一般是整数,原因是浮点运算很昂贵,很慢而且有误差,如果直接使用AB的欧氏距离(欧几里德距离:在二维和三维空间中的欧氏距离的就是两点之间的距离),则必须要进行浮点运算,如果使用AC和CB,则只要计算加减法即可,这就大大提高了运算速度,而且不管累计运算多少次,都不会有误差。

曼哈顿距离的命名原因是从规划为方型建筑区块的城市(如曼哈顿)间,最短的行车路径而来(忽略曼哈顿的单向车道以及只存在于3、14大道的斜向车道)。任何往东三区块、往北六区块的的路径一定最少要走九区块,没有其他捷径。

3.1. SimHash + 汉明距离

simhash是谷歌发明的算法,据说很nb,可以将一个文档转换成64位的字节,然后我们可以通过判断两个字节的汉明距离就知道是否相似了。

5、Jaccard相似性系数

Jaccard 系数,又叫Jaccard相似性系数,用来比较样本集中的相似性和分散性的一个概率。Jaccard系数等于样本集交集与样本集合集的比值,即J = |A∩B| ÷ |A∪B|。

说白了就是交集除以并集,两个文档的共同都有的词除以两个文档所有的词

6、欧几里得距离

欧几里得距离是用得非常广的公式,设A(x1, y1),B(x2, y2)是平面上任意两点那么两点间的距离距离(A,B)=平方根((x1-x2...)^2+(y1-y2....)^2)

我们可以拿两个文档所有的词(不重复)在A文档的词频作为x,在B文档的作为y进行计算。

同样拿A=你是个坏人、B=小明是个坏人 这两句话作为例子,词频分别为A={1 0 1 1} 、B={0 1 1 1}。

那么距离为根号2,≈ 1.414(余3位)

然后可以通过1 ÷ (1 + 欧几里德距离)得到相似度。

3.2. 、简单共有词

通过计算两篇文档共有的词的总字符数除以最长文档字符数来评估他们的相似度。

假设有A、B两句话,先取出这两句话的共同都有的词的字数然后看哪句话更长就除以哪句话的字数。

同样是A、B两句话,共有词的字符长度为4,最长句子长度为6,那么4/6,≈0.667。

文本相识度算法(余弦相似性、简单共有词、编辑距离、SimHash、汉明距离、Jaccard相似性系数、欧几里得距离、曼哈顿距离 ) - 飘过的春风2015 - 博客频道 - CSDN.NET.html

文本相识度算法(余弦相似性、简单共有词、编辑距离、SimHash、汉明距离、Jaccard相似性系数、欧几里得距离、曼哈顿距离 ) - 飘过的春风2015 - 博客频道 - CSDN.NET.html

作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 )

汉字名:艾提拉(艾龙),   EMAIL:1466519819@qq.com

转载请注明来源: http://blog.csdn.net/attilax

Atiend

Atitti knn实现的具体四个距离算法 欧氏距离、余弦距离、汉明距离、曼哈顿距离相关推荐

  1. 机器学习中的数学——距离定义(二):曼哈顿距离(Manhattan Distance)

    分类目录:<机器学习中的数学>总目录 相关文章: · 距离定义:基础知识 · 距离定义(一):欧几里得距离(Euclidean Distance) · 距离定义(二):曼哈顿距离(Manh ...

  2. 【算法,数学知识】曼哈顿距离

    关于曼哈顿距离,假设有两个点 那么曼哈顿距离就是: 这个曼哈顿距离是一个交叉信息项,也就是知道一个点,是无法求出这个值的.也就是需要 O(N ^ 2). 那么如何降低求的时间复杂度呢,曼哈顿距离有一个 ...

  3. 机器学习几种距离比较:欧拉距离(Euclidean Distance)、曼哈顿距离(Manhattan Distance)和明可夫斯基距离(Minkowski Distance)

    1.欧拉距离 二维: 三维: 一般地, 简写为: 2.曼哈顿距离 3.明可夫斯基距离 对比欧拉距离和曼哈顿距离, 将欧拉距离公式中根号写成1/2形式, 改写成相似形式有, 由距离的相似性,可写成一般形 ...

  4. 曼哈顿距离最小生成树与莫队算法(总结)

    曼哈顿距离最小生成树与莫队算法(总结) 1 曼哈顿距离最小生成树 曼哈顿距离最小生成树问题可以简述如下:  给定二维平面上的N个点,在两点之间连边的代价为其曼哈顿距离,求使所有点连通的最小代价.  朴 ...

  5. BZOJ3170: [Tjoi2013]松鼠聚会(切比雪夫距离转曼哈顿距离)

    Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 1524  Solved: 803 [Submit][Status][Discuss] Descrip ...

  6. 曼哈顿距离(Manhattan Distance )详解

    概念 曼哈顿距离--两点在南北方向上的距离加上在东西方向上的距离,即d(i,j)=|xi-xj|+|yi-yj|.对于一个具有正南正北.正东正西方向规则布局的城镇街道,从一点到达另一点的距离正是在南北 ...

  7. 欧几里得距离和曼哈顿距离

    在k-means或kNN,我们常用欧氏距离来计算最近的邻居之间的距离,有时也用曼哈顿距离,请对比下这两种距离的差别. 欧式距离 曼哈顿距离 可以定义曼哈顿距离的正式意义为L1-距离或城市区块距离,也就 ...

  8. 文本匹配相似度计算---多种距离算法 ,多种相似度计算算法,一看就懂

    常见的距离算法和相似度(相关系数)计算方法 1.常见的距离算法 1.1欧几里得距离(Euclidean Distance) 欧氏距离是最易于理解的一种距离计算方法,源自欧氏空间中两点间的距离公式. ( ...

  9. 机器学习中的数学——距离定义(九):测地距离(Geodesic Distance)

    分类目录:<机器学习中的数学>总目录 相关文章: · 距离定义:基础知识 · 距离定义(一):欧几里得距离(Euclidean Distance) · 距离定义(二):曼哈顿距离(Manh ...

  10. 系统学习机器学习之距离的度量(一)--常见距离

    原文: http://www.cnblogs.com/ronny/p/4080442.html 1. 欧氏距离 欧氏距离是最常见的两点之间或多点之间的距离表示法,又称之为欧几里得度量,它定义于欧几 ...

最新文章

  1. Java swing是什么?有什么作用?
  2. java 简单实现上传 | commons-fileupload
  3. SparkSql常用命令操作
  4. 大学python笔记_Python 上手笔记
  5. 阿里摩酷实验室计算机视觉团队校园招聘
  6. Android官方技术文档翻译——ApplicationId 与 PackageName
  7. ajax请求头cookies中传递sid,跨域请求单点登录,登录成功,但是在controller中获取的cookie与浏览器中不一致,请大神指点一二。^_^...
  8. c++ 开方_20款丨空调控制系统的三种打开方式
  9. 【经验分享】卡方检验实战--检验次日留存率与用户分类的独立性
  10. SNIFFER(嗅探器)-简介(zt)
  11. 计算机伦理学理论分析三大思想,人工道德能动性的三种反驳进路及其价值
  12. Hex Fiend——mac 下 WinHex的完美替代
  13. (Get the office2019)Download Office Tool
  14. 数学基础知识总结 —— 9. 什么是拉格朗日乘数法(Lagrange Multiplier,有约束条件的多元函数求极值)
  15. 60个相见恨晚的神器工具
  16. 7-3 狡猾的财主,个人思路及解答
  17. 两种实现多线程的方式 迅雷案列
  18. 行星轨迹制作_探知宇宙!八大行星手工制作,和孩子一起探索宇宙奥秘,宝宝妈收 !(附教程)...
  19. 嵌入式系统下Microwindows的实现
  20. linux升级NTP

热门文章

  1. 串级pid算法c语言实现,【开源】分享一个经典的串级PID算法,附源代码
  2. VirtualBox网络NAT模式的端口映射设置
  3. Linux进程管理工具
  4. ECharts-第一篇最简单的应用
  5. 洛谷 P1168 中位数(优先队列)
  6. MySQL数据库学习2 - 数据库的操作
  7. linux /windows 基础篇
  8. MyBatis:Pagehelper分页
  9. MS SQL的某一数据库成了Single User模式
  10. 仔细看看Javascript中的逻辑与()和逻辑或(||)