机器学习:模型评估与选择
2.1经验误差与过拟合
定义:误差(error):学习器的实际预测输出与样本的真是输出之间的差异
定义:学习器在训练集上的误差称为“训练误差”(training error)或“经验误差”(empirical error);
在新样本上的误差称为“泛化误差”(generalization error)。
显然,我们希望得到泛化误差小的学习器。
然而,我们事先并不知道新样本是什么样,实际能做的是努力使经验误差最小化。
在很多情况下,我们可以学得一个经验误差很小、在训练集上表现很好的学习器,
例如,甚至对所有训练样本都分类正确,即分类错误率为零,分类精度为100%,
但这是不是我们想要的学习器呢?遗憾的是,这样的学习器在多数情况下都不好。
我们实际希望的,实在新样本上能表现得很好的学习器。
为了达到这个目的,应该从训练样本中尽可能的学出适应于所有潜在样本的“普遍规律”,这样才能在遇到新样本时做出正确的判别。
然而,当学习器把训练样本学得“太好”了的时候,很可能已经把训练样本自身的一些特点当做了所有潜在样本都会具有的一般性质,这样就会导致泛化性能下降。
这种现象在机器学习中称为“过拟合”(overfitting),
与过拟合相对的是“欠拟合”(underfitting),这是指对训练样本的一般性质尚未学好。
(要进行比较)
2.2评估方法(比前准备)
将数据集分成训练集和测试集
----2.2.1留出法
----2.2.2交叉验证法
----2.2.3自助法
----2.2.4调参与最终模型
2.3性能度量(比什么)
对学习器的泛化性能进行评估,不仅需要有效可行的实验评估方法,还需要有衡量模型泛化能力的评价标准,这就是性能度量(performance measure)。
性能度量反映了任务需求,再对比不同模型的能力时,使用不同的性能度量往往会导致不同的评判结果;这意味着模型的“好坏”是相对的,什么样的模型是好的,不仅取决于算法和数据,还决定于任务需求。
回归:最常用的性能度量是“均方误差”(mean squared error)
分类:
----2.3.1错误率与精度
----2.3.2查准率、查全率与F1
----2.3.3ROC与AUC
----2.3.4代价敏感错误与代价曲线
聚类:参见第九章
2.4比较检验(怎么比)
有了实验评估方法和性能度量,看起来就能对学习器的性能进行评估比较了:
先使用某种实验评估方法测得学习器的某个性能度量结果,然后对这些结果进行比较。
但怎么来做这个“比较”呢?
是直接取得性能度量的值然后“比大小”吗?不是的!!!不是的!!!不是的!!!
实际上,机器学习中性能比较这件事要比大家想想的复杂得多。
这里面涉及几个重要因素:
- 首先,
- 第二,
- 第三,
----2.4.1假设检验
----2.4.2交叉验证t检验
----2.4.3McNemar检验
----2.4.4Friedman检验与Nemenyi检验
2.5偏差与方差