【问题标题】:Is Random Forest regression is good for this kind of regression problem?随机森林回归对这种回归问题有好处吗?
【发布时间】:2021-09-29 22:48:52
【问题描述】:

我正在研究车辆占用率预测,我对此非常陌生,我使用随机森林回归来预测占用率值。

Jupyter notebook_Random forest

我有大约 4800 万行,我已经使用所有数据来预测入住率,因为人口和入住率由于更高的数字而被标准化,我已经预测。我确定模型不好,我如何解释 RMSE 和 MAE 的结果。此外,该图表明它没有很好地预测,我是否以正确的方式预测车辆的占用率。

请帮我解决以下问题,

  1. 随机森林回归是解决这个问题的好方法吗?
  2. 如何改进模型结果?
  3. 如何解释结果中的结果

【问题讨论】:

  • @JamesZ,对不起,我已经更新了链接。请看一看。
  • 使用基于树的模型对列应用规范化不会影响结果。
  • 如果我是你,我会做一个更好的流程,我们可以测试不同的预处理和使用 GridSearchCV 的模型来找到最佳超参数。首先删除具有唯一行的所有列。对地理位置数据进行特征工程。使用基于树的模型时,不要规范化您的数据。否则为数据预处理创建一个管道。
  • @PraysonW.Daniel,感谢您的解释。请您向我解释一下有关地理定位数据的特征工程的更多信息,可以做些什么来在模型中使用它??
  • 通过地理定位,您可以找到锚点位置。在一个预测房价的项目中,我选择了位置(例如医院、学校、主要车站,然后我计算了到这些位置的短距离。因此,富裕地区的房屋被组合在一起,因为它们与锚点位置的距离相似。

标签: python machine-learning random-forest prediction


【解决方案1】:
  1. 随机森林回归是解决这个问题的好方法吗?

    -> 模型只是一个工具,当然可以使用。但是,没有人能回答它是否合适,因为我们还没有研究过数据的分布。建议可以尝试逻辑回归、支持向量机回归等。

  2. 如何改进模型结果?

    -> 关于如何改进,我有几个建议: 1.不要在未确认y值列是否有极值的情况下进行标准化。 2.计算RMSE和Mae时,使用原始y值。 3.深入理解业务逻辑,增加新功能。 4.在博客上了解数据处理和特征工程。

  3. 如何从结果中解读结果

    -> 不好的结果并不一定意味着没有价值。您需要比较该模型是否优于现有方法以及是否产生了更多的经济价值。例如,误差就是损失,准确度就是增益。

希望这些对你有帮助。

【讨论】:

  • 看了你的代码,猜到你的y值有时间序列的性质。请尝试使用时间序列模型。如需更多帮助,请分享标准化的X和Y(y值与真实值相差不大)
  • 如果你想省事,可以把数据放到GCP的AI平台上,哈哈。
  • 我很乐意为您提供帮助。
  • 时间序列模型:Arima、LSTM、TCN。您可以先在博客上学习这些模型。
  • 建议你试试时间序列模型,根据结果判断好坏。 Robust Model:这个要经过测试才能回答,而且数据是多样的,有时间性的、季节性的、区域性的等等。建议大家先建立几个回归模型和时间序列模型,根据结果判断下一步的优化方向这些模型。
【解决方案2】:

向您推荐了基于 XGBoost 的回归器,因此您也可以尝试基于 LightGBM 的回归器:https://lightgbm.readthedocs.io/en/latest/pythonapi/lightgbm.LGBMRegressor.html

【讨论】:

    【解决方案3】:

    您得到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)
    

    【讨论】:

    • 首先感谢您的回复。问题是我应该将入住率的平均值与 RMSE 进行比较以验证模型吗?从剧情上,我感觉是不是很贴合?我该如何解释情节?因此,您所说的想法是使用 XGBRegressor 模型代替随机森林回归器。
    • 低值反映标准化目标。你需要去规范化才能得到实际的错误。
    • 越接近零越好。您可以将其与平均虚拟模型进行比较。即不断预测平均分数的模型。基本上,在调整相同模型时,即比较相同模型与不同超参数或其他模型时,您希望尽可能降低 RSME
    猜你喜欢
    • 2019-12-06
    • 2018-06-24
    • 2016-04-24
    • 1970-01-01
    • 2019-08-08
    • 2019-10-23
    • 2023-03-14
    • 2019-04-20
    • 2013-05-06
    相关资源
    最近更新 更多