对 MSE ERROR 的困惑

数据挖掘 Python 随机森林 评估 毫秒 rmse
2022-02-01 19:42:49

我创建了一个随机森林回归模型并计算了我自己的错误。我还想计算 MAE、MSE 和 RMSE,以将我的结果与类似的用例进行比较。我对结果感到困惑,因为值要小得多。

我使用的随机森林回归函数是默认的。所以我只是好奇是否有人可以解释我的 MAE、MSE、RMSE?还是我做错了什么?

# Random Forest Regressor trainieren
random_state = 42

rf.fit(X_train, y_train)

这些是我自己的错误的结果:

Testset size: 19688
mean error(AVG): 0.10146151388130142
median error (Median): 0.061079373768676316

这些结果让我感到困惑:

# predict the testset
y_pred = rf.predict(X_test)


# Random Forest Basline Model evaluation
print('Mean Absolute Error:', metrics.mean_absolute_error(y_test, y_pred))  
print('Mean Squared Error:', metrics.mean_squared_error(y_test, y_pred))  
print('Root Mean Squared Error:', np.sqrt(metrics.mean_squared_error(y_test, y_pred)))

#Mean Absolute Error: 0.027392195979941525
#Mean Squared Error: 0.00142917555312868
#Root Mean Squared Error: 0.03780443827288907
1个回答

在考虑了很多之后,让我们回顾一下随机森林回归(RFR)的机制:

图像

因此,这种平均模型的想法或过程是一种称为Ensembling的技术。此外,随机森林是一种监督学习算法,它使用集成学习方法进行分类和回归。随机森林是一种装袋技术,而不是一种提升技术。它在训练时使用大量决策树,并输出作为类模式(分类)单个树的 平均预测(回归)的类。图像

如果您查看sklearn 文档,评估的指标是:

  • MSE(默认)---> MSE 的根 ---> RMSE(可选)
  • MAE ---> MAE 的百分比形式 ---> MAPE(可选)

此外,建议通过这篇文章将 MSE 用于连续数据

您可以使用以下方法score(X, y):返回预测的决定系数 R^2。

系数 R^2 定义为(1 - u/v),其中:

  • u是残差平方和((y_true - y_pred) ** 2).sum()
  • v是平方的总和((y_true - y_true.mean()) ** 2).sum()

最好的分数是 1.0,它可以是负数(因为模型可以任意变差)。

始终预测 y 的期望值的常量模型,不考虑输入特征,将获得 0.0 的 R^2 分数。

这个问题的问题是,除了他自己定义的指标公式和一些 SKlearn 指标如下之外,OP 没有分享关于训练和测试数据集上使用的指标评估的信息:

#OP's defined metric #MSE
average_mean_error = (SalesPrice - predPrice) / Salesprice

result_rfbl.insert(2, "predResidualValue", rf.predict(X_test), True) 
result_rfbl.insert(2, "predPrice",  round(result_rfbl["predResidualValue"] * result_rfbl["NEUPREIS"], 2), True) 
result_rfbl.insert(2, "SalesPrice", round(result_rfbl["RESTWERT"] * result_rfbl["NEUPREIS"], 2), True) 

# absolute prozentualer Fehler #MAPE
result_rfbl.insert(2, "ERROR", abs(result_rfbl["SalesPrice"] - result_rfbl["predPrice"])/result_rfbl["SalesPrice"], True)

我假设他的模型似乎过度拟合,如果验证 MSE 高于训练 MSE 并且通过训练 MSE 获得非常不错的结果,但我不想通过书的封面来判断。如果是这种情况,RFR-model 需要应用特征工程RFR 分析正则化,如 Ridge(L2 正则化)和 Lasso(L1 正则化)。

为了更好地理解手动定义的 MSE 和 Sklearn MSE 之间差异背后的原因,我提请您注意来源的决策树第一次拆分的最小加权 MSE计算。SalesPrice