机器学习-学习笔记 模型评估与选择
经验误差与过拟合
了解错误率 ,精度 ,误差 ,训练误差(经验误差) ,泛化误差的概念
过拟合(过配)和欠拟合(欠配)
过拟合就是过度拟合,即将样本自身的一些特点当做了样本的一般特性, 使得泛化能力降低,注意,过拟合无法避免。
欠拟合则与之相反。
模型选择时,选择泛化误差最小的, 但是我们无法直接获得泛化误差,而训练误差因为过拟合的存在而不适合作为判断标准。
评估方法
留出法
将数据D划分为二个互斥的集合,一个集合训练完,另一个集合用来将第一个集合训练完的模型进行误差测试。
交叉验证法
就是将集合分为k个大小相似的互斥子集, 分为训练集、测试集,进行误差测试。
自助法
采用自主采样法, 自动生成训练和测试集,进行误差测试。
适用于数据集较小的情况,非常有用。
调参和最终模型
进行参数步长的设定,让其自行调参,测试误差。
性能度量
对学习器进行评估,不仅需要科学可行的方法, 还需要有衡量模型泛化能力的评估标准,这就是性能度量。
性能度量反映了任务需求,在预测任务中,进行性能评估,把预测结果与真实标记进行比较即可。
错误度与精度
跟前面说的错误度和精度一样。
查准率、查全率与F1
查准率就是找到的里面,正确的所占的比例。
查全率就是在正确的里面,查出来的多少,所占正确的比例。
往往二者不可得兼。
ROC与AUC
用来研究学习器泛化能力的有力工具。
ROC(受试者工作特性), 我们根据学习期的预测结果对样例进行排序,按此顺序逐个把样本作为正例进行预测,每次计算出二个重要的值,分别为他们的横纵轴,就得到ROC图。
AUC 就是比较ROC下面的面积如下图。
代价敏感错误率与代价曲线
这里引出非均等代价的概念,之前的例子都是均等代价。
在非均等代价下,就不可以用ROC来表示性能,而是用代价曲线来表示。
比较检验
当我们得出了性能度量后,我们应该怎么进行比较呢?
我们引出下面几个比较检验的概念。
假设检验
假设检验就是对错误率(也可以是别的度量或者某种情况)进行假设(通常假设在某个范围内),接着进行二项检验或t检验。
交叉验证t检验
交叉验证在有2个或者多个学习器的情况下,假设多个学习器的性能相同,进行交叉验证,就是将数据集进行多次训练和测试,将多个学习器的性能(在这里是错误率)进行t检验。
McMemar检验
在进行留出法对2个学习器进行性能测试的时候, 我们会得到错误率以及二个学习器的差别,我们假设二个学习器性能一样,那么在进行下述计算后,得到的平均错误率较小的那个学习器性能则更优。
Friedman检验与Nemenyi后续检验
Friedman检验就是将多个算法和多个数据进行交叉多次训练和测试,得到的结果,如果得到的结果有显著的区别,则进行Nemenyi后续检验,计算出平均临界值域, 然后进行,二二比较,如果超出临界值域,则二个算法显著不同,反之,而差距不大。
偏差与方差
偏差-方差分解是解释学习算法泛化性能的一种重要工具。
偏差度量了学习算法的期望预测与真实结果的偏离程度(拟合能力)。
方差度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响。
噪声则表达了在当前任务上任何学习算法所能达到的期望泛化误差的下界,即刻画了学习问题本身的难度。