1. ML Notes
1.1. 模型评估与模型选择
错误率: 分类错误的样本数占总样本数的比例。
精度: 1- 错误率
训练误差/经验误差:学习器在训练集上的误差
泛化误差:学习器在新样本上的误差
过拟合与欠拟合
过拟合: 学习器的目标应该是从训练样本中学习到所有样本都包含的一般性特征(即样本的普遍规律),如果学习器的学习能力过于强大,使得学习器学习到训练样本的不太一般的性质容易导致过拟合,过拟合无法避免只能缓解。
欠拟合: 模型对训练样本的一般性质尚未学好。避免欠拟合的方法:决策树扩展分支,神经网络增加轮数等
评估方法
- 留出法: 分一部分用于训练,另一部分用于测试
- 交叉验证法:
- 自助法(bootstrapping):以自助采样法为基础,给定包含m个样本的数据集D,对它采样得到数据集 :每次从D中随机挑选一个样本放入 ,然后放回D,重复执行该过程m次之后,得到 ,始终被没采样到的样本的概率约有 。于是,可将 用作训练集,剩余传递 D\D’用做测试集。这样的测试结果亦称为包外估计。 自助法在数据集较小、难以有效划分训练/测试集时很有用,同时能产生多个不同的训练集,对集成学习非常有用;但是自助法改变了数据集的分布,这会引起估计偏差,因此在数据量足够的时候使用留出法和交叉验证法更好一些。
调参与最终模型
划分验证集用来模型选择和调参
性能度量
- 均方误差
回归任务最常用的性能度量是均方误差:
-
错误率与精度
错误率:分类错误的样本占样本总数的比例
精度:1-错误率 -
查准率、查全率与
错误率衡量的是多少比例的样本被分类错误,如果我们要度量所有正样本中有多少比例被挑了出来则不适用。如信息检索中会关心“检索出的信息中有多少比例是用户感兴趣的”, “用户感兴趣的信息中有多少被检索出来了”。查准率和查全率是更适用于此类需求的性能度量。
显然TP+FN+FP+TN=样本总数,查准率P和查全率R分别定义为:
查准率和查全率是一对矛盾的度量。一般来说,查准率高时,查全率往往偏低。
许多情况下可根据学习器的预测结果对样例进行排序,排在前面的是学习器认为最可能是正例的样本,排在最后的则是学习器认为最不可能是正例的样本。按此顺序逐个把样本作为正例进行预测,则每次可以计算当前的查全率和查准率。以查准率为纵轴、查全率为横轴作图,得到P-R曲线:
当两个曲线没有包含关系时,使用平衡点来度量两个模型的好坏。
平衡点: 查准率=查全率时的取值
更常用的平衡查准率和查全率关系的度量为:
更一般的形式:
当时,查全率有更大的影响,小于1时,查准率有更大影响。
-
ROC与AUC
许多学习器将产生的分类概率和一个阈值进行比较来产生对应的预测类别。若将预测的概率从大到小排序,则若重视查准率,选择的截断位置应该靠前,若更重视查全率,选择截断位置应该更靠后。因此,排序本身的好坏决定了一个模型的性能。
ROC从这个方向出发来研究学习器的泛化性能。ROC曲线:类似于PR曲线,根据学习器的预测结果进行排序,按次顺序每次把样本作为正例进行预测,每次计算”真正例率“和”假正例率“,分别以他们作为纵、横坐标作图,得到"ROC曲线"。
真正例率:
假正例率:当两个模型的ROC曲线不存在包含关系时,使用曲线下的面积:AUC来度量模型的泛化性。
比较检验
- 假设检验
- 交叉验证t检验
偏差与方差
除了估计泛化性能之外,那么一个模型为什么有这样的泛化性能呢?解释泛化性能一般用“偏差-方差分解”。
泛化误差可以分解为:偏差、方差与噪声之和。
偏差、方差和噪声的含义:
- 偏差:度量了学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力。
- 方差:度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响。
- 噪声:表达了在当前任务上任何学习算法所能达到的期望泛化误差的下界,即刻画了学习问题本身的难度。
偏差-方差分解说明,泛化性能是由学习算法的能力、数据的充分性以及学习任务本身的难度所共同决定。给定学习任务,为了取得好的泛化性能,则需使偏差较小,即能够充分拟合数据,并且使方差较小,即使得数据扰动产生的影响小。
一般来说,偏差与方差是有冲突的,这称为偏差-方差窘境。
给定学习任务,假定我们能控制学习算法的训练程度,则在训练不足时,学习器的拟合能力不够强,训练数据的扰动不足以使学习器产生显著变化,此时偏差主导了泛化错误率;随着训练程度的加深,学习器的拟合能力逐渐增强,训练数据产生的扰动渐渐能被学习器学到,方差逐渐主导了泛化错误率;在训练成都充足后,学习器的拟合能力已非常强,训练数据产生的轻微扰动都会导致学习器发生显著变化,若训练数据自身的、非全局的特性被学习器学到了,则将发生过拟合。