使用cross_val_score计算训练分数

Iwa*_*mas 1 python scikit-learn cross-validation

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)
Run Code Online (Sandbox Code Playgroud)

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

有办法做到这一点的cross_val_score对象吗?

Foo*_*Bee 6

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

cross_validate功能cross_val_score在两个方面有所不同-

  • 它允许指定多个评估指标。
  • 它返回一个dict ,除测试分数外,还包含训练分数,适应时间和分数时间。


E.Z*_*.Z. -4

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

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

  • 您好,EZ,我认为可以对 X 验证迭代器中使用的训练集进行预测,并了解任何潜在的过度拟合。也许这是不可能的。 (2认同)