代码之家  ›  专栏  ›  技术社区  ›  lazylama

使用numpy确定两个矩阵之间的距离

  •  0
  • lazylama  · 技术社区  · 4 年前

    我正在使用Pythons numpy开发自己的架构搜索算法。目前,我正试图确定如何开发一个成本函数,可以看到X和Y之间的距离,或者两个矩阵之间的距离。 我想将两者之间的差异减小到一个有意义的标量值。

    理想情况下,在0和1之间,这样如果矩阵中的两组元素在数值和位置上都相同,则返回0。

    在下面的例子中,我有我的算法X的输出。X和Y都是相同的形状。我试着把这两个矩阵的差值相加;然而,我不确定使用求和是否适用于所有条件。我也试着回归均值。但我认为这两种方法都行不通。除了循环遍历两个矩阵并直接比较元素外,还有没有一种方法可以捕捉标量的差异程度?

    Y = np.arange(25).reshape(5, 5)
    
    for i in range(1000):
        X = algorithm(Y)
        
        # I try to reduce the difference between the two matrices to a scalar value
        cost = np.sum(X-Y)
    
    1 回复  |  直到 4 年前
        1
  •  1
  •   DYZ    4 年前

    有很多方法可以计算两个矩阵之间的标量“差”。这里仅举两个例子。

    1. 均方误差:

      ((m1 - m2) ** 2).mean() ** 0.5
      
    2. 最大绝对误差:

      np.abs(m1 - m2).max()
      

    度量标准的选择取决于你的问题。