相似度计算

天涯浪子 提交于 2020-01-08 15:01:27

1、相似距离

1.1 Jaccard相关系数

 Jaccard相关系数主要用于计算两个集合的并集和交集的比值来度量用户相似度。

    

注:Jaccard相关系数适合计算离散型集合的相似度,对于非离散型的评分矩阵,Jaccard相关系数没有考虑评分值对相似度的影响,对于10级评分矩阵的相似度计算效果较差。

1.2 余弦相似度

    余弦相似度通过计算两个向量间的夹角余弦值衡量两个用户的相似度,余弦相似度更加注重方向上的相似性而非距离上的。

 

1.3皮尔森相关系数

    皮尔森相关系数利用向量间的线性相关性表示用户相似度。

  

1.4 欧几德距离

    欧几里德距离计算多维空间各个点的绝对距离,又称L2范数距离。同类型的还有曼哈顿距离,明可夫斯距离等。

    因为计算是基于各维度特征的绝对数值,所以欧氏度量需要保证各维度指标在相同的刻度级别,比如对身高(cm)和体重(kg)两个单位不同的指标使用欧式距离可能使结果失效。

 

 

1.5 曼哈顿距离

想象你在曼哈顿要从一个十字路口开车到另外一个十字路口,驾驶距离是两点间的直线距离吗?显然不是,除非你能穿越大楼。实际驾驶距离就是这个“曼哈顿距离”。而这也是曼哈顿距离名称的来源, 曼哈顿距离也称为城市街区距离(City Block distance)。曼哈顿距离又称L1范数距离,它与欧式距离(L2L2范数距离)的差别就像直角三角形两边之和与斜边的差别。

在n维欧式空间中,任意两点A=(a1,a2,...,an),B=(b1,b2,...,bn),曼哈顿距离为:

 

1.6 汉明距离(Hamming distance)

汉明距离又称编辑距离,其的定义: 两个等长字符串s1与s2之间的汉明距离定义为将其中一个变为另外一个所需要作的最小替换次数。例如字符串“1111”与“1001”之间的汉明距离为2。

 

https://www.cnblogs.com/soyo/p/6893551.html

 

2、标准化的几种方式

在数据挖掘中,当不同的特征成列在一起的时候,由于特征本身表达方式的原因而导致在绝对数值上的小数据被大数据“吃掉”的情况,这个时候我们需要做的就是对抽取出来的features vector进行归一化处理,以保证每个特征被分类器平等对待。

2.1 0-1标准化

2.2 Z-score标准化

  这种方式处理后的数据服从正态分布,需要用到均值mu和标准差sigma

2.3 Sigmoid函数

Sigmoid函数是一个具有S型曲线的函数都可以称为Sigmoid函数,在(0, 0.5)处中心对称,在(0, 0.5)附近有比较大的斜率,而当数据趋向于正无穷和负无穷的时候,映射出来的值就会无限趋向于1和0。

 

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!