Вы можете воспользоваться возможностью векторизации numpy для такой метрики ошибки. Следующая функция может использоваться для вычисления RMSPE:
def rmse(y_true, y_pred):
'''
Compute Root Mean Square Percentage Error between two arrays.
'''
loss = np.sqrt(np.mean(np.square(((y_true - y_pred) / y_true)), axis=0))
return loss
(Для ошибки между векторами axis=0
делает явным, что ошибка вычисляется построчно, возвращая вектор. Это не требуется, так как это поведение по умолчанию для np.mean
.)