scikit-learn中的交叉验证:平均绝对误差为(X_test,y_test)



通常我们将原始特征和目标数据(X,y)拆分为(X_train,y_train)和(X_test,y_test)。

通过使用该方法:

mae_A = cross_val_score(clf, X_train_scaled, y_train, scoring="neg_mean_absolute_error", cv=kfold)

我得到了(X_train,y_train)的交叉验证平均绝对误差(MAE),对吗?

如何获取 (X_test, y_test) 的 MAE(来自以前使用 (X_train, y_train) 获得的交叉验证模型)?

这是正确的方法。通常,应仅使用训练数据训练模型。因此,在交叉验证过程中,即通过模型的超参数,test_set应该保持不可见,否则您可能会通过添加来自测试样本的知识来偏向从模型获得的结果。

我得到了(X_train,y_train)的交叉验证平均绝对误差(MAE),对吗?

是的,cross_val_score显示的错误将仅来自训练数据。所以这个想法是,一旦你对cross_val_score的结果感到满意,你就用整个训练集拟合最终模型,并对y_test进行预测。为此,您可以使用 sklearn.metrics .如果您想获得 MAE,请执行以下操作:

from sklearn.metrics import mean_absolute_error as mae
MAE = mae(y_test, y_pred)

相关内容

  • 没有找到相关文章

最新更新