在循环中的单独数组中迭代计算

Iterativelly Calculate in Separate Array in Loop

我需要数组,一个用于预测,另一个用于真实值。

预测:

array([[ 0.01365575,  0.01523909],
   [-0.00044139,  0.00269908],
   [ 0.03240077,  0.02496629],
   [ 0.03238605,  0.03045709],
   [ 0.03226778,  0.02878774],
   [ 0.03238199,  0.03221421]])

实际值:

array([[0.01212121, 0.01529052],
   [0.        , 0.0030581 ],
   [0.01818182, 0.01559633],
   [0.00757576, 0.007263  ],
   [0.00757576, 0.00382263],
   [0.00757576, 0.01070336]])

我正在尝试使用以下公式计算 mae 和 rmse 的标准值:

std_error = (1/n * sum(error_i- mean_error)^2)^1/2

到目前为止,我正在尝试逐步创建一个包含 mae 和 rmse 值的数组,但没有成功。我正在实施这个:

for x in range(len(preds)):
    mae_std = (preds[:,0] - trues[['t1']])/x

for x in range(len(preds)):
    rmse_std = (((trues[['t2']] - preds[:,1])**2)/x)**1/2 

这种方式需要很长时间,而且永远不会真正结束,不知道为什么。 我希望结果是一个包含错误增量值的数组,然后我可以尝试在 std_error 公式中使用它们。 我究竟做错了什么?有没有办法更快地实现我描述的目标?

假设您的 2 个数组正在对 (x,y) 坐标进行建模,您可以按如下方式计算 mse / mae:

# compute MSE
mse = np.square(preds - real)
mse = np.sum(mse, axis = 1) / mse.shape[1]

# compute MAE
mae = np.sum(np.abs(preds - real), axis = 1) / mse.shape[1]

您可以调整您的特定公式以匹配这些...