MinMax Scaling 后的随机森林回归 MAPE 除以零误差

Posted

技术标签:

【中文标题】MinMax Scaling 后的随机森林回归 MAPE 除以零误差【英文标题】:Random Forest Regression MAPE Divide by Zero error after MinMax Scaling 【发布时间】:2019-04-07 06:48:52 【问题描述】:

为了提高随机森林回归模型的准确性,我将 scikit learn 标准特征缩放器更改为 MinMax 缩放器。在标准标量期间,我没有收到错误。准确度提高了,但在计算 MAPE 时我得到了以下错误。

Mean Absolute Error: 0.03
Accuracy: -inf %.

__main__:5: RuntimeWarning: divide by zero encountered in true_divide

代码是:

from sklearn.preprocessing import MinMaxScaler
sc_X = MinMaxScaler()
X_train = sc_X.fit_transform(X_train)
X_test = sc_X.transform(X_test)
sc_y = MinMaxScaler()
y_train = sc_y.fit_transform(y_train)


#MAE
errors = abs(y_pred - y_test)
print('Mean Absolute Error:', round(np.mean(errors), 2))

# Calculate mean absolute percentage error (MAPE)
mape = 100 * (errors / y_test)
# Calculate and display accuracy
accuracy = 100 - np.mean(mape)
print('Accuracy:', round(accuracy, 2), '%.')

【问题讨论】:

缩放器似乎产生了零值,它是否将数据的原始最小值到最大值缩放为零到一? 是的@JamesPhillips 它已将一些值缩放为零。知道如何在计算 MAPE 指标期间处理这种情况吗? min(y_test) Out[27]: array([ 0.]) MAPE 可能会在不缩放因变量的情况下给出可接受的结果,值得一试。 是的@JamesPhillips 没有缩放和标准缩放器 MAPE 不会遇到任何问题。但只有使用 MinMax 缩放器 MAPE 进行缩放时才会出现此问题。感谢您的帮助詹姆斯! 【参考方案1】:

不幸的是,这是使用 MAPE 的问题之一。来自***:

平均绝对百分比误差 (MAPE) 等百分比预测准确度度量依赖于 y_t 的除法,这会使 y_t 值接近或等于 0 的 MAPE 分布偏斜。这对于比例尺没有的数据集尤其成问题一个有意义的 0 或用于间歇性需求数据集,其中 y_t=0 频繁出现。

作为替代方案,我建议改用MASE。 MASE 应该能够很好地处理您的问题。

【讨论】:

以上是关于MinMax Scaling 后的随机森林回归 MAPE 除以零误差的主要内容,如果未能解决你的问题,请参考以下文章

R语言编写自定义函数计算分类模型评估指标:准确度特异度敏感度PPVNPV数据数据为模型预测后的混淆矩阵比较多个分类模型分类性能(逻辑回归决策树随机森林支持向量机)

如何在 Python 的随机森林回归器中手动预测?

随机森林(分类与回归)

基于UCI数据集Condition Based Maintenance of Naval Propulsion Plants的随机森林回归

随机森林和adaboost的区别

张量流随机森林回归