zoukankan      html  css  js  c++  java
  • 机器学习周志华——模型评估与选择

    (1)经验误差与过拟合

    错误率error rate:分类错误的样本数占样本总数的比例a。

    精度accuracy:分类正确的样本数占样本总数的比例1-a。

    误差error:|实际预测输出-样本真实输出|

    训练误差training error或经验误差empirical error:学习器在训练集上的误差

    泛化误差generalization error:在新样本上的误差

    学习的理想情况:从训练样本中尽可能学出适用于所有潜在样本的“普通规律”

    过拟合(overfitting):学习器把训练样本学的“太好”,很可能导致已将训练样本自身一些特点当作了潜在样本的共性,如些导致泛化性能下降。由于学习能力太强导致。

    欠拟合underfitting:对训练样本的一般性质未学好。通常由于学习能力低下导致。

    欠拟合比较容易解决,过拟合则不太好解决,过拟合是机器学习面临的关键障碍,但过拟合是无法彻底避免的。

    现实学习任务中,选择学习算法及确定参数配置即是“模型选择”(model selection)问题。

    (2)模型评估

    由于无法获取所有样本上的泛化误差,因此一般只能以测试集上的“测试误差”(testing error)作为泛化误差的近似。

    测试集应尽可能与训练集互斥,即测试样本未在训练中使用过。

    针对m个样本的数据集D={(x1,y1),(x2,y2),…,(xm,ym)},如何划分出训练集S和测试集T

    ①留出法hold-out,将数据集直接划分成训练集S和测试集T,为保持划分出的数据集的数据分布的一致性,在分类任务中要保持样本类别比例相似,这种保留类别比例的采样方式一般称为“分层采样”(stratified sampling),例如D共含500个正例,500个反例,分层采样30%作为测试样本,则S应包含350个正例,350个反例,T应包含150个正例,150个反例。

    留出法有很多种划分ST的方法,单次使用留出法,一般要采用若干次随机划分,重复实验评估后取平均值作为评估结果。S太大则训练出的模型更接近D,评估结果具有较好保真性(fidelity),但测试集T太小,评估结果不够稳定准确,反之评估结果的保真性又得不到保证,因此没有完美解决方案,常见做法约2/3~4/5的样本用于训练,剩余用于测试。

    ②交叉验证法,D=D1D2∪…∪DkDiDj=ϕ(ij),Di均是分层采样,各子集互斥,每次用k-1个子集的并集作为训练集,余下那个子集作为测试集,可获得k组训练/测试集,可进行k次训练和测试,最终返回k个测试结果均值。交叉验证评估结果稳定性及保真性很大程度上取决于k的取值,通过称为k折交叉验证(k-fold cross validation),中通常取10,或5、20。k组训练/测试集存在许多种划分方式,k折交叉验证通常随机使用不同划分重复p次,最终评估结果是这p次k折交叉验证结果的均值。

    留一法(Leave-One-Out,简称LOO),假定包含m个样本,令k=m,则得到交叉验证法的特例留一法。留一法的评估结果往往被认为较准确,但数据集较大时,计算开销难以忍受。

    ③自助法bootstrapping,因留出法有交叉验证法均要留一部分样本用于测试,因此评估模型用的训练集比D小,必然引入一些因训练样本规模不同导致的估计偏差(留一法受此影响最小,但计算复杂度太高了)。自助法是个较好的解决方法,它以自助采样法(bootstrap sampling)为基础,即对于容量为m的样本集D,采用有放回的采样方式,从中采取m个样本形成数据集D’,显然其中可能存在重复样本,经推算初始数据集D约有36.8%的样本未出现在D’中,于是将D’作为训练集,而DD’作为测试集。

    自助法适用于数据集较小、难以有效划分训练/测试集时很有用。由于自助法产生的数据集改变了 初始数据集的分布,会引入估计偏差,因此,在初始数据量足够时,留出法和交叉验证法更常用。

    ④调参与最终模型,参数调节或调参(parameter tuning),由于算法的很多参数是在实数范围内取值的,对每种参数都训练出模型是不可行的,现实常用做法,对每个参数选定一个范围和变化步长。即使如此,很多学习算法有大量参数要设定,将导致极大的调参工作程量,参数调得好不好往往对最终模型性能有关键性影响。

    测试集,学得模型在实际使用中遇到的数据称为测试数据;

    验证集(validation set),模型评估与选择中,用于评估测试的数据集。

    用测试集上的判别效果来估计模型在实际使用时的泛化能力,把训练数据划分为训练集和验证集,基于验证集的性能进行模型选择和调参。

    见贤思齐,见不贤而自省
  • 相关阅读:
    HTML DOM教程 14HTML DOM Document 对象
    HTML DOM教程 19HTML DOM Button 对象
    HTML DOM教程 22HTML DOM Form 对象
    HTML DOM教程 16HTML DOM Area 对象
    ubuntu 11.04 问题 小结
    VC6.0的 错误解决办法 小结
    boot.img的解包与打包
    shell里 截取字符串
    从零 使用vc
    Imagemagick 对图片 大小 和 格式的 调整
  • 原文地址:https://www.cnblogs.com/Sweepingmonk/p/11037261.html
Copyright © 2011-2022 走看看