这两种计算Pearson Correlation的不同方法是否显着不同?

时间:2018-05-30 18:08:46

标签: tensorflow machine-learning statistics deep-learning pearson-correlation

我正在使用Pearson Correlation作为我的损失函数训练深度神经网络。要计算预测和标签(每批)之间的皮尔森相关性(p),我有两种方法:

  1. 逐行计算p并将它们相加,然后将其除以批量大小以获得平均值p
  2. 一步计算p:将所有预测展平为x,标记为y,并计算p = pearson_loss(x,y)
  3. 例如,输入:

    X = [[1,2],[3,4]]Y = [[-1,-2],[-3,-4]]

    1. 计算第一行p1 = pearson_loss([1,2],[-1,-2]),然后计算第二行p2 = pearson_loss([3,4],[-3,-4]),并获得平均p = (p1+p2)/2.
    2. 计算p = pearson_loss([1,2,3,4], [-1,-2,-3,-4])
    3. 这两种方法有很大区别吗?

      PS: 在Tensorflow中,我使用Keras定义了皮尔逊损失(使用方法2):

      def pearson_loss(x, y):
          mx = K.mean(x)
          my = K.mean(y)
          xm, ym = x-mx, y-my
          r_num = K.sum(tf.multiply(xm,ym))
          r_den = K.sqrt(tf.multiply(K.sum(K.square(xm)), K.sum(K.square(ym))))
          r = r_num / r_den
          # ensure r is in range
          r = K.maximum(K.minimum(r, 1.0), -1.0)
          return -r
      

0 个答案:

没有答案