zoukankan      html  css  js  c++  java
  • 机器学习

    在机器学习领域里,最核心的两种数值计算分别是:

    • 距离计算
    • 概率计算

    今天Reinhard Hsu就来看看常见都有哪些常见的的距离计算。

    欧式距离(Euclidean Metric)

    欧几里得距离,用于计算两个点之间的实际距离,计算方法是使用毕达哥拉斯定理,也就是咱们中国的勾股定理。

    对于二维平面上的两点,它们的欧式距离可以这样算:
    $$
    d=sqrt{(x_1-x_2)2+(y_1-y_2)2}
    $$

    曼哈顿距离(Manhattan distance)

    想象下你站在曼哈顿街区,需要从一个十字路口走到另一个十字路口,无法穿过建筑,只能沿着街道走。

    对于二维平面上的两点,它们的曼哈顿距离可以这样算:
    $$
    d=|x_1-x_2|+|y_1-y_2|
    $$

    海明距离(Hamming distance)

    单词“advice”和“advise”之间的距离是多少呢?

    距离是1,因为只需要替换一个字符,就可以将一个单词变换成另一个单词。

    海明距离用于测量长度相等的字符串之间的距离。

    编辑距离(Levenshtein distance,Edit distance)

    单词“how”和“show”之间的距离是多少呢?

    距离是1,因为只要进行1次下面的动作,就可以从一个词变换到另一个词:

    • 插入一个字母
    • 删除一个字母
    • 交换相邻两个字母的位置
    • 把一个字母替换成另一个字母

    编辑距离常用于自然语言处理中的拼写检查,和文本相似性检查。

    其它距离

    • 马氏距离(Mahalanobis distance)
    • 切比雪夫距离
    • 闵氏距离
    • 余弦距离
    • 杰卡德距离(Jaccard Distance)。

    距离的分类

    从距离的形式来划分的话,可以分为如下三类:

    几何距离

    直观地测量物体从一个点到另一个点有多远。包括欧几里得距离、余弦距离,都属于几何距离。

    计算距离

    包括曼哈顿距离、编辑距离(Levenshtein distance)。

    统计距离

    包括马氏距离(Mahalanobis distance)、杰卡德距离(Jaccard Distance)。

    参考文献

    【1】怎样写一个拼写检查器 by Peter Norvig

    【2】大数据时代的算法

    【3】Thoughtful Machine Learning with Python

  • 相关阅读:
    Fiddler抓包9-保存会话(save)
    Selenium2+python自动化61-Chrome您使用的是不受支持的命令行标记:--ignore-certificate-errors
    Fiddler抓包8-打断点(bpu)
    Fiddler抓包7-post请求(json)
    Java图片验证码
    servlet过滤器
    servlet监听器实现在线人数统计
    基于MVC模式的数据库综合练习
    JSTL详解
    初识EL表达式
  • 原文地址:https://www.cnblogs.com/msdynax/p/8082791.html
Copyright © 2011-2022 走看看