一、经验误差与过拟合
1.错误率(E):通常把分类错误的样本数占样本总数的比列称为错误率
例如:m个样本中有a个样本分类错误,则,相应的称为精度。
2.误差:学习器在实际预测输出与样本的真实输入之间的差异。
3.训练误差(经验误差):学习器在训练集上的误差。
4.泛化误差:在新样本上的误差。(希望能够得到泛化误差小的学习器)
5.过拟合:当学习器把训练样本学得“太好”了的时候,很可能已经把训练样本自身的一些特点当做了所有潜在样本都会具有的一般性质,这样就会导致泛化能力下降,这种现象在机器学习中称为过拟合。(多种因素会导致过拟合,最常见的情况是学习能力过于强大,过拟合是机器学习面临的关键障碍,并且是无法彻底避免的)
6.“模型选择”问题:理想化是对候选模型的泛化误差进行评估,但并无法直接获得泛化误差;而训练误差又由于过拟合现象的存在而不适合作为标准。
7.泛化能力:需要训练集合测试集(测试集应该尽可能与训练集互斥)
8.调参:需要验证集
二、评估方法
留出法
1.原理:简单的三七分或者是二八分,将数据集D划分成两个互斥的集合,其中一集合作为训练集S,另一个作为测试集T,在S上训练出模型后,用T来评估其测试误差,作为对泛化误差的估计。 注意:训练、测试集的划分要尽可能保持数据分布的一致性,避免因数据划分过程引入额外的偏差而对最终结果产生影响。
2.缺点:训练集S和测试集T的划分问题,不同的划分得到不同的结果。若S包含绝大多数样本,则训练出的模型可能更接近于D训练出来的模型,但由于T较小,评估结果可能不够稳定准确;反之则导致被评估模型与用D训练出的模型相比有较大差别,从而降低了评估结果的保真性。
交叉验证法(k折交叉验证法)
1.原理:首先将数据集D划分为k个大小相似的互斥子集,每一子集都尽可能保持数据分布的一致性,每次用k-1个子集的并集作为训练集,余下的那个子集作为测试集,这样可获得k组训练/测试集,从而可进行k次训练和测试,最终返回k个测试结果的均值。
2.缺点:数据量较大时,对算法能力的要求较高。
自助法
1.解决问题:由于留出法和价差验证法中都保留了一部分样本用于测试,因此实际评估的模型所使用的训练集比D小,这必然会引入一些因训练样本规模不同而导致的估计偏差。
2.原理:以自助采样法为基础,给定包含m个样本的数据集D,采样产生数据集D’,D中有一部分样本会在D’中多次出现,而另一部分样本不出现,样本在m次采样中始终不被采到的概率是,于是将D’作为训练集,D\D'作为测试集。
3.优点:在数据集较小时、难以有效划分训练/测试集时很适用;此外,自助法能从初始数据集中产生多个不同的训练集,这对集成学习等方法有很大好处。
4.缺点:该法产生的数据集改变了初始数据集的分布,会引入估计偏差。
调参与最终模型
1.参数:一类是算法的参数,称为“超参数”,另一类是模型的参数。(参数配置不同,学得模型的性能往往不同,所以调参和算法选择没什么本质区别)
2.验证集:模型评估与选择中用于评估测试的数据集。
性能度量
1.定义:对学习器的泛化能力的评估,不仅需要有效可行的实验评估方法,还需要衡量模型泛化能力的评价标准,这就是性能度量。性能度量反应了任务需求。 注意:模型的好坏,不仅取决于算法和数据还决定于任务需求。
错误率和精度(分类任务中最常用的两种性能度量)
查准率、查全率和F1
1.查准率(准确率P):预测结果中有多少是对的
2.查全率(召回率R):真正对的有多少被预测出来了
注意:查准率和查全率是一对矛盾的度量
3.F1:基于查准率和查全率的调和平均
ROC与AUC
ROC 曲线,即接收者操作特征曲线,ROC曲线产生于第二次世界大战期间,最早用在信号检测领域,侦测战场上的敌军载具(飞机、船舰)。现在是是用来评价二分类模型性能的常用图形工具。它通过显示真阳性率(True Positive Rate,简称 TPR)与假阳性率(False Positive Rate,简称 FPR)之间的权衡来帮助我们理解模型的分类能力。
AUC,即曲线下面积(Area Under Curve),是 ROC 曲线下面积的一个数值表示。它提供了一个定量的指标,用来衡量分类模型的整体表现。AUC 值范围从 0 到 1,值越大表示模型性能越好。
AUC 的优缺点
优点:
- 阈值无关:AUC 衡量的是模型在所有可能的分类阈值下的表现,因此不受单一阈值的影响。
- 综合性能评估:AUC 综合了 TPR 和 FPR 的信息,能够全面评估模型的性能。
缺点:
- 可能不适用于极度不平衡的数据:在极度不平衡的数据集上,AUC 可能无法准确反映模型的性能,需要结合其他评估指标使用。
- 解释复杂:对于非专业人士来说,AUC 的解释和理解可能比较困难。
比较检验
有了实验评估方法和性能度量,看起来就能对学习器的性能进行评估比较了:先使用某种实验评估方法测得学习器的某个性能度量结果,然后对这些结果进行比较。但是,怎么比较?
机器学习中性能比较主要涉及一下几个重要因素:
1.我们希望比较的是泛化能力,然而通过实验评估方法获得的是测试集上的性能,两者的对比结果可能未必相同。
2.测试集上的性能与测试集本身的选择有很大的关系,且不论使用大小不同的测试集会得到不同的结果,即便使用相同大小的测试集,若包含的测试样例不同,测试结果也会不同。
3.很多机器学习算法本身有一定的随机性,即便用相同的参数设置在同一个测试集上多次运行,其结果也会不同。
统计假设检验为学习器性能比较提供了 重要依据。
2.4.1 假设检验
1.“假设”:对学习器泛化错误分布的某种判断或假设,因为现实任务中我们并不知道学习器的泛化错误率,只能获知器测试错误率。
2.二项检验
3.t检验
注意:上述两种检验方法是对于单个学习器泛化性能的假设进行检验,现实任务中,更多时候需要对不同学习器的性能进行比较。
2.4.2 交叉验证t检验
1.基本思想:若两个学习器的性能相同,则它们使用相同的训练/测试集得到的测试错误率应相同。
注意:欲进行有效的假设检验,一个重要的前提是测试错误率均为泛化错误率的独立采样。
偏差与方差
对学习算法除了通过实验估计其泛化性能,还希望了解它“为什么”具有这样的性能,“偏差-方差分解“是解释学习算法泛化能力的一种重要工具。
泛化误差可分解为偏差、方差与噪声之和。
1.偏差:度量了学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力。
2.方差:度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响。
3.噪声:表达了在当前任务上任何学习算法所能达到的期望泛化误差的下界,即刻画了学习问题本身的难度。
偏差和方差是有冲突的,称为偏差-方差窘境。