机器学习模型评估与选择

模型评估与选择

经验误差与过拟合

  • 错误率:分类错误的样本数占样本总数的比例,同时,精度=1-错误率
  • 误差:学习器的实际预测输出与样本的真实输出之间的差异称为“误差”,学习器在训练集上的误差称为“训练误差”或者“经验误差”,在新样本上的称为“泛化误差”
  • 过拟合:当学习器把训练样本自身的一些特点当做所有潜在样本都会具有的一般特性的现象,导致泛化能力下降

评估方法

对模型进行评估与选择时,可以通过实验测试来对学习器的泛化能力进行评估进而做出选择,这样,我们将所有样本分为训练集和测试集两个集合。产生训练集S和测试集T的方法有以下几种。

  • 留出法
    直接将数据集D划分为两个互斥的集合,一个作为训练集S,另一个作为测试集T,一般采用若干次随机划分、重复进行实验评估后取均值作为返回结果。需要注意的是,训练集、测试集的划分应尽可能保持数据分布的一致性,即通过分层采样得出。至于训练集和测试集所占数据集的百分比,没有完美的解决方案,常见做法是将大约2/3~4/5的样本用于训练,其余则用于测试。
  • 交叉验证法(cross validation)
    现将数据集D划分为k个大小相似的互斥子集,每个子集都尽可能保证数据分布的一致性。每次用k-1个子集的并集作为训练集,剩余的一个作为测试集,这样得到k个训练/测试集,可得到k次训练和测试,最终返回k个测试结果的均值。显然,其结果的稳定性和保真性在很大程度上取决于k的取值,因此,把交叉验证法称为“k折交叉验证(k-fold cross validation)”。与留出法相似,将数据集D划分为k个子集仍然有多中方法,因此,k折交叉验证通常需要随机使用不同的划分重复p次,最终结果为p次折交叉验证的均值,常见的有10次10折交叉验证。
  • 自助法(bootstrapping)
    在给定包含m个样本的数据集中,对其进行采样产生数据集D’:每次随机从D中挑选一个样本,将其拷贝放入D’,然后将该样本放回初始数据集D中,使得该样本在下次采样时仍可能被采到;这个过程重复执行m次,就得到了包含m个样本的数据集D’,这就是自助采样的结果。取极限可以估计,在m次采样中始终不被采到的概率为1/e=0.368。于是,我们可将D’作为训练集,D-D’作为测试集,这样,实际评估的模型与期望评估的模型都使用m个训练样本,而我们仍有总量约1/3的、没在训练集出现过的样本用于测试,这样的测试结果,也称为“包外估计”。
    自助法在数据集较小难以有效划分训练/测试集时很有用。

调参

  • 机器学习常涉及两类参数
    1. 算法的参数,也称为“超参数”,数目常在10个以内,通常由人工设定多个参数候选值后产生模型
    2. 模型的参数,数目可能很多,通过学习来产生多个候选模型
  • 参数调节,简称调参

性能度量


  • 均方误差
  • 错误率与精度
  • 查准率、查全率和F1

查准率:P=真正例/(真正例+假正例)。

查全率:R=真正例/(真正例+假反例)。

F1=(2*P*R)/(P+R)。

  • 受试者工作特征(ROC)与ROC曲线下的面积(AUC)
  • 代价敏感错误率和代价曲线

比较检验

基于比较检验结果我们可以推断出,若在测试集上观察到学习器A比B好,则A的泛化性能是否在统计意义上优于B,以及这个结论的把握性有多大。

  • 假设检验
  • 交叉验证t检验
  • McNemar检验
  • Friedman检验与Nemenyi检验

偏差与方差

  • 偏差

    偏差度量了学习算法的期望预测与真实结果的偏离程度,即刻画了算法本身的拟合能力

  • 方差

    方差度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响

  • 噪声

    表达了在当前任务上任何算法所能达到的期望泛化误差的下界,即刻画了学习问题本省的难度

一般来说,偏差与方差是由冲突的,称为偏差-方差窘境:对于给定学习任务,假定我们能控制学习算法的训练程度,则在训练不足时,学习器的拟合能力不够强,训练数据的扰动不足以使学习器产生变化,此时,偏差主导了泛化错误率;随着训练程度的加深,学习器的拟合能力逐渐增强,训练数据发生的扰动渐渐能被学习器学到,方差逐渐住到了泛化错误率;在训练程度充足后,学习器的拟合能力非常强,此时,若训练数据自身的、非全局的特性被学习器学到,则将发生过拟合。
此为我学习周志华老师所著的《机器学习》的笔记,如有不对的地方,欢迎指正。

猜你喜欢

转载自blog.csdn.net/hey___man/article/details/79369930