第2章 模型的评估与选择
1、经验误差与过拟合
经验误差
- 定义:经验误差其实就是模型的训练误差
泛化误差
- 定义:泛化误差其实就是模型的泛能能力, 即使用新的样本数据测试训练好的模型时产生的误差
过拟合
- 定义:过拟合其实指训练的模型对训练的样本匹配的过于细致, 导致新的样本进行预测时会出现无训练样本的细微特征而识别错误的情况, 也即泛化能力特别差
- 常见原因:
- 学习能力过强,导致将训练数据的细微特征学习了
- 反向传播算法中的系数过小,导致传递到最前端的w值越来越小,引起过拟合
- 常见原因:
欠拟合
- 定义:样本训练数据较少,导致模型匹配性能差
3、评估方法
定义
-
- 模型评估的目的:完成特定的需求任务
- 评估标准:模型的泛化误差
常用的评价方法
-
- 回归任务
- 均方误差(mean squared error)
- 分类任务 (根据任务需求不同,评价方法也不同)
- 假设不同错误导致的损失代价相等
- 精度和错误率
- 分类正确的样本占总样本的多少百分比
- 查全率、查准率、F1
- 查准率(precision, P):算法分类预测的正例中有多少是真正的正例
- 查全率(recall, R):实际的正例中有多少被算法模型分辨出来
- 查全率和查准率是一对矛盾的度量
- 想让查全率高,则需要增加样本数量,但会导致查准率降低
- PR曲线
- 定义:查全率-查准率曲线
- 目的:比较多个算法或同一模型不同参数的性能度量
- 方法: 1、出现包住:在同一张PR曲线图上绘制不同模型的PR曲线,如果某一模型的PR曲线完全包络另一模型,则该模型的性能较优 2、有交叉:三种方法: 1)比较PR曲线的面积(较难):面积越大越好 2)平衡点(Break-Even point, BEP):查全率=查准率的点,越大越好(此方法过于简化) 3)F1度量:基于查全率和查准率的调和平均,F1=(2*P*R)/(P+R)越大越好
- F1度量扩展
- 一般形式
- 见书P32
- 宏F1
- 微F1
- 一般形式
- ROC与AUC
- ROC曲线的来源
- 学习器得到的输出是概率或实值,对这些概率、实值进行排序后方便使用截断点得到相应的分类,排序的质量就是影响泛化能力的主要因素 截断点的选择是影响查确率和查全率的主要因素(截断点选择靠前,则查准率高,选择靠后,查全率较高)
- ROC:受试者工作特征(Receiver Operating Characteristic) AUC: ROC曲线的面积(Area Under ROC Curve)
- AUC = 1-Lrank
- ROC曲线图考察的是样本预测的排序质量
- ROC曲线的来源
- 精度和错误率
- 假设不同的错误导致的损失代价不等
- 代价敏感错误率和代价曲线
- 目的:衡量不同错误导致的不同损失(可为错误赋予非均匀代价)
- 代价敏感错误率和代价曲线
- 假设不同错误导致的损失代价相等
- 回归任务
2、数据集的划分
数据集划分的目的
-
- 评估训练后的模型的泛化误差
数据集划分的原则
-
- 1、训练数据和验证数据要保证互斥
- 2、样本和训练集、验证集要独立同分布
数据集划分的方法
-
- 1、留出法(hold-out)
- 分类原则:分层采样
- 即:保证样本的类别比例
- 方法: 1、将数据集随机打乱 2、选取整体数据集的2/3~4/5作为验证集 3、训练完毕后记录模型的性能评估值 4、反复多次重复步骤1、2、3,完成训练和记录性能评估值 5、将所有性能评估值的平均值作为最终模型的性能评估值
- 泛化误差的评估方法:以验证集的模型性能评估误差作为模型的泛化误差
- 缺点:引入因训练样本的规模不同而导致的估计偏差 即:将原本要训练的样本拿出一部分做验证而引起样本规模不同导致的估计偏差
- 分类原则:分层采样
- 2、交叉验证法(cross validation)
- 定义:又称k折交叉验证法(K-fold cross validation),k一般取5、10、20
- 方法:(书中图片较为简易理解) 以k=10为例计算: 1、将数据集划分为10类(D1~D10) 2、第一次训练:将D10作为验证集,D1~D9作为训练集训练测试,并记录模型的性能评估误差 2、第二次训练:将D9作为验证集,其余作为训练集训练测试,并记录模型的性能评估误差 3、...以此类推 4、将这10次得到的性能评估误差的均值作为最终的结果
- 1、留出法(hold-out)
-
-
- 特殊情况:留一法(Leave-One-Out)
- 当k=m时(m为数据集的样本数量) 只有一组样本作为验证集
- 缺点:引入因训练样本规模不同而导致的估计偏差(不包含留一法)
- 特殊情况:留一法(Leave-One-Out)
- 3、自助法(bootstrapping)
- 优点:
- 1、减少因训练样本规模不同而导致的估计偏差 2、能够高效的进行实验评估 3、在数据集小、难以有效划分训练\验证集时很有用 4、对集成学习有很大的好处
- 方法:
- 有放回的采样 1、随机从m个样本的原始数据集D中采集一个样本拷贝至采样数据集D'中 2、将采集后的样本放回原始数据集D中 3、按步骤1重新采样并返回D'中,重复执行m次(m即数据集D中样本的数量) 4、将采样后的数据集D'作为训练集,D-D'作为验证集
- 通过上述自助采样,初始数据集D中约有36.8%的样本未在训练集中出现 训练集包含m个训练样本,用于训练 验证集包含原始数据集D的1/3、没在训练集中使用的样本测试 ————这种测试称为包外估计
- 缺点:
- 改变了原有数据的分布结构
- 注:
- 在数据量足够时常使用交叉验证法和留出法
- 优点:
-
调参和最终模型
-
- 基本概念
- 超参数:需要人工手动设置的参数
- 调参(parameter tuning):对算法参数的调节
- 参数不同,同一模型对应的性能往往有显著的差别
- 模型训练的步骤
- 1、划分训练集和验证集,训练模型,根据验证集调整参数 2、将根据训练集和验证集调整好的模型再次通过原始的数据集(未划分的全部数据样本)进行训练,得到最终模型 3、使用实际使用中的数据测试和检验模型,完成实际的应用
- 基本概念
4、学习器性能比较
学习器性能比较非直接比较上述常用的评价标准的大小 而是基于统计假设检验理论进行比较
5、偏差与方差
偏差-方差分解(bias-variance decomposition)是解释学习算法学习性能理论的工具
泛化误差可分解为偏差、方差与噪声之和
-
- E(f; D) = bias^2(x) + var(x) + e^2