模型适用于新样本的能力,称为“泛化能力“
数据集划分有留出法、交叉验证法和自助法
用训练集建立模型,基于验证集上的性能来进行模型选择和调参
用测试集上的判别效果来估计模型在实际使用时的泛化能力
泛化性能是由学习算法的能力、数据的充分性以及学习任务本身的难度共同决定
性能度量是衡量模型泛化能力的评价标准
混淆矩阵、查准查全率是分类问题上重要的评价指标
把一个正样本分对的概率称为真正例率,把一个负样本当成正样本的概率称为假正例率
ROC是以TPR为纵坐标,FPR为横坐标的曲线,它与横坐标的面积是AUC得分
模型在不平衡数据集上的性能评估最好使用AUC而不是Accuray
偏差度量了学习算法期望预测与真实结果的偏离程度
方差刻画了数据扰动所造成的影响
出现低偏差而高方差的现象称为过拟合;高偏差而方差较低称为欠拟合
学习曲线与验证曲线有助于观察模型的欠拟合与过拟合情况
机器学习,是指在给定任务(T)下,对数据集(D)做一定特征工程(F)后建立相应的模型(M),并通过模型评估(E)来评价模型好坏。
首先,我们要说明一下为什么要有模型评估这一步。
机器学习的目标是使学得的模型(假设hypothesis、学习器)能很好地适用于“新样本”,学得模型适用于新样本的能力,称为“泛化能力“(generalization).
因此,我们把模型实际预测输出与样本的真实输出之间的差异称为“误差”(error),模型在训练集上的误差称为“训练误差”(training error)或“经验误差”(empirical error),在新样本上的误差称为“泛化误差”(generalizatin error)。显然,我们希望得到泛化误差小的模型。然而,我们事先并不知道新样本是什么样的,实际能做的只是努力使经验误差最小化。在这种背景下,就需要一些标准来评估模型的好坏。
模型评估需要有评估方法及性能度量,下面分别介绍。
1.评估方法
通常情况下,我们把数据集抽出一部分,作为评估模型的好坏,抽出来的数据集叫做“测试集”,而用余下的数据集用作训练,称为“训练集”。
实际中,我们可能会对同一堆数据建立不同的模型,不同的算法,有些算法需要通过调节和选择算法“超参数”来找到最优的模型,因此,在研究对比不同算法的泛化性能时,我们用测试集上的判别效果来估计模型在实际使用时的泛化能力,而把训练集两外划分为训练集和验证集,基于验证集上的性能来进行模型选择和调参。
下面一张图展示这个训练集(training set)、验证集(validation set)和测试集(testing set)的差异:
那么实际中如何划分训练集、验证集和测试集呢,一般有三种方法,下面分别介绍。
a.留出法(hold-out)
原理:将数据集D划分为两个互斥的集合,其中一个作为训练集S(70%),另一个作为测试集T(30%)。在S上训练模型,在T上评估测试误差,作为对泛