zoukankan      html  css  js  c++  java
  • 常用相似性度量(距离 相似系数)【转】

    在分类聚类算法,推荐系统中,常要用到两个输入变量(通常是特征向量的形式)距离的计算,即相似性度量.不同相似性度量对于算法的结果,有些时候,差异很大.因此,有必要根据输入数据的特征,选择一种合适的相似性度量方法.

    X=(x1,x2,..,xn)T,Y=(y1,y2,...yn)T为两个输入向量,

     

    1.欧几里得距离(Euclidean distance)

    相当于高维空间内向量说表示的点到点之间的距离。
    由于特征向量的各分量的量纲不一致,通常需要先对各分量进行标准化,使其与单位无关。
    优点:简单,应用广泛(如果也算一个优点的话)
    缺点:没有考虑分量之间的相关性,体现单一特征的多个分量会干扰结果。


    2.马氏距离(Mahalanobis distance)

    C=E[(X-X平均)(Y-Y平均)]为该类输入向量X的协方差矩阵.(T为转置符号,E取平均时是样本因此为n-1)

    适用场合:
    1)度量两个服从同一分布并且其协方差矩阵为C的随机变量X与Y的差异程度
    2)度量X与某一类的均值向量的差异程度,判别样本的归属。此时,Y为类均值向量.
    优点:
    1)独立于分量量纲
    2)排除了样本之间的相关性影响。
    缺点:不同的特征不能差别对待,可能夸大弱特征。


    3.闵可夫斯基距离(Minkowsk distance)

    可看成是欧氏距离的指数推广,还没有见到过很好的应用实例,但通常,推广都是一种进步:)
    特别的,当p=1,也成做街坊距离或曼哈顿距离,也称绝对距离。


    4.汉明距离(Hamming distance)

    还记得汉明码吗,海明距离就是表示X,Y取值不同的分量数目,只适用分量只取-1或1的情况。
     


    5.Tanimoto系数(又称广义Jaccard系数)




    通常应用于X为布尔向量,即各分量只取0或1的时候。此时,表示的是X,Y的公共特征的占X,Y所占有的特征的比例。


    6.皮尔逊相关系数(Pearson correlation coefficient)

    其实就是高中学过的相关系数啦,等于X,Y的协方差除以X,Y的标准差之积。不多说了。
        这东西在多元统计课本上出现时竟然就称为相关系数,什么名称都没有。


    7.余弦相似度(cosine similarity)

    就是两个向量之间的夹角的余弦值。

    应用场合:通常应用于X为布尔向量,即各分量只取0或1的时候。此时,和Tanimoto类似,是X,Y公共特征数目的测量。

    优点:不受坐标轴旋转,放大缩小的影响。

    还有一个调整余弦相似度(Adjusted Cosine Similarity),和余弦相似度的计算不同的是,X,Y在减去用户平均评分向量后再代入余弦相似度公式中计算。调整余弦相似度和余弦相似度,皮尔逊相关系数在推荐系统中应用较多。在基于项目的推荐中,GroupLens有篇论文结果表明调整余弦相似度性能要优于后两者。


    参考资料:

    http://en.wikipedia.org/wiki/Metric_space#Examples_of_metric_spaces
    《模式识别导论》--齐敏等

     

    From:http://hi.baidu.com/sunblackshine/blog/item/8412c800623c33121d9583b1.html

  • 相关阅读:
    ajax中文乱码问题的总结
    JQuery中$.ajax()方法参数详解
    Jquery的parent和parents(找到某一特定的祖先元素)
    div节点的操作(添加,删除,替换,克隆)
    js 刷新页面
    ADO.NET 体系结构
    数据访问技术介绍
    WebForm页面数据绑定总结
    sql 智能提示
    用TTTAttributedLabel创建变化丰富的UILabel
  • 原文地址:https://www.cnblogs.com/skyseraph/p/2110479.html
Copyright © 2011-2022 走看看