距离公式

距离本意就是两个目标的某一特征集从一个变成另一个需要的最小操作。广泛使用于相似度比较领域。机器学习中经常用的距离有:

1. 欧氏距离 ( Euclidean Distances)

2. 曼哈顿距离

3. 切比雪夫距离

4. 闵可夫斯基距离

5. 标准化欧氏距离

6. 马氏距离

7. 夹角余弦( Cosine Distance)

8. 汉明距离(Hamming Distance)

9. 杰卡德距离 & 杰卡德相似系数(Jaccard)

10. 相关系数 & 相关距离(pearson,Spearman, kendall tau correlation)

11. 信息熵(Kullback-Leibler Divergence / Relative Entropy)

部分可参考:http://www.cnblogs.com/heaad/archive/2011/03/08/1977733.html

1. Jaccard 

  • Jaccard相似度有狭义和广义之分。
  • 狭义:两个集合的交集数目除上两个集合的并集数目,即:

  • 广义:元素的取值可以是实数。又称为Tanimoto系数,用EJ来表示,计算方式如下:

    EJ(A,B)=(A*B)/(||A||^2+||B||^2-A*B)

    其中A、B分别表示为两个向量,集合中每个元素表示为向量中的一个维度,在每个维度上,取值通常是[0, 1]之间的值,A*B表示向量乘积,||A||^2表示向量的模,即 ||A||^2 = sqrt (a1^2 + a2^2 + a3^2 + ......)。
    广义Jaccard相似度计算公式中,如果把分母的A*B去掉,并将||A||^2+||B||^2替换为(||A||^2)*(||B||^2),就转成了余弦相似度(cosine similarity)。

    可参考:http://blog.csdn.net/xceman1997/article/details/8600277

  • Jacard 距离: d(x,y)= 1 - J(x,y).

2. Euclidean Distances

欧氏距离,即通常说的L2-范式(L2-norm)

3. Cosine Distance

先求余弦相似性,对于两个向量A和B,定义如下:

然后通过反余弦函数,求得的夹角θ,就是余弦距离。

4. Hamming Distance

汉明距更多的用于信号处理,表明一个信号变成另一个信号需要的最小操作(替换位),实际中就是比较两个比特串有多少个位不一样,简洁的操作时就是两个比特串进行异或之后包含1的个数。汉明距在图像处理领域也有这广泛的应用,是比较二进制图像非常有效的手段。计算一个数字的比特位包含1的个数有个小技巧:value  &= value - 1这个运算的结果就是把value最后一个1去掉,循环进行运算直到value等于0(所有的1都被去掉)就可以知道vaule拥有多少个1了。

参考:http://zh.wikipedia.org/wiki/%E6%B1%89%E6%98%8E%E8%B7%9D%E7%A6%BB

### 回答1: Haversine距离公式是一种计算地球表面两点间距离的方法,其基本思想是将地球看作是一个球体,通过计算两点间的球面距离来表示它们之间的距离公式如下: d = 2r * arcsin(sqrt(sin^2((lat2-lat1)/2) + cos(lat1) * cos(lat2) * sin^2((lon2-lon1)/2))) 其中,d表示两点间的距离(单位为地球半径r),lat1和lat2表示两点的纬度,lon1和lon2表示两点的经度。 ### 回答2: Haversine距离公式是计算两个经纬度坐标点之间最短曲线距离的一种方法。它基于球形大地模型,假设地球是一个完美的球体。 该公式使用了三角函数来确定两个点之间的弧度距离。首先,我们需要将经纬度坐标转换为弧度值,然后使用Haversine函数计算两个点之间的弧度距离。 Haversine函数的数学表达式如下: haversin(θ) = sin²(θ/2) 其中,θ是两个点之间的弧度距离,可以通过以下公式计算: a = sin²((lat2 - lat1)/2) + cos(lat1) * cos(lat2) * sin²((lon2 - lon1)/2) c = 2 * atan2(√a, √(1-a)) d = R * c 其中,lat1和lon1是第一个点的纬度和经度,lat2和lon2是第二个点的纬度和经度。R是地球的半径,通常取6371千米。 计算出的d即为两个点之间的弧度距离,它表示的是地球表面上的最短曲线距离。 Haversine距离公式在地图应用程序中广泛使用,特别是在计算两个地理位置之间的距离时非常便捷。由于其简单性和准确性,它被视为一种常用的距离计算方法。 ### 回答3: Haversine距离公式是一种用于计算两个经纬度坐标之间距离的数学公式。它基于大圆距离的概念,通过考虑地球球面的曲率来计算两点之间的最短路径距离。 Haversine距离公式的基本形式如下: d = 2r * arcsin(sqrt(sin^2((lat2 - lat1)/2) + cos(lat1) * cos(lat2) * sin^2((lon2 - lon1)/2))) 其中,d表示两点之间的距离,r表示地球半径,单位可以是千米、英里或其他长度单位。lat1和lon1表示第一个点的纬度和经度,lat2和lon2表示第二个点的纬度和经度。上述公式中的单位是弧度,所以需要对纬度和经度进行弧度转换。 具体来说,公式首先计算了两点纬度差和经度差的sin的平方,然后使用三角函数和开方运算,得到两个sin的平方的和。然后将该和带入arcsin函数,再乘以2倍的地球半径r,即可得到两点之间的距离d。 Haversine距离公式在地理信息系统(GIS)和航海导航中经常被用于计算两个经纬度坐标之间的距离。它提供了一种较为准确的近似方法,可以在不考虑地球形状的情况下,对两个点之间的直线距离进行估算。然而,需要注意的是,Haversine距离公式没有考虑地球椭球体的形状、地球多极不规则性、以及海拔高度的差异等因素。所以在具体应用中,可能需要结合其他因素进行修正,以得到更准确的距离计算结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值