`

欧几里德距离评价算法(集体智慧编程)

阅读更多

欧几里德距离是指多维空间两点间的距离,这是一种用直尺测量出来的距离。如果将两个点分别标记为(p1,p2,p3....pn)和(q1,q2,q3.....qn),则欧几里德距离的计算公式为:



 

 

欧几里德距离评价算法是一个非常简单的计算相似度评价值的方法。它以经过人们一致评价的物品为坐标轴,然后将参与评价的人绘制到图上,并考查他们彼此间的距离远近。如图:



该图显示了处于“偏好空间”中用户的分布状况。Toby在Snakes轴线和Dupree轴线上所标示的数值分别是4.5和1.0.两个在“偏好空间”中的距离越近,他们的兴趣偏好就越相似。因为这张图是二维的,所以在同一时间内你只能看到两项评分,但是这一规则对于更多数量的评分项而言也是同样适用的。

 

为了计算图上Toby和LaSalle之间的距离,我们可以计算出每一轴向上的差值,求平方后再相加,最后对总和取平方根。得出的这个值即为欧几里德距离。

python代码如下:

from math import sqrt
sqrt(pow(4.5-4,2)+pow(1-2,2))

 

上述算式可以计算出距离值,偏好越相似的人,其距离就越短,不过,我们还需要一个函数,来对偏好越相近的情况给出越大的值。为此,可以将函数值加1(这样就可以避免遇到被零整除的错误了),并取其倒数:

1/(1+sqrt(pow(4.5-4,2)+pow(1-2,2)))

 函数返回介于0到1之间,返回则表示两人具有一样的偏好。

 

  • 大小: 8.1 KB
  • 大小: 4.4 KB
1
1
分享到:
评论

相关推荐

    欧几里德算法-少儿编程scratch项目源代码文件案例素材.zip

    在少儿编程教育中,欧几里德算法是一个极好的教学工具,它既能让孩子们了解古老的数学智慧,又能通过实践提高他们的逻辑思维能力。本项目案例基于流行的图形化编程语言Scratch,为孩子们提供了一个直观、有趣的编程...

    欧几里德乘法逆元算法实现

    标题提到的"欧几里德乘法逆元算法实现"是基于欧几里德算法来寻找两个整数的最大公约数(GCD)的一种扩展,通常称为扩展欧几里德算法。这个算法不仅能够找到最大公约数,还能同时得到两个整数的乘法逆元。它的核心...

    欧几里德C语言算法

    欧几里德C语言算法

    欧几里德算法和扩展欧几里德算法.doc

    欧几里德算法和扩展欧几里德算法是数论中两个重要的算法,用于计算两个整数的最大公约数和模乘法逆元。 一、欧几里德算法 欧几里德算法是一种计算两个整数最大公约数的算法,依赖于以下定理:gcd(a,b) = gcd(b,a ...

    欧几里德算法和扩展欧几里德算法

    欧几里德算法和扩展欧几里德算法--透彻理解 模P乘法逆元 对于整数a、p,如果存在整数b,满足a×b mod p =1,则说,b是a的模p乘法逆元。

    扩展欧几里德算法---

    扩展欧几里德算法可以用多种编程语言实现,例如在Python中: ```python def extended_euclidean(a, b): if b == 0: return a, 1, 0 else: gcd, x, y = extended_euclidean(b, a % b) return gcd, y, x - (a //...

    使用行进抛物线对多标签3D各向异性图像进行欧几里德距离和符号距离变换_C++_Cython_下载.zip

    在本项目中,“使用行进抛物线对多标签3D各向异性图像进行欧几里德距离和符号距离变换_C++_Cython_下载.zip”提供了一个实现,它专注于3D图像处理,并使用了行进抛物线算法来执行欧几里德距离变换和符号距离变换。...

    扩展欧几里德算法

    **扩展欧几里德算法详解** 扩展欧几里德算法,是基于欧几里德算法的一种数学方法,主要用于求解两个非零整数的最大公约数(Greatest Common ...理解并熟练掌握这一算法,对于提升编程和算法设计能力具有显著的助益。

    自己编的扩展欧几里德算法

    **扩展欧几里德算法详解** 扩展欧几里德算法,又称广义欧几里得算法,是数学中用于求解最大公约数(GCD)的一种高效方法,它不仅能得到两个整数的最大公约数,还能同时得到它们的贝祖等式解。在计算机科学和密码学...

    扩展欧几里德算法c++代码

    实现扩展欧几里得算法的代码,很简单,能够成功运行。

    12--[scratch欧几里德算法].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码

    12--[scratch欧几里德算法].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码12--[scratch欧几里德算法].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码12--[scratch欧几里德算法].zip源码scratch...

    算法文档无代码欧几里德算法的应用

    在本例中,文档标题提到“欧几里德算法的应用”,而描述中提到“算法文档无代码欧几里德算法的应用提取方式是百度网盘分享地址”,表明了文档中可能详述了欧几里得算法在不同领域的应用实例,同时说明了获取该文档的...

    欧几里德算法和扩展欧几里德算法。用C和C++实现。.zip

    欧几里德算法和扩展欧几里德算法。用C和C++实现。.zip

    acm 扩展欧几里德算法与中国剩余定理ppt教程 acmer教程系列

    在编程实现中国剩余定理时,需要先计算所有模数的乘积,然后对每个方程使用扩展欧几里德算法求得相应的系数,再将它们组合以得到原同余方程组的解。 扩展欧几里德算法和中国剩余定理之间存在着密切的关系。扩展...

    欧几里德算法求最大公约数——C++代码

    在C++编程中,我们可以用递归或迭代的方式来实现欧几里得算法。以下是使用递归方式的C++代码示例: ```cpp #include int gcd(int a, int b) { if (b == 0) { // 当b为0时,a即为最大公约数 return a; } else {...

    欧几里德算法和仿射密码

    欧几里德算法是一种用于计算两个整数最大公约数(GCD)的经典算法;而仿射密码则是一种基于线性变换的加密技术。 #### 欧几里德算法 欧几里德算法是一种高效地求解两个整数最大公约数的方法。最大公约数是指能够...

    欧几里德算法

    ### 欧几里德算法详解 #### 一、算法简介与历史背景 欧几里德算法(Euclidean Algorithm)是一种高效计算两个整数最大公约数(GCD, Greatest Common Divisor)的方法。该方法得名于古希腊数学家欧几里得(Euclid)...

    欧几里德算法 欧几里德 ,VC VS c VC

    适合初学者适合初学者 欧几里德算法 适合初学者适合初学者 欧几里德算法 适合初学者适合初学者 欧几里德算法

    MFC 欧几里德算法

    欧几里德算法,源于古希腊数学家欧几里得对于...总之,欧几里德算法及其扩展在MFC编程中扮演着重要角色,尤其在处理整数性质和加密算法时。通过理解并正确运用这些算法,开发者可以解决许多涉及整数数学问题的任务。

Global site tag (gtag.js) - Google Analytics