高估自己了,心情有缺,思想混乱,晚上失眠,难以集中注意力,见谅见谅,尽力而学。
一、误差与拟合
误差:学习器的预测输出与样本的真实输出之间的误差。
训练误差(经验误差):学习器在训练集上的误差。
泛化误差:学习器在新样本上的误差。
显然,我们需要一个泛化误差小的学习器。但是我们不知道新样本是什么样子,所以只能去追求训练误差最小化。
为了能够在新样本上表现良好,我们必须尽可能在训练样本上寻找适用于所有潜在样本的“普遍规律”,在寻找的过程中可能会出现两种不好的情况——“欠拟合”和“过拟合”。
欠拟合:对于训练样本的一般性质尚未学好。
(最常见原因:学习能力低下)——相对容易克服
过拟合:学的太好,把训练样本自身特点当做所有样本的一般性质。
(最常见原因:学习能力太过强大,将训练集中不太一般的特性都学到了)——不可避免,只能缓解
二、评估方法
泛化误差不可用,训练误差存在过拟合现象,那如何进行模型选择?——创建“测试集”,以测试误差作为泛化误差的近似。
对总数据集进行适当处理,产生训练集和测试集。
1.留出法
将数据集D划分为两个互斥的集合——训练集S、测试集T,D = S ∪ T , S ∩ T = ∅
注1:训练集和测试集的划分要尽可能保持数据分布的一致性,比如D中有500个正例、500个反例,则S中有350个正例、350个反例,T中有150个正例、150个反例。
注2:即使样本比例相似,依然存在多种划分方法,每次划分将导致不同的模型评估结果,一般要采用若干次随机划分、重复进行实验评估后取平均值作为留出法的训练结果。
注3:要注意S和T中样本个数,若S中样本数量偏多,T中较少,则评估结果可能不够稳定准确;若S中较少,T中较多,评估结果可能和D有较大的差别,降低了保真性。一般采用2/3~4/5的样本作为训练,剩余用于测试。
2.交叉验证法(k折交叉验证)
将数据集D划分为k个大小相似的互斥子集,即D=D1 ∪ D2 ∪ D3 ∪ ... ∪ Dk,Di ∩ Dj = ∅
每个子集尽可能保持数据分布的一致性,然后取k-1个子集的并集作为训练集,余下子集作为测试集,即可得到k组训练集/测试集,最终返回的是k个训练结果的均值,该评估结果的稳定性和保真性很大程度上取决于k的取值(常用值为10)。
注1:同留出法一样,划分方式有多种,通常要随即使用不用的划分方式重复p次,最后取均值,常见的有“10次10折交叉验证”
注2:若数据集有m个样本,令k=m则得到特例“留一法”,该划分方式仅有一种。由于训练集仅比数据集少一个样本,所以评估结果往往被认为比较准确。缺点是数据集比较大时,计算开销难以忍受(数据集有一百万个样本,则需要训练一百万个模型),同时“没有免费的午餐”定理仍然适用。
3.自助法
给定包含m个样本的数据集D,对其进行采样产生数据集D':每次随机从D中挑选一个样本拷贝放入D'中,采样后放回,该过程重复m次,则得到包含m个样本的D'。
该方法以自助采样法(有放回采样法)为基础,显然D中一部分样本会在D'多次出现,另一部分样本不会出现,根据概率论知识,样本在m次采样中始终不被取到的概率是,取极限可得
即D中约有36.8%的样本未出现在D'中,于是将D'用作训练集,D\D'(集合减法)用作测试集。
注1:自助法在数据集较小、难以有效划分训练/测试集时很有用。
注2:自助法产生的数据集改变了初始数据集的分布,这会引入估计偏差,因此初始数据量足够时,留出和交叉验证法更常用。
4.调参与最终模型
大多数学习算法都有参数需要设定,参数配置不同,模型性能往往有显著差别,因此在进行模型评估与选择时,除了选择学习算法还要对参数进行设定。
对美中参数配置都训练出模型,然后把对应最好模型的参数作为结果,一般对每个参数选定范围和步长,虽然会漏掉一部分精确值,但是这是在计算开销和性能估计之间进行折中的结果。
在给定m个样本的数据集D中,需要留出一部分进行测试,因此我们只使用了一部分数据训练模型,因此在模型选择完成后,学习算法和参数配置已经选定,此时应该用D重新进行训练,这才是我们需要交付的模型。
注:通常把模型在实际使用中遇到的数据称为测试数据,模型评估和选择中用于测试的数据称为“验证集”。
三、性能度量
对学习器的泛化性能进行评估,不仅需要可行的实验估计方法,还需要有衡量模型泛化能力的评价标准——性能度量
性能度量反映了任务需求,在对比不同模型能力时,使用不同的性能度量会导致不同的评判结果——模型的“好坏”是相对的,不仅取决于算法和数据,还决定于任务需求。
给定样例集D={(x1,y1),(x2,y2),......,(xm,ym)},学习器预测结果f(x)
回归任务最常用的性能度量是“均方误差”
分类任务常用的性能度量
1. 错误率与精度
错误率:分类错误的样本数占样本总数的比例
精度:分类正确的样本数占样本总数的比例
2.查准率、查全率、F1
查准率(P):所有结果有多少比例是正确的。
查全率(R):所有正确结果有多少被检索出来。
真实情况 | 预测结果 | |
正例 | 反例 | |
正例 | TP(真正例) | FN(假反例) |
反例 | FP(假正例) | TN(真反例) |
注1:一般来说,查准率高时,查全率往往偏低;查全率高时,查准率往往偏低。
很多情形下,我们可以根据学习器的预测结果进行排序,排在前面的是学习器认为“最可能”是正例的样本,依次递减。按照此顺序,依次把样本作为正例进行预测,则每次加入一个样本都可以得到查全率、查准率,依次作出“P-R曲线”、“P-R图”
注1:若一个学习器的P-R曲线完全被“包住”,则可断言后者优于前者(A优于C)。
注2:A、B优劣难以区分,若非要比较可以通过平衡点(查准率=查全率)进行比较,A优于B。
平衡点过于简化,更常用的是F1度量:
3.ROC与AUC
ROC:受试者工作特征曲线,纵轴为“真正例率”(TPR),横轴为“假正例率”(FPR)
AUC:ROC曲线下的面积,当ROC曲线发生交叉时,可用来判断孰优孰劣