开始使用免费开始使用

使用 sklearn 进行交叉验证

正如第 2 章所述,过拟合数据集是分析中常见的问题。模型把训练数据"记得太牢"时就会发生这种情况:在训练用的数据集上表现很好,但在外部数据上无法泛化。

虽然您在第 2 章学到的训练/测试集划分可以避免模型对训练集过拟合,但在进行超参数调优时,可能会对测试集产生过拟合,因为调优的目标是让模型在测试集上取得最佳预测结果。因此,建议在不同的测试集上验证模型。K 折交叉验证可以做到这一点:

  • 将数据集划分为训练集和测试集;
  • 拟合模型、进行预测并计算得分(您可以指定需要的指标,如准确率、精确率、召回率……);
  • 总共重复上述过程 k 次;
  • 输出 10 次得分的平均值。

在本练习中,您将对我们的数据集使用交叉验证,并使用 cross_val_score 函数评估结果。

本练习是课程的一部分

HR Analytics:用 Python 预测员工流失

查看课程

练习说明

  • 从模块 sklearn.model_selection 导入用于实现交叉验证的函数 cross_val_score()
  • 打印模型的交叉验证得分,使用超参数 cv 指定 10 折。

交互式实操练习

通过完成这段示例代码来试试这个练习。

# Import the function for implementing cross validation
from sklearn.model_selection import ____

# Use that function to print the cross validation score for 10 folds
print(____(model,features,target,____=10))
编辑并运行代码