模型评估与改进

模型评估与改进

一、交叉验证

k折交叉验证:将数据分成k部分,每部分叫做。在训练时,一个折作为测试集,其余折作为训练集。

优点

  • 对数据的使用更加高效
  • 可以提供模型对训练集选择的敏感性信息
  • 每个样例刚好在测试集中出现一次

缺点

  • 增加了计算成本
  • 速度慢(比单次划分大约慢k倍)

分层k折交叉验证

划分数据,使得每个折中类别之间的比例与整个数据集中的比例相同

分层k折交叉验证比k折交叉验证有更好的泛化性能

留一法交叉验证

每个折只包含单个样本的k折交叉验证,单个数据点作为测试集

  • 耗时
  • 小型数据集上有好的估计结果

打乱划分交叉验证

训练集取train_size个点,测试集取test_size个点,重复n_iter次。

  • 可以在训练集和测试集之外独立控制迭代次数
  • 允许每次迭代仅使用部分数据(train_size、test_size之和不等于1)

分组交叉验证

适用于数据中的分组高度相关

二、网格搜索

尝试参数的所有可能组合

1.简单网格搜索

对参数使用for循环,保存得分最高的参数组合

2.参数过拟合的风险与验证集

任何根据测试集精度所做的选择都会将测试集的信息“泄露”到模型中。因此保留一个单独的测试集是很重要的,它仅用于最终评估。

3.带交叉验证的网格搜索

**嵌套交叉验证 **不是只将原始数据一次划分为测试集和训练集,而是使用交叉验证进行多次划分

外层循环遍历将数据划分为训练集和测试集的所有划分。对于每种划分都运行一次网格搜索。然后,对于每种外层划分,利用最佳参数设置计算得到测试集分数。

主要用于评估模型在特定数据集上的效果

交叉验证与网格搜索并行 一种交叉验证划分下使用特定参数设置来构造一个模型,与利用其它参数的模型是完全独立的。这使得交叉验证与网格搜索成为多个CPU内核或集群上并行化的理想选择。

三、评估指标与评分

朴素的指标:

  • 分类性能:正确分类的样本所占的比例
  • 回归性能:R2

1.二分类指标

正类反类,其中正类是要寻找的类

假正例假反例(统计学中的第一类错误和第二类错误)

不平衡数据集 精度不再是一个很好地度量

混淆矩阵
模型评估与改进_第1张图片

  • 精度 正确预测的数量与所有样本数量之比

A c c u r a c y = T P + T N T P + T N + F P + F N Accuracy=\frac{TP +TN}{TP+TN+FP+FN} \quad Accuracy=TP+TN+FP+FNTP+TN

  • 准确率 预测为正例的样本中真正正例的比

P e r s i o n o n = T P T P + F P Persionon=\frac{TP}{TP+FP} \quad Persionon=TP+FPTP

  • 召回率 正类样本中预测为正类的比

R e c a l l = T P T P + F N Recall=\frac{TP }{TP+FN} \quad Recall=TP+FNTP

  • f-分数 准确率与召回率的调和平均

F = 2 ∗ p e r c i s i o n ∗ r e c a l l p e r c i s i o n + r e c a l l F=2*\frac{percision*recall}{percision+recall} \quad F=2percision+recallpercisionrecall

改变模型中用于做出分类决策的阈值,是一种调节给定分类器的准确率和召回率之间折中的方法

2.多分类指标

多分类的精度:正确分类的样本所占的比例

通常,多分类结果比二分类结果更加难以理解

对于不平衡数据集,常用多分类版本的f-分数

  • 宏平均:计算未加权的按类别f-分数。对所有类别给出相同权重
  • 加权平均:以每个类别的支持作为权重来计算按类别f-分数的平均值
  • 微平均:计算所有类别中假正例、假反例、真正例的总数,利用这些计数计算准确率、召回率和f-分数

每个样本同等看待适用于微平均,每个类别同等看待适用于宏平均

3.回归指标

R2是评估模型的直观指标

你可能感兴趣的:(机器学习)