模型评估与选择

参考西瓜书与 AndrewNG ML 课程

http://www.jianshu.com/p/86abc0b4eb4c 简明总结

1.经验误差与过拟合

2.评估方法

以测试集来测试学习器对新样本的判别能力,以测试误差作为泛化误差的近似。通常假设测试样本也是从样本真实分布的独立同分布采样获得。

需要注意测试集应该尽可能与训练集互斥,即测试样本尽量不在训练集中出现、未在训练过程中使用过。

于是需要对数据D进行划分出训练集S和测试集T。

  1. 2.1.留出法

直接将数据集D划分为两个互斥的集合S和T。在S训练出模型,用T评估测试误差。
需要注意,训练/测试集应该尽可能保持数据的一致性,避免由于数据划分过程引入产生额外的偏差而对最终结果产生影响。

单次留出法往往结果不够准确,一般采用若干次随机划分、重复实验评估取平局值。但是S与T的取值一般是2/3~4/5用于S,剩余用于测试.

  1. 2.2.交叉验证

将D划分为k个大小相似的互斥子集(分层采样)。每次取k-1个子集做训练集,剩下1个做测试集,进行k次训练和测试,最终返回均值,也称作“k折交叉验证”。交叉验证的稳定和保真性取决于k,k一般取值为10,其他的有5,20等。

将数据进行划分通常要随机使用不同的划分p次,取p次k折交叉验证均值,如“10次10折交叉验证”。

若D包含m个样本,k=m称作“留一法”,该方法不收样本划分方式的影响。往往认为比较准确,但是数据集交大时候开销过大。另外NFL表明未必比其他评估算法准确。

  1. 2.3.自助法(bootstrapping)

减少样本S和T规模不同造成的影响。

具体步骤如下:

给定包含m个样本的数据集D,我们对他进行采样产生数据集D’:每次随机从D中挑选一个样本个样本,将其拷贝放到D’中,然后再将该样本重新放回初始数据集D,使得该样本在下次采样时候仍有可能被采到;这个过程重复m次以后就得到包含m个样本的D’。显然D中有一部分样本会在D‘中重复出现多次,而一些则不会出现,不会出现的概率是:
limm→∞(1−1m)→1e≈0.368

即原始数据集中有36.8%不会出现在D’中。

于是我们可以用D’做训练集,D/D’做测试集,这样实际评估的模型与期望评估的模型都是用m个样本。而仍有1/3没在训练集中的样本用于测试。这样的测试结果称作“包外估计”。

优点:

  • 数据集较小,难以划分训练、测试集时很有用
  • 能从原始数据集产生多个不同训练集,对集成学习等有很大好处

    缺点:

  • 改变了原始数据集分布,会引入估计误差。
    因此,在初始数据量足够时,留出法和交叉验证使用更多。

  • 2.4.调参与最终模型

    1. 2.3.1.具体步骤如下:

    2. 2.3.2.优缺点

3.性能度量

  1. 3.1.错误率与精度

  2. 3.2.查准率、查全率与F1

    1. 3.2.1.平衡点(Break-Even Point, BEP)

    2. 3.2.2.F1度量

    3. 3.2.3.更一般的Fβ

3.3.ROC与AUC

3.5.PR与ROC

3.6.代价敏感错误率与代价曲线

4.比较检验

比较两个学习器的性能量度问题,把比较泛化能力,转化为比较它们的错误率

  1. 4.1.假设检验

  2. 4.2.交叉验证t检验

  3. 4.3.McNemar检验

  4. 4.4.Fridman检验与Nemenyi检验

    1. 4.1.1.二项检验

    2. 4.1.2.t检验

5.偏差与方差

results matching ""

    No results matching ""