GridSearchCV 及预测误差分析(scikit-learn)

GridSearchCV and prediction errors analysis (scikit-learn)

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

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

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

谢谢!

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

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

我理解了我的概念错误,我会 post 在这里,因为它也许可以帮助像我一样的其他 ML 初学者!

应该可行的解决方案是使用 cross_val_predict 以与 GridSearchCV 中相同的方式拆分折叠。事实上,cross_val_predict re-trains 每次折叠的模型并没有使用之前训练的模型!所以结果与在 GridSearchCV.

期间对验证集的预测相同