技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> 算法 --> 相似度计算之兰氏距离

相似度计算之兰氏距离

浏览:1835次  出处信息

   兰氏距离(Lance and Williams distance)堪培拉距离(Canberra Distance),被认为是曼哈顿距离的加权版本。

   其定义公式为:

    \[d(\mathbf {p} ,\mathbf {q} )=\sum _{i=1}^{n}{\frac {|p_{i}-q_{i}|}{|p_{i}|+|q_{i}|}}\]

   通常兰氏距离对于接近于0(大于等于0)的值的变化非常敏感。与马氏距离一样,兰氏距离对数据的量纲不敏感。不过兰氏距离假定变量之间相互独立,没有考虑变量之间的相关性。

   Python实现:

def canberra_distance(p, q):
    n = len(p)
    distance = 0
    for i in n:
        if p[i] == 0 and q[i] == 0:
            distance += 0
        else:
            distance += abs(p[i] - q[i]) / (abs(p[i]) + abs(q[i]))
    return distance

   参考资料:

建议继续学习:

  1. 相似度计算常用方法综述    (阅读:9353)
  2. 字符串匹配那些事(一)    (阅读:5736)
  3. 如何计算两个文档的相似度(一)    (阅读:4742)
  4. URL相似度计算的思考    (阅读:3685)
  5. 如何计算两个文档的相似度(二)    (阅读:3732)
  6. Levenshtein distance相似度算法    (阅读:3102)
  7. 如何计算两个文档的相似度(三)    (阅读:2896)
  8. 若无云,岂有风——词语语义相似度计算简介    (阅读:2471)
  9. 相似度计算之马氏距离    (阅读:1731)
  10. 常见相似度计算方法回顾    (阅读:1699)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1