一、错误率&误差
错误率: 错分样本的占比:E=a/m;(一共有m个样本,a个样本错误)相应的,1-a/m称为“精度”
误差:样本真实输出与预测输出之间的差异
训练(经验)误差:训练集上测试误差:测试集
泛化误差:除训练集外所有样本
由于事先并不知道新样本的特征,我们只能努力使经验误差最小化;
很多时候虽然能在训练集上做到分类错误率为零,但多数情况下这样的学习器并不好
二、过拟合与欠拟合
过拟合:
学习器把训练样本学习的“太好”,将训练样本本身的特点当做所有样本的一般性质,导致泛化性能下降
弥补过拟合的方法:
1.优化目标加正则项
2.early stop欠拟合:
对训练样本的一般性质尚未学好
克服欠拟合的方法:
1.决策树:拓展分支2.神经网络:增加训练轮数
三、评估方法
现实任务中往往会对学习器的泛化性能、时间开销、存储开销、可解释性等方面的因素进行评估并做出选择
我们假设测试集是从样本真实分布中独立采样获得,将测试集上的“测试误差”作为泛化误差的近似,所以测试集要和训练集中的样本尽量互斥。
通常将包含m个样本的数据集D={(x1,y1),……,(xm,ym)}拆分成训练集S和测试集T。
1.留出法
(1)直接将数据集划分为两个互斥集合。
(2)训练集和测试集的划分要尽量保持数据分布的一致性。
(3)若干次随机划分且重复实验取平均值。
(4)训练/测试样本的比例一般为2:1到4:1。
2.交叉验证法
将数据集分层采样划分为k个大小相似的互斥子集,每次用k-1个子集的并集作为训练集,余下的子集作为测试集,最终返回k个测试结果的均值,k最常用的取值是10.
与留出法类似,将数据集D划分为k个子集同样存在多种划分方式,为了减小因样本划分不同而引入的差别,k折交叉验证通常随机使用不同的划分重复p次,最终的评估结果是这p次k折交叉验证结果的均值,例如常见的“10次10折交叉验证”。
假设数据集D包含m个样本,若令k=m,则得到留一法(交叉验证法的特例):
(1)不受随机划分样本方式的影响
(2)结果往往比较准确
(3)当数据集比较大时,计算开销太大
3.自助法
以自助采样法为基础,对数据集D有放回采样次得到训练集D’, D/D’用做测试集。
(1)实际模型与预期模型都使用m个训练样本
(2)约有1/3的样本没在训练集中出现
(3)从初始数据集中产生多个不同的训练集,对集成学习有很大的好处
(4)自助法在数据集较小、难以有效划分训练/测试集时很有用;由于改变了数据集分布可能引入估计偏差,在数据量足够时,留出法和交叉验证法更常用
四、性能度量
性能度量是衡量模型泛化能力的评价标准,反映了任务需求;使用不同的性能度量往往会导致不同的评判结果
在预测任务中,给定样例集D={(x1,y1),……,(xm,ym)};
评估学习器的性能 f 也即把预测结果 f(x)和真实标记比较.
回归任务最常用的性能度量是“均方误差”:
对于分类任务,错误率和精度是最常用的两种性能度量:
错误率:分错样本占样本总数的比例
精度:分对样本占样本总数的比率
分类错误率:
精度:
信息检索、Web搜索等场景中经常需要衡量正例被预测出来的比率或者预测出来的正例中正确的比率,此时查准率和查全率比错误率和精度更适合。统计真实标记和预测结果的组合可以得到“混淆矩阵”。
查准率: 查全率:
根据学习器的预测结果按正例可能性大小对样例进行排序,并逐个把样本作为正例进行预测,则可以得到查准率-查全率曲线,简称“P-R曲线”
平衡点是曲线上“查准率=查全率”时的取值,可用来用于度量P-R曲线有交叉的分类器性能高低。
比P-R曲线平衡点更用常用的是F1度量:
比F1更一般的形式Fβ:
β=1:标准F1
β大于1: 偏重查全率(逃犯信息检索)β小于1:偏重查准率(商品推荐系统)
若某个学习器的ROC曲线被另一个学习器的曲线“包住”,则后者性能优于前者;否则如果曲线交叉,可以根据ROC曲线下面积大小进行比较,也即AUC值.
假设ROC曲线由{(x1,y1),……,(xm,ym)}的点按序连接而形成(x1=0,xm=1),则AUC可估算为:
AUC衡量了样本预测的排序质量。
五、代价敏感错误率
现实任务中不同类型的错误所造成的后果很可能不同,为了权衡不同类型错误所造成的不同损失,可为错误赋予“非均等代价”。
以二分类为例,可根据领域知识设定“代价矩阵”,如下表所示,其中表示将第i类样本预测为第j类样本的代价。损失程度越大,与值的差别越大。
在非均等代价下,不再最小化错误次数,而是最小化“总体代价”,则“代价敏感”错误率相应的为:
。
六、偏差与方差
通过实验可以估计学习算法的泛化性能,而“偏差-方差分解”可以用来帮助解释泛化性能。偏差-方差分解试图对学习算法期望的泛华错误率进行拆解。
对测试样本x,令yD为x在数据集中的标记,y为x的真实标记,f(x,D)为训练集D上学得模型f在x上的预测输出。以回归任务为例:学习算法的期望预期为:
使用样本数目相同的不同训练集产生的方差为:
噪声为:
期望输出与真实标记的差别称为偏差,即,
为便与讨论,假定噪声期望为0,也即, 对泛化误差分解:
也即泛化误差可分解为偏差、方差与噪声之和。
一般来说,偏差与方差是有冲突的,称为偏差-方差窘境。
如下图所示,假如我们能控制算法的训练程度:
.在训练不足时,学习器拟合能力不强,训练数据的扰动不足以使学习器的拟合能力产生显著变化,此时偏差主导泛化错误率;
.随着训练程度加深,学习器拟合能力逐渐增强,方差逐渐主导泛化错误率;
.训练充足后,学习器的拟合能力非常强,训练数据的轻微扰动都会导致学习器的显著变化,若训练数据自身非全局特性被学到则会发生过拟合。