皮尔逊相关系数用于度量两个变量X和Y之间的相关(线性相关),其值介于-1与1之间

数学公式:

公式一:

公式二:

公式三:

python代码实现:(公式三)

from math import sqrt

def pearson(v1,v2):
  # Simple sums
  sum1=sum(v1)
  sum2=sum(v2)
  
  # Sums of the squares
  sum1Sq=sum([pow(v,2) for v in v1])
  sum2Sq=sum([pow(v,2) for v in v2])    
  
  # Sum of the products
  pSum=sum([v1[i]*v2[i] for i in range(len(v1))])
  
  # Calculate r (Pearson score)
  num=pSum-(sum1*sum2/len(v1))
  den=sqrt((sum1Sq-pow(sum1,2)/len(v1))*(sum2Sq-pow(sum2,2)/len(v1)))
  if den==0: return 0

  return 1.0-num/den

 

posted on 2016-03-03 16:56  充实自己  阅读(1082)  评论(0编辑  收藏  举报