码迷,mamicode.com
首页 > 其他好文 > 详细

皮尔逊相关度

时间:2016-03-05 13:17:24      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:

当数据不规范的时候可以给出更好的结果,更好的得出变量的总体变化。

但是公式一点也不直观。。。

# -*- coding: UTF-8 -*-
from math import sqrt
prefs={}#总数据
p1={}
p2={}#两个要比较的数据,用字典表示
si={}#相同的序列表
for item in prefs[p1]:
    if item in prefs[p2]:
        si[item]=1
n=len(si)#得到相同的个数
if n==0: flag = 1
sum1 = sum([prefs[p1][it] for it in si])#求和
sum2 = sum([prefs[p2][it] for it in si])

sum1sq = sum([pow(prefs[p1][it],2)for it in si])#求平方和
sum2sq = sum([pow(prefs[p2][it],2)for it in si])

psum = sum([prefs[p1][it]*prefs[p2][it] for it in si])#求乘积之和

num = psum-(sum1*sum2/n)
den = sqrt((sum1sq-pow(sum1,2)/n)*(sum2sq-pow(sum2,2)/n))
if den==0: flat = 0

r = num/den
if flag != 1:
    print r

 

皮尔逊相关度

标签:

原文地址:http://www.cnblogs.com/webgavin/p/5244516.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!