欧几里得距离

摘要:
在计算相似度的场景中,欧几里德距离是一种更直观和常见的相似度算法。欧几里得距离越小,相似性越大;欧几里得距离越大,相似性越小。在数学中,欧几里得距离或欧几里得度量是欧几里得空间中两点之间的“正常”(即直线)距离。使用这个距离,欧几里得空间就变成了度量空间。相关的范数称为欧几里德范数。欧几里得距离的数学公式代码实现我们使用科学计算库numpy来计算欧几里得距离。代码也很简单#!
原文出处: https://xugaoxiang.com/2019/11/30/euclidean-distance/

软硬件环境

  • ubuntu 18.04 64bit
  • numpy 1.12.1

前言

欧几里得距离,又称欧氏距离,是最常见的距离度量,衡量的是多维空间中各个点之间的绝对距离。在计算相似度(比如人脸识别)的场景下,欧几里得距离是比较直观、比较常见的一种相似度算法。欧氏距离越小,相似度越大;欧氏距离越大,相似度越小。

来自中文版维基百科的定义

在数学中,欧几里得距离或欧几里得度量是欧几里得空间中两点间“普通”(即直线)距离。使用这个距离,欧氏空间成为度量空间。相关联的范数称为欧几里得范数。较早的文献称之为毕达哥拉斯度量。

欧几里得距离的数学公式

欧几里得距离第1张

代码实现

我们使用 numpy 这个科学计算库来计算欧几里得距离,代码也非常简单

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date    : 2018-08-17 16:31:07
# @Author  : xugaoxiang (djstava@gmail.com)
# @Link    : link
# @Version : 1.0.0

import numpy as np

def get_edclidean_distance(vect1,vect2):
    dist = np.sqrt(np.sum(np.square(vect1 - vect2)))
    # 或者用numpy内建方法
    # dist = numpy.linalg.norm(vect1 - vect2)
    return dist

if __name__ == '__main__':
    
    vect1 = np.array([1,2,3])
    vect2 = np.array([4,5,6])

    print(get_edclidean_distance(vect1, vect2))
    

执行结果显示

5.19615242271

参考资料

免责声明:文章转载自《欧几里得距离》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇HTTP协议--MyWebServerLinuxE2系统刷机后OSCAM安装与读卡器设置下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

图像检索中类似度度量公式:各种距离(1)

基于内容的图像检索(Content-Based Image Retrieval)是指通过对图像视觉特征和上下文联系的分析,提取出图像的内容特征作为图像索引来得到所需的图像。 相似度度量方法 在基于内容的图像检索中须要通过计算查询和候选图像之间在视觉特征上的相似度匹配。 因此须要定义一个合适的视觉特征相似度度量方法对图像检索的效果无疑是一个非常大的影响。...