首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >皮尔森类似度(Pearson Similiarity)计算举例与数学特性和存在问题

皮尔森类似度(Pearson Similiarity)计算举例与数学特性和存在问题

作者头像
学到老
发布2019-01-25 14:39:24
发布2019-01-25 14:39:24
8.6K00
代码可运行
举报
运行总次数:0
代码可运行

Pearson Similiarity

皮尔森相关系数(Pearson correlation coefficient)也叫皮尔森积差相关系数(Pearson product-moment correlation coefficient),是用来反应两个变量相似程度的统计量。或者说可以用来计算两个向量的相似度(在基于向量空间模型的文本分类、用户喜好推荐系统中都有应用)。 皮尔森相关系数计算公式如下: ρX,Y=cov(X,Y)σXσY=E((X−μX)(Y−μY))σXσY=E(XY)−E(X)E(Y)E(X2)−E2(X)√E(Y2)−E2(Y)√ρX,Y=cov(X,Y)σXσY=E((X−μX)(Y−μY))σXσY=E(XY)−E(X)E(Y)E(X2)−E2(X)E(Y2)−E2(Y)\rho_{X,Y}=\frac{cov(X,Y)}{\sigma_{X}\sigma_{Y}}=\frac{E((X-\mu_X)(Y-\mu_Y))}{\sigma_{X}\sigma_{Y}}=\frac{E(XY)-E(X)E(Y)}{\sqrt{E(X^2)-E^2(X)}\sqrt{E(Y^2)-E^2(Y)}} 分子是协方差,分母是两个变量标准差的乘积。显然要求X和Y的标准差都不能为0。

当两个变量的线性关系增强时,相关系数趋于1或-1。正相关时趋于1,负相关时趋于-1。当两个变量独立时相关系统为0,但反之不成立。比如对于y=x2y=x2y=x^2,X服从[-1,1]上的均匀分布,此时E(XY)为0,E(X)也为0,所以ρX,Y=0ρX,Y=0\rho_{X,Y}=0,但x和y明显不独立。所以“不相关”和“独立”是两回事。当Y 和X服从联合正态分布时,其相互独立和不相关是等价的。

对于居中的数据来说(何谓居中?也就是每个数据减去样本均值,居中后它们的平均值就为0),E(X)=E(Y)=0,此时有: ρX,Y=E(XY)E(X2)√E(Y2)√=1N∑Ni=1XiYi1N∑Ni=1X2i√1N∑Ni=1Y2i√=∑Ni=1XiYi∑Ni=1X2i√∑Ni=1Y2i√=∑Ni=1XiYi||X||||Y||ρX,Y=E(XY)E(X2)E(Y2)=1N∑i=1NXiYi1N∑i=1NXi21N∑i=1NYi2=∑i=1NXiYi∑i=1NXi2∑i=1NYi2=∑i=1NXiYi||X||||Y||\rho_{X,Y}=\frac{E(XY)}{\sqrt{E(X^2)}\sqrt{E(Y^2)}}=\frac{\frac{1}{N}\sum_{i=1}^N{X_{i}Y_{i}}}{\sqrt{\frac{1}{N}\sum_{i=1}^N{X_i^2}}\sqrt{\frac{1}{N}\sum_{i=1}^N{Y_i^2}}}=\frac{\sum_{i=1}^N{X_{i}Y_{i}}}{\sqrt{\sum_{i=1}^N{X_i^2}}\sqrt{\sum_{i=1}^N{Y_i^2}}}=\frac{\sum_{i=1}^N{X_{i}Y_{i}}}{||X|| ||Y||}

进一步当X和Y向量归一化后,||X||=||Y||=1,相关系数即为两个向量的乘积

ρX,Y=X∙YρX,Y=X∙Y\rho_{X,Y}=X\bullet{Y}

计算案例

以下以还有一篇文章中的用户-物品关系为例,说明一下皮尔森类似度的计算过程。

皮尔森类似度的原始计算公式为:

不继续展开化简: 计算用户之间的相似度,以usr1与usr5为例 1)定义用户数组(向量)

代码语言:javascript
代码运行次数:0
运行
复制
user1<-c(5.0, 3.0, 2.5)
user5<-c(4.0, 3.0, 2.0)

2)计算方差

代码语言:javascript
代码运行次数:0
运行
复制
var(user1)=sum((user1-mean(user1))^2)/(3-1)=1.75
var(user2)=sum((user5-mean(user5))^2)/(3-1)=1

3)计算标准差

代码语言:javascript
代码运行次数:0
运行
复制
sd(user1)=sqrt(var(user1))=1.322876
sd(user5)=sqrt(var(user5))=1

4)计算协方差

代码语言:javascript
代码运行次数:0
运行
复制
cov(user1, user5)
=sum((user1-mean(user1))*(user5-mean(user5)))/(3-1)
=1.25

5)计算相似度

代码语言:javascript
代码运行次数:0
运行
复制
cor(user1, user5)
=cov(user1, user5) / (sd(user1)*(sd(user5)))
=0.9449112

数学特性和存在问题

以下1)和2)整理自维基百科:

1)代数特性

皮尔逊相关系数的变化范围为-1到1。 系数的值为1意味着X 和 Y可以很好的由直线方程来描述,所有的数据点都很好的落在一条 直线上,且 Y 随着 X 的增加而增加。 系数的值为−1意味着所有的数据点都落在直线上,且 Y 随着 X 的增加而减少。系数的值为0意味着两个变量之间没有线性关系。 因两个变量的位置和尺度的变化并不会引起该系数的改变,即它该变化的不变量 (由符号确定)。也就是说,我们如果把X移动到a + bX和把Y移动到c + dY,其中a、b、c和d是常数, 并不会改变两个变量的相关系数(该结论在总体和样本皮尔逊相关系数中都成立)。我们发现更一般的线性变换则会改变相关系数。

2)几何学含义

对于没有中心化的数据, 相关系数与两条可能的回归线y=gx(x) 和 x=gy(y) 夹角的余弦值一致。 对于中心化过的数据 (也就是说, 数据移动一个样本平均值以使其均值为0), 相关系数也可以被视作由两个随机变量 向量 夹角theta 的余弦值(见下方)。

3)存在问题

这也就是为什么会导致User1和User4更为相似的原因了,尽管User4只对Item101和103评分,但是这两个评分形成的直线与User1形成的直线趋势更为接近。 同时另一个问题是,如果一些几何变换不会影响相关系数,则评分的高低也被忽略掉了,只是分数的趋势会影响。当然这对于矩阵中都是0和1的用户-物品购买矩阵没有什么影响。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018年04月10日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Pearson Similiarity
  • 计算案例
  • 数学特性和存在问题
    • 1)代数特性
    • 2)几何学含义
    • 3)存在问题
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档