【问题标题】:GridSearchCV and prediction errors analysis (scikit-learn)GridSearchCV 和预测错误分析(scikit-learn)
【发布时间】:2021-01-11 02:59:03
【问题描述】:

我想手动分析我的 ML 模型(无论哪个)出现的错误,并将其预测与标签进行比较。据我了解,这应该在验证集的实例上完成,而不是在训练集上。 我通过 GridSearchCV 训练了我的模型,提取了 best_estimator_,这是在交叉验证期间表现最好的模型,然后在整个数据集上重新训练。

因此,我的问题是:如果我的最佳模型在整个训练集上重新训练,我如何才能在验证集上获得预测以与标签进行比较(不接触测试集)?

一种解决方案是在执行 GridSearchCV 之前进一步拆分训练集,但我想必须有更好的解决方案,例如在交叉验证期间获取验证集的预测。有没有办法获得这些预测以获得最佳估计器?

谢谢!

【问题讨论】:

    标签: python scikit-learn gridsearchcv


    【解决方案1】:

    您可以使用从 GridSearchCV 获得的模型计算验证曲线。阅读文档here。您只需要为要检查的超参数和评分函数定义数组。这是一个例子:

    train_scores, valid_scores = validation_curve(model, X_train, y_train, "alpha", np.logspace(-7, 3, 3), cv=5, scoring="accuracy")
    

    【讨论】:

    • 谢谢,我不知道这个方法!但是,我的问题是关于如何在验证集上获得预测的值,但我想我理解了我的概念错误(见答案)
    【解决方案2】:

    我理解我的概念错误,我会在这里发布,因为它可能可以帮助像我这样的其他一些 ML 初学者!

    应该可行的解决方案是使用cross_val_predict 拆分折叠,方法与GridSearchCV 中的相同。事实上,cross_val_predict 每次折叠都会重新训练模型,并且不要使用之前训练的模型!所以结果与在GridSearchCV 期间获得验证集的预测相同。

    【讨论】:

      猜你喜欢
      • 2018-05-14
      • 2015-03-01
      • 2017-12-22
      • 2018-01-27
      • 2018-01-09
      • 2015-01-12
      • 2017-09-23
      • 1970-01-01
      相关资源
      最近更新 更多