sklearn学习笔记11:模型选择与评估

一.交叉验证

仍需要测试集做最后的模型评估,但不再需要验证集

最基本的方法被称为:k-折交叉验证,将训练集划分为k个较小的集合,每一个k折都会遵循下面的过程:

  • 将k-1份训练集子集作为训练集训练模型
  • 将剩余的1份训练集子集用于模型验证(也就是把它当成一个测试集来计算模型的性能指标)

k-折交叉验证得出的性能指标是循环计算中每个值的平均值

  • 使用交叉验证最简单的方法就是在估计器和数据集上调用cross_val_score辅助函数
  • 默认情况下,每个CV迭代计算的分数是估计器的score方法,可以通过使用scoring参数来改变计算方式
  • 当cv参数是一个整数时,cross_val_score默认使用KFold或StratifiedKFold策略,也可以通过传入一个交叉验证迭代器来使用其它交叉验证策略

KFold

  • 将所有的样例划分为k个组,称为折叠(fold),都具有相同的大小
  • 预测函数学习时使用k-1个折叠中的数据,最后一个剩下的折叠会用于测试

ShuffleSplit

  • 将会生成一个用户给定数量的独立的训练/测试数据划分
  • 样例首先被打散然后划分为一对训练测试集合
  • 可以替代KFold交叉验证,因为它提供了细致的训练/测试划分的数量和样例所占的比例等的控制

StratifiedKFold

  • 是KFold的变种,会返回stratified(分层)的折叠:每个小集合中
  • 各个类别的样例比例大致和完整数据集中相同

二.调整超参数

GridSearchCV

  • 提供的网格搜索从通过param_grid参数确定的网格参数值中全面生成候选
  • 当在数据集上拟合时,参数值的所有可能的组合都会被评估,从而计算出最佳的组合

RandomizedSearchCV

  • 实现了对参数的随机搜索,其中每个设置都是从可能的参数值的分布中进行取样
  • 指定如何取样的参数是使用字典完成的
  • 对于每个参数,可以指定在可能值上的分布或离散选择的列表(均匀取样)

三.学习曲线

  • 绘制单个超参数对训练分数和验证分数的影响,有助于发现该估计是否因为某些超参数的值而出现过拟合或欠拟合
  • 学习曲线显示了对于不同数量的训练样本的估计器的验证和训练评分。它可以帮助我们发现从增加更多的训练数据中能获益多少,以及估计是否受到更多来自方差误差或偏差误差的影响
  • 我们可以使用learning_curve函数来绘制这样一个学习曲线所需的值

你可能感兴趣的:(sklearn,sklearn,数据分析)