Machine learning 低R2但高MAPE
我目前正在做一个项目,我必须解决一个基于回归的问题。我基本上必须尝试不同的模型,并比较每一个模型的准确性。到目前为止,我已经尝试过决策树、随机林和Bagging。目前,我正在尝试ANN的。我用来评估模型性能的指标是R2分数、RMSE和MAPE。对于前3款车型,我得到的结果是:Machine learning 低R2但高MAPE,machine-learning,keras,scikit-learn,neural-network,Machine Learning,Keras,Scikit Learn,Neural Network,我目前正在做一个项目,我必须解决一个基于回归的问题。我基本上必须尝试不同的模型,并比较每一个模型的准确性。到目前为止,我已经尝试过决策树、随机林和Bagging。目前,我正在尝试ANN的。我用来评估模型性能的指标是R2分数、RMSE和MAPE。对于前3款车型,我得到的结果是: 决策树: R2:0.608 RMSE:11.640681667132872 MAPE:78.73% 装袋: R2:0.752 RMSE:9.193 MAPE:78.46% 随机林: R2:0.726 RMSE:9.7
决策树:
R2:0.608
RMSE:11.640681667132872
MAPE:78.73%
装袋:
R2:0.752
RMSE:9.193
MAPE:78.46%
随机林:
R2:0.726
RMSE:9.731
MAPE:78.27%
然而,对于ANN,我得到的结果确实令人困惑。
R2:0.264
RMSE:12.034
MAPE:88.73%
正如您所看到的,尽管与其他模型相比R2分数非常低,但MAPE的准确度却出人意料地高。有人能告诉我为什么会发生这种情况吗?
我用于计算MAPE精度的代码是:
#Function to calculate MAPE accuracy
def evaluate(model, test_features, test_labels):
predictions = model.predict(test_features)
errors = abs(predictions - test_labels)
mape = 100 * np.mean(errors / test_labels)
accuracy = 100 - mape
print('Model Performance')
print('Average Error: {:0.4f} degrees.'.format(np.mean(errors)))
print('Accuracy = {:0.2f}%.'.format(accuracy))
return accuracy
另外,我正在使用“保持”评估方法。看一看,看一看