【问题标题】:How to justify using a prediction model with higher RMSE (cv=10)如何证明使用具有更高 RMSE (cv=10) 的预测模型是合理的
【发布时间】:2018-01-19 17:38:17
【问题描述】:

我正在研究预测模型。为了得到最好的模型,我使用 cross_val_score 来比较 CV=10 和 RMSE 的不同模型,我得到如下:

                                       Lasso      SVR        NuSVR  GradientBoostingRegressor   RandomForestRegressor
Modeling Methods(15 fact and FR)    0.748253    0.779394    0.776631    0.796389                  0.792362

由此,很明显基于 RMSE 的最佳模型是 Lasso,但我尝试用它来预测看不见的数据,它只给出一个数字,例如 31.07。而 GradientBoostingRegressor 提供所有模型中最好的预测。

现在我想知道如何证明采用 GradientBoostingRegressor 模型是合理的,而它具有更高的 RMSE?

我的样本看不见的数据,来自 Lasso 的预测

 Disaster Number_left       county_state  Total Destroyed  pred_TD_actual  \
0          279-17          Camden_MO                8       31.043349   
1          279-17            Cole_MO               13       31.043349   
2          279-17            Dent_MO                3       31.043349   

【问题讨论】:

  • “像 31.07 这样的单个数字”是什么意思?看不见的数据中有多少数据点?
  • 我在看不见的数据中有 29 个数据点,对于每个数据点,套索给出 31.07 作为预测,即使在微调其参数后也是如此
  • 你能提供一个你的dada样本吗?另外,您是否检查了 Lasso 的非零系数是什么?
  • 我添加了看不见的数据,没有检查非零系数
  • 我建议检查一下。如果每个数据点都得到完全相同的输出,那么它们可能全部(或除极少数之外的全部)都是 0,并且它们不为 0 的特征是相同的。

标签: machine-learning scikit-learn cross-validation


【解决方案1】:

StratifiedKFold 为我做了诀窍,即在应用交叉验证之前对数据进行洗牌。现在,cv 分数最低的模型也可以根据需要提供良好的预测

【讨论】:

    猜你喜欢
    • 2016-10-27
    • 2021-08-28
    • 1970-01-01
    • 1970-01-01
    • 2015-05-22
    • 2022-07-28
    • 2020-08-24
    • 1970-01-01
    • 2018-11-28
    相关资源
    最近更新 更多