反正有计算皮尔逊相关性作为theano张量输入吗?

时间:2017-04-27 05:30:57

标签: statistics theano

scipy.stats包提供了一个用numpy数组计算皮尔森系数的函数。但是有没有一个库可以通过theano张量作为输入并计算相关性。 Eval()函数是将张量转换为值的选项,但在代码运行期间无法做到这一点。

1 个答案:

答案 0 :(得分:0)

中心余弦相似度与Pearson相关性相同 在theano中,它可以如下计算:

a = T.vector(dtype=theano.config.floatX)
b = T.vector(dtype=theano.config.floatX)

a_centered, b_centered = a - a.mean(), b - b.mean()
r_num = T.dot(a_centered, b_centered)
r_den = T.sqrt(T.dot(a_centered, a_centered) * T.dot(b_centered, b_centered))

# written without the dot products for pedagogical reasons
# r_num = T.sum(a_centered * b_centered)
# r_den = T.sqrt(T.sum(a_centered ** 2) * T.sum(b_centered ** 2))

pearson_corr = r_num / r_den
pearson_corr_fn = theano.function([a, b], pearson_corr)

v1 = np.asarray([3, 4, 5, 7], dtype=np.float32)
v2 = np.asarray([2, 5, 3, 1], dtype=np.float32)

print pearson_corr_fn(v1, v2)