【问题标题】:How to calculate RMSPE in python using numpy如何使用 numpy 在 python 中计算 RMSPE
【发布时间】:2019-04-09 11:40:24
【问题描述】:

我正在使用Rossmann dataset. 进行多变量预测,我现在需要使用 RMSPE 指标来评估我的模型。我看到了相关的公式here。但我不确定如何使用 numpy 有效地实现这一点。任何帮助深表感谢。

【问题讨论】:

    标签: python-3.x numpy machine-learning


    【解决方案1】:

    您可以利用 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 的默认行为。)

    【讨论】:

    • 这给了你正确的答案,但百分比误差的实际公式应该是 (y_true - y_pred) / y_true。当你把它平方时,它没有区别,只是为了清楚起见......
    【解决方案2】:

    它应该被基本事实规范化。

    RMSPE equation

    def rmspe(y_true, y_pred):
        return np.sqrt(np.nanmean(np.square(((y_true - y_pred) / y_true))))*100
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-27
      • 2011-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-22
      • 1970-01-01
      相关资源
      最近更新 更多