距离有多远?欧几里德距离&皮尔逊相关度系数

简介:

  我们对同样的一些电影,书,音乐进行评分,从这些评分中能看到我们彼此之间的相似度么?说到这里你可能会想到豆瓣,我们有没有方法来模仿豆瓣计算这种相似度呢?本文是《集体智慧编程》介绍相似度算法:欧几里德距离和皮尔逊相关度系数的一次演练。

       本文将介绍.

       距离是在传统统计学和数据挖掘中衡量接近程度的关键度量。我们如何衡量接近程度或距离呢?在详细介绍不同距离度量方式前,让我们先描述一个便于讨论的问题场景。

 

  故事是这样的:一些人对同样的一些电影做出了评价,我们将在这个基础上进行分析.我们按照IMDB的评分规则,10分为电影的最高评分.首先我们将能够描述这一事实的数据构造出来放入数据库中.我们需要下列的表:

o    Moive 电影信息表

o    UserInfo 用户表(这些人将对电影给出评分)

o    Moive_Level

    使用下面的SQL语句就可以完成上面数据表的建表工作.

ContractedBlock.gif CREATE TABLES

 

  首先是Moive电影表,我从一些电影网站中抽取了1330条电影信息,覆盖了爱情电影,动作电影,科幻电影等各种类型的电影.实际上我们坐算法演示的时候只用到其中的10条数据.如下图,10条数据是比较有代表性的,从类型和发行时间上都有特点..


clip_image005
    
下列用户将对上面的十部电影进行评价:


clip_image006
    
用户对电影的评价是如下结构(下图试数据片段):

    clip_image007

    一个简单常用的距离度量是欧几里德距离。它以人们都评价过的电影为坐标轴,然后将参与评价的人绘制在图上,并考察它们的距离远近,换句话说这幅图就是描述了处于偏好空间中的人们.第一种算法考察方法是:

欧几里德距离

欧几里得度量定义欧几里得空间中点 x = (x1,...,xn和 y = (y1,...,yn之间的距离为

clip_image001

为了方便将这个算法应用到数据库上,我们创建一个存储过程EuclideanDistance:

ContractedBlock.gif EuclideanDistance
ContractedBlock.gif Code

clip_image002

但是当评价结果中,评价者的评价相对于平均水平偏离很大的时候欧几里德距离不能很好的揭示出真实的相似度.还有一种评价方法就是使用皮尔逊相关系数,它可以完成"夸大值纠偏":

皮尔逊相关度系数

两个变量之间的相关系数越高,从一个变量去预测另一个变量的精确度就越高,这是因为相关系数越高,就意味着这两个变量的共变部分越多,所以从其中一个变量的变化就可越多地获知另一个变量的变化。如果两个变量之间的相关系数为1-1,那么你完全可由变量X去获知变量Y的值。

·         当相关系数为0时,XY两变量无关系。

·         X的值增大,Y也增大,正相关关系,相关系数在0.001.00之间

·         X的值减小,Y也减小,正相关关系,相关系数在0.001.00之间

·         X的值增大,Y减小,负相关关系,相关系数在-1.000.00之间

X的值减小,Y增大,负相关关系,相关系数在-1.000.00之间

相关系数的绝对值越大,相关性越强,相关系数越接近于1-1,相关度越强,相关系数越接近于0,相关度越弱。

clip_image003
目录
相关文章
|
9月前
|
机器学习/深度学习 运维 算法
梯度&散度&旋度&峰度&偏度你分得清楚吗?驻点&鞍点你分得清楚吗?曲率&斜率你分得清楚吗?
本文介绍了四种常见的物理量:加速度,速度,位移和力学功。详细介绍了它们的定义、计算以及在物理学和工程学领域中的应用。此外,本文还介绍了四种与物理量相关的概念:向量、标量、质量和密度。 数学,物理,机器学习领域常见概念区分
458 0
|
2月前
|
机器学习/深度学习 算法 前端开发
公交站间的距离
公交站间的距离
21 0
|
7月前
|
算法 Perl
豪斯多夫(Hausdorff)距离
豪斯多夫距离量度度量空间中真子集之间的距离。Hausdorff距离是另一种可以应用在边缘匹配算法的距离,它能够解决SED方法不能解决遮挡的问题。
309 0
|
9月前
|
算法
基于自适应适应度-距离平衡的随机分形搜索算法(Matlab代码实现)
基于自适应适应度-距离平衡的随机分形搜索算法(Matlab代码实现)
|
10月前
|
机器学习/深度学习 搜索推荐 数据挖掘
常见的几种距离量度(欧式距离、曼哈顿距离、切比雪夫距离等)
在机器学习和数据挖掘中,我们经常需要计算样本之间的相似度,通常的做法是计算样本之间的距离。本文介绍几种常用的距离量度方法。
337 0
|
机器学习/深度学习 传感器 算法
基于 Ekman 方程求解大气边界层中的水平均匀流和高度相关的涡流粘度附matlab代码
基于 Ekman 方程求解大气边界层中的水平均匀流和高度相关的涡流粘度附matlab代码
|
编译器 C语言 C++
移动距离
X星球居民小区的楼房全是一样的,并且按矩阵样式排列。其楼房的编号为1,2,3... 当排满一行时,从下一行相邻的楼往反方向排号。 比如:当小区排号宽度为6时,开始情形如下:
117 1
移动距离
|
人工智能 BI
余弦距离和欧氏距离,知道原理和公式后真的很简单
余弦距离和欧氏距离,知道原理和公式后真的很简单
445 0
余弦距离和欧氏距离,知道原理和公式后真的很简单