Source code for ltsm.utils.metrics
import numpy as np
[docs]
def RSE(pred, true):
    return np.sqrt(np.sum((true - pred) ** 2)) / np.sqrt(np.sum((true - true.mean()) ** 2)) 
[docs]
def CORR(pred, true):
    u = ((true - true.mean(0)) * (pred - pred.mean(0))).sum(0)
    d = np.sqrt(((true - true.mean(0)) ** 2 * (pred - pred.mean(0)) ** 2).sum(0))
    return (u / d).mean(-1) 
[docs]
def MAE(pred, true):
    return np.mean(np.abs(pred - true)) 
[docs]
def MSE(pred, true):
    return np.mean((pred - true) ** 2) 
[docs]
def RMSE(pred, true):
    return np.sqrt(MSE(pred, true)) 
[docs]
def MAPE(pred, true):
    return np.mean(np.abs(100 * (pred - true) / (true +1e-8))) 
[docs]
def MSPE(pred, true):
    return np.mean(np.square((pred - true) / (true + 1e-8))) 
[docs]
def SMAPE(pred, true):
    return np.mean(200 * np.abs(pred - true) / (np.abs(pred) + np.abs(true) + 1e-8)) 
    # return np.mean(200 * np.abs(pred - true) / (pred + true + 1e-8))
[docs]
def ND(pred, true):
    return np.mean(np.abs(true - pred)) / np.mean(np.abs(true)) 
[docs]
def metric(pred, true):
    mae = MAE(pred, true)
    mse = MSE(pred, true)
    rmse = RMSE(pred, true)
    mape = MAPE(pred, true)
    mspe = MSPE(pred, true)
    smape = SMAPE(pred, true)
    nd = ND(pred, true)
    return mae, mse, rmse, mape, mspe, smape, nd