ML笔记(2)模型评估与选择

2.1 经验误差与过拟合

  • 错误率(error rate):分类错误的样本数占样本总数的比例。

  • 精度(accuracy):精度 = 1 - 错误率(常常以百分比的形式书写)

  • 误差(error):实际预测输出与样本的真实输出之间的差异。

  • 训练误差(training error)/经验误差(empirical error):学习器在训练集上的误差。

  • 泛化误差(generalization error):新样本/测试集上的误差。

我们实际希望得到的是从新样本上能表现得很好的学习器,即泛化误差小。为了达到这个目的,应该从训练样本中尽可能学出适用于所有潜在样本的“普遍规律”。

学习器把训练样本学得太好了的时候,很可能已经把训练样本自身的一些特点当作了所有潜在样本都会具有的一般性质。称之为“过拟合”(overfitting)。相对地,还没有学好训练样本中的一般性质称为“欠拟合”(underfitting)。

2.2 评估方法

通过实验测试来对学习器的泛化误差进行评估并进而做出选择。为此,需要使用一个"测试集"(testing set)来测试学习器对新样本的判别能力,然后以测试集上的测试误差(testing error)来作为泛化误差的近似。

1. 留出法
简单来说就是将样本分成互斥的两个集合,将其中一个作为训练集,另外一个作为测试集。
需要注意的是:在划分数据集时应保持数据的一致性。如分类任务中训练集和测试集的样本应保持相同比例
为了减少分割方式带来的差异,一般要采用若干次随机划分、重复进行实验评估后取平均值作为留出法的评估结果

2. 交叉验证法
先将数据集D划分为k个大小相似的互斥子集并尽可能保持数据分布的一致性(分层采样)。然后每次用k-1个子集的并集作为训练集,余下的那个子集作为测试集。这样就获得了kk组的训练集和测试集,然后就进行k次训练。
返回的是k个测试结果的均值。交叉验证法评估结果的稳定性和保真性很大程度上取决于k的取值。
ML笔记(2)模型评估与选择
一般K的取值为10,考虑到数据大小不同,K值的范围可大可小。

3 自助法(bootstrapping)
有放回的拿取m个样本,根据极限计算存在36.8%的样本未出现在取出样本中。

优点:

  • 自助法在数据集比较小,难以有效划分训练/测试集的时候很有用。

  • 能够从初始数据集中产生多个不同的数据集。对集成学习等方法有很大好处。

缺点:

  • 自助法产生的数据集改变了初始数据集的分布,引入了估计偏差。

  • 初始数据足够的情况下,留出法和交叉验证法更常用一些。

2.3 调参与最终模型

学习算法的很多参数都是在范围内取值,因此对每种参数配置都训练出模型来是不可行的。

现实中常用的做法是对每个参数选定一个范围变化步长。eg: 在[0,0.2]范围内以0.05为步长,则实际要评估的候选参数数值有5个。这是在计算开销和性能估计之间进行折中的结果。

这里提一句,在调参的过程中可能同时调整很多超参数。如KNN算法中的P,N。通常情况下回使用网格搜索(gridsearch)sklearn中使用的库是gridsearchCV,CV就是交叉验证的意思。

2.4性能度量

这是对模型泛化能力的评价,不同的模型有不同的评价标准。

2.4.1 常见评价指标

1.回归任务的评价标准:均方误差
ML笔记(2)模型评估与选择

这个是预测值和真实值差的平方再开个根号,也就是我们常说的R方值。

2.分类任务
ML笔记(2)模型评估与选择这里II是一个指示函数,相等时返回1,不相等时返回0
通俗来说就是:分类错误的样本数/总样本数

分类精度:ML笔记(2)模型评估与选择

2.5查准率、查全率与F1