皮尔森相关系数及python计算代码


在社交网络中,如果对用户进行聚类,一般有两种距离计算方法:节点之间的图举例和节点的相似度计算。其中,节点的相似度计算可以采用皮尔森相关系数


给定连个连续变量X和Y,皮尔森相关系数被定义为等于两个变量的协方差除于两个变量的标准差

系数的取值总是在-1.0到1.0之间,接近0的变量被成为无相关性,接近1或者-1被称为具有强相关性。


皮尔森相关系数是衡量线性关联性的程度,p的一个几何解释是其代表两个变量的取值根据均值集中后构成的向量之间夹角的余弦。


def pearson_distance(vector1, vector2) :
    """
    Calculate distance between two vectors using pearson method
    See more : http://en.wikipedia.org/wiki/Pearson_product-moment_correlation_coefficient
    """
    sum1 = sum(vector1)
    sum2 = sum(vector2)

    sum1Sq = sum([pow(v,2) for v in vector1])
    sum2Sq = sum([pow(v,2) for v in vector2])

    pSum = sum([vector1[i] * vector2[i] for i in range(len(vector1))])

    num = pSum - (sum1*sum2/len(vector1))
    den = sqrt((sum1Sq - pow(sum1,2)/len(vector1)) * (sum2Sq - pow(sum2,2)/len(vector1)))

    if den == 0 : return 0.0
    return 1.0 - num/den


你可能感兴趣的:(数据挖掘与分析)