交叉验证分数的解释

时间:2018-07-19 07:54:02

标签: cross-validation

我试图理解我在Internet上找到的这部分代码:

kfold = KFold(n_splits=7, random_state=seed)
results = cross_val_score(estimator, x, y, cv=kfold)
print("Results: %.2f (%.2f) MSE" % (results.mean(), results.std()))

cross_val_score是什么? 我知道它可以计算分数。我想了解这些分数的含义以及如何评估它们。

1 个答案:

答案 0 :(得分:0)

这是cross_val_score的工作:

  1. source code of cross_val_score所示,您使用x将提供给cross_val_score的{​​{1}}分为X_train, X_test。 y也一样。
  2. cv=kfold将被保留,X_test的{​​{1}}和X_train将被传递到y_train
  3. 拟合后,将使用estimatorfit()estimator进行评分。
  4. 对于X_test中指定的折叠,将重复执行步骤1至3 ,并且将从y_test返回分数数组。

第3点的解释:评分取决于cross_val_score中的估计量和kfold参数。在此处的代码中,您尚未在cross_val_score中通过任何得分手。因此将使用默认的scoring

如果scoring是分类器,则estimator.score()将返回accuracy。如果它是回归变量,则返回R-squared