机器学习:余弦距离(Cosine Dsitance)
相关文章链接:算法文章汇总
余弦距离(也称为余弦相似度): 用向量空间中两个向量夹角的余弦值 作为衡量两个个体
间差异的大小的度量。向量:多维空间中有方向的线段,如果两个向量的 方向一致,即夹角接
近零,那么这两个向量就相近 。而要确定两个向量方向是否一致,这就要用到余弦定理计算向
量的夹角。
余弦定理描述了 三角形中任何一个夹角和三个边的关系 。给定三角形的三条边,可以使用余弦定理求出三角形各个角的角度。
假定三角形的三条边为a,b和c,对应的三个角为A,B和C,如下如所示:
那么角A的余弦为:
如果将三角形的 两边b和c看成是两个向量 ,则上述公式等价于:
其中 分母表示两个向量b和c的长度,分子表示两个向量的内积 。
举一个具体的例子,假如新闻X和新闻Y对应向量分别是:
x1, x2, ..., x6400
和
y1, y2, ..., y6400
则,它们之间的余弦距离可以用它们之间夹角的余弦值来表示:
当两条新闻向量夹角余弦等于1时,这两条新闻完全重复(用这个办法可以删除爬虫所收集网页中的重复网页);当夹角的余弦值接近于1时,两条新闻相似(可以用作文本分类);夹角的余弦越小,两条新闻越不相关。
余弦距离使用两个向量夹角的余弦值作为衡量两个个体间差异的大小。 相比欧氏距离,余弦距离更加注重两个向量在方向上的差异。借助三维坐标系来看下欧氏距离和余弦距离的区别:
从上图可以看出,欧氏距离衡量的是空间各点的绝对距离,跟各个点所在的位置坐标直接相关;而余弦距离衡量的是空间向量的夹角,更加体现在方向上的差异,而不是位置。
总体来说,欧氏距离体现数值上的绝对差异,而余弦距离体现方向上的相对差异。
1)例如,统计两部剧的用户观看行为,用户A的观看向量为(0,1),用户B为(1,0);
此时二者的余弦距很大,而欧氏距离很小;
我们分析两个用户对于不同视频的偏好,更关注相对差异,显然应当使用余弦距离。
2)而当我们分析用户活跃度,以登陆次数(单位:次)和平均观看时长(单:分钟)作为特征时
余弦距离会认为(1,10)、(10,100)两个用户距离很近;
但显然这两个用户活跃度是有着极大差异的,此时我们更关注数值绝对差异,应当使用欧氏距离。
总结:在日常使用中需要注意区分,余弦距离虽然不是一个严格意义上的距离度量公式,但是形容两个特征向量之间的关系还是有很大用处的。比如人脸识别,推荐系统等。
注:其他相关文章链接由此进 -> 算法文章汇总
相关文章
- 机器学习十大经典算法之随机森林
- 快速入门Python机器学习(15)
- 【玩转 Cloud Studio】12行代码,入门机器学习
- 7 Papers & Radios | 联邦图机器学习综述;基于知识图谱和分子图的药物筛选模型
- Python机器学习教程—超参数的调整与可视化
- 机器视觉应用方向及学习思路总结
- 机器学习—决策树原理(python代码实现)
- 【Python深度学习之路】-1 机器学习概论
- 10个机器学习中常用的距离度量方法
- 站长'说'轶事:一个不小心踏入了机器学习阵营,真香!
- 宾大机器学习PhD:我是如何从头开始写一篇顶级论文的?
- 本期特别推荐| 机器入门经典项目
- A.机器学习入门算法(九): 基于线性判别模型的LDA手写数字分类识别
- 前沿技术 | 自动机器学习综述
- 机器学习工程师必知的十大算法详解架构师
- Spark入门实战系列–8.Spark MLlib(上)–机器学习及SparkMLlib简介详解大数据
- Linux机器网络IP地址配置(linux机器名ip)
- 机器学习有哪些分类?
- 如何使用 syslog-ng 从远程 Linux 机器上收集日志
- 机器也能自主区分反义词-同义词 ?!
- 美国罗德岛大学杨庆教授:如何把机器学习技术应用于数据存储系统? | CCF-ADL 火热报名中
- 纽约警方又部署了一只来自波士顿动力的机器警犬
- 嘿灯提供了一种声音模块,让机器之间不需要网络也能“互联”