使用 cross_val_score 计算训练分数

Computing training score using cross_val_score

我正在使用 cross_val_score 来计算回归变量的平均分数。这是一个小片段。

from sklearn.linear_model import LinearRegression
from sklearn.model_selection import cross_val_score 

cross_val_score(LinearRegression(), X, y_reg, cv = 5)

使用它我得到了一组分数。我想知道验证集上的分数(如上面数组中返回的)与训练集上的分数有何不同,以了解我的模型是过拟合还是欠拟合。

有没有办法用 cross_val_score 对象做到这一点?

你为什么想要那个? cross_val_score(cv=5) 会为您执行此操作,因为它将您的训练数据拆分 10 次并验证 5 个测试子集的准确度分数。此方法已用作防止模型过度拟合的方法。

无论如何,如果您急于验证验证数据的准确性,那么您必须首先在 Xy_reg 上拟合 LinearRegression .

您可以使用 cross_validate 而不是 cross_val_score
根据 doc:

The cross_validate function differs from cross_val_score in two ways -

  • It allows specifying multiple metrics for evaluation.
  • It returns a dict containing training scores, fit-times and score-times in addition to the test score.