相似度算法设计

相似度就是比较两个事物的相似性。一般通过计算事物的特征之间的距离,如果距离小,那么相似度大;如果距离大,那么相似度小。

image.png

本文以欧氏距离为例简单介绍相似度计算过程。

预处理


  1. 数据映射

在实际场景中,往往存在多种数据类型,如文本、区间、数值、码值等,无法直接进行计算,需将其数据映射为数值数据(考虑归一化)。

image.png

  1. 特征缩放

在欧氏距离计算中,不同维度量纲不同会导致距离的计算依赖于量纲较大的特征,因此需进行特征缩放,统一量纲。

  • 归一化:将一列数据变化到某个固定区间(范围)中,比如映射到​一样可以继续映射到其他范围,图像中可能会映射到​,其他情况可能映射到​;
image.png
  • 标准化:将数据变换为均值为0,标准差为1的分布,统一数据标准,提高数据可比性,削弱数据解释性;
image.png

相似度算法


ML中常用的相似度计算法方法包括:

  • 欧式距离(Euclidean Distance)
  • 余弦相似度(Cosine)
  • 皮尔逊相关系数(Pearson)
  • 修正余弦相似度(Adjusted Cosine)
  • 汉明距离(Hamming Distance)
  • 曼哈顿距离(Manhattan Distance)

欧氏距离

两个向量间的距离,取值范围为0至正无穷。如果两个向量间的距离较小,那么向量也更为相似。其计算过程如下:


image.png

参考:

http://blog.sina.com.cn/s/blog_62b83291010127bf.html

https://www.cnblogs.com/chenxiangzhen/p/10648503.html

https://zhuanlan.zhihu.com/p/85832270

你可能感兴趣的:(相似度算法设计)