我正在进行车辆占用率预测,我对此非常陌生,我使用了随机森林回归来预测占用率值。
Jupyter笔记本_兰多姆森林
我有大约4800万行,我已经使用了所有的数据来预测入住率,因为人口和入住率由于更高的数字而标准化,我已经预测了。我确信这个模型不好,我该如何解释RMSE和MAE的结果。此外,该图显示预测不好,我是否以正确的方式预测了车辆的占用率。
,请帮我做以下事情
- 随机森林回归是解决这个问题的好方法吗
- 如何改进模型结果
- 如何从结果中解读结果
-
随机森林回归是解决这个问题的好方法吗?
->这个模型只是一个工具,当然可以使用。然而,没有人能回答它是否合适,因为我们没有研究数据的分布。建议您可以尝试逻辑回归、支持向量机回归等
-
如何改进模型结果?
->关于如何改进,我有几个建议:1.在没有确认y值列是否有极值的情况下,不要进行标准化。2.计算RMSE和Mae时,使用原始y值。3.深入理解业务逻辑,增加新功能。4.在博客上了解数据处理和特征工程。
-
如何解释结果
->糟糕的结果并不一定意味着没有价值。你需要比较这个模型是否比现有的方法更好,以及它是否产生了更多的经济价值。例如,误差就是损失,准确度就是增益。
希望这些能帮助你。
建议您使用基于XGBoost的回归器,因此您也可以尝试基于LightGBM的回归器:https://lightgbm.readthedocs.io/en/latest/pythonapi/lightgbm.LGBMRegressor.html
您得到的0.002175863553610834
的RMSE非常接近零。所以,我们可以说你有一个很好的模型。我认为这个模型不需要进一步改进。如果你还想改进它,我认为你应该把算法改为XGBoost
,并使用正则化和早期停止来避免过拟合。
from xgboost import XGBRegressor
model = XGBRegressor(n_estimators = 3000, learning_rate = 0.01, reg_alpha = 2, reg_lambda = 1, n_jobs = -1, random_state = 34, verbosity = 0)
evalset = [(X_train, y_train), (X_test, y_test)]
model.fit(X_train, y_train, eval_metric = 'rmse', eval_set = evalset, early_stopping_rounds = 5)