相似度就是比较两个事物的相似性。一般通过计算事物的特征之间的距离,如果距离小,那么相似度大;如果距离大,那么相似度小。
本文以欧氏距离为例简单介绍相似度计算过程。
预处理
-
数据映射
在实际场景中,往往存在多种数据类型,如文本、区间、数值、码值等,无法直接进行计算,需将其数据映射为数值数据(考虑归一化)。
-
特征缩放
在欧氏距离计算中,不同维度量纲不同会导致距离的计算依赖于量纲较大的特征,因此需进行特征缩放,统一量纲。
- 归一化:将一列数据变化到某个固定区间(范围)中,比如映射到一样可以继续映射到其他范围,图像中可能会映射到,其他情况可能映射到;
- 标准化:将数据变换为均值为0,标准差为1的分布,统一数据标准,提高数据可比性,削弱数据解释性;
相似度算法
ML中常用的相似度计算法方法包括:
- 欧式距离(Euclidean Distance)
- 余弦相似度(Cosine)
- 皮尔逊相关系数(Pearson)
- 修正余弦相似度(Adjusted Cosine)
- 汉明距离(Hamming Distance)
- 曼哈顿距离(Manhattan Distance)
欧氏距离
两个向量间的距离,取值范围为0至正无穷。如果两个向量间的距离较小,那么向量也更为相似。其计算过程如下:
参考:
http://blog.sina.com.cn/s/blog_62b83291010127bf.html