One - One Code All

Blog Content

常见的相似度算法

机器学习 算法   2013-03-10 10:25:36

承接上一篇距离算法。

  1. 余弦相似度:

    先复习下余弦和余弦定理。

    余弦:∠A的余弦是它的邻边比三角形的斜边,即cosA=b/c,也可写为cosa=AC/AB。余弦函数:f(x)=cosx(x∈R)。

    余弦定理:三角形任一边的平方等于其他两边平方和减去这两边与它们夹角的余弦的积的两倍。若a、b、c分别表示∆ABC中A、B、C的对边,则余弦定理可表述为:a^2 = b^2+c^2-2bc*cosA => cosA=(b^2+c^2-a^2)/2bc

    余弦相似度定义:两向量越相似,向量夹角越小,cosine绝对值越大;值为负,两向量负相关。

    余弦相似度公式:cos = (x1x2+y1y2)/(sqrt(x1^2+y1^2) * sqrt(x2^2+y2^2) )。

    不足:只能分辨个体在维之间的差异,没法衡量每个维数值的差异。

  2. 皮尔逊系数:两个变量之间的协方差和标准差的商。

  3. Jaccard相似系数:样本集交集与样本集合集的比值。

  4. Tanimoto系数(广义Jaccard相似系数):广义Jaccard相似度,元素的取值可以是实数。又叫谷本系数。

  5. 对数似然相似率

  6. 互信息/信息增益:信息论中两个随机变量的相关性程度。相对熵/KL散度:交叉熵,用来衡量两个取值为正数的函数(概率分布)的相似性。

  7. 信息检索--词频-逆文档频率(TF-IDF):见前文。

  8. 词对相似度--点间相似度:PMI。



上一篇:统计学概念之偏差
下一篇:python 杂谈之语言特性

The minute you think of giving up, think of the reason why you held on so long.