吃瓜笔记01:绪论+模型评估与选择
0. 学习背景
有幸报名参加了DataWhale团队的2023年7月组队学习,在这里做笔记记录,与大家共同学习。
学习背景:
《西瓜书》就是大家熟知的周志华老师的《机器学习》,《南瓜书》是DataWhale团队的谢文睿等老师出品的西瓜书配套辅助材料,旨在对西瓜书里比较难理解的公式加以解析,以及对部分公式补充具体的推导细节。
1. 绪论
1.1 基本术语
学习任务类型:
-
分类:需预测的结果是离散值。
-
回归:徐预测的结果是连续值。
-
聚类:将一种物品分为若干组。
根据训练数据是否拥有标记信息,学习任务可大致划分为两大类:
-
监督学习(supervised learning)
-
无监督学习(unsupervised learning)
其中,分类和回归是监督学习的代表,而聚类是无监督学习的代表。
机器学习的目标是使学得的模型更好的适用于“新样本”,也即“泛化”。一般而言,训练样本越多,越有可能通过学习获得具有强泛化能力的模型。
1.2 假设空间
科学推理的两大手段:
-
归纳:从特殊到一般的“泛化”过程,即从具体的事实归结出一般性规律。
-
演绎:从一般到特殊的“特化”过程,即从基础原理推理出具体情况。
我们可以把学习过程看作一个在所有假设 (hypothesis) 组成的空间中进行搜索的过程,搜索目标是找到与训练集"匹配"的假设,即能够将训练集中的样本判断正确的假设。假设的表示一旦确定,假设空间及其规模大小就确定了。
1.3 归纳偏好
归纳偏好可看作学习算法自身在一个可能很庞大的假设空间中对假设进行选择的启发式或"价值观"。
那么,有没有一般性的原则来引导算法确立 "正确的"偏好呢?
“奥卡姆剃刀” (Occam’s razor) 是一种常用的、自然科学 研究中最基本的原则,即**“若有多个假设与观察一致,则选最简单的那个”。但是何为“简单”便见仁见智了,所以该方法其实并不“简单”,所以并不常用,而最常用的方法则是基于模型在测试集上的表现**来评判模型之间的优劣。
2. 模型评估与选择
2.1 经验误差与过拟合
-
错误率(error rate):m个样本中有a个样本分类错误,错误率E=a/m。
-
精度(accuracy):1-错误率。
-
误差(error):学习器的实际预测输出与样本的真实输出之间的差异
-
训练误差(training error):也叫经验误差,是指在训练集(验证集)上的误差
-
泛化误差(generalization error):在新样本(测试集)上的误差
-
过拟合(overfitting):学习器学到了训练样本不太一般的特性,无法彻底避免,只能缓解
-
欠拟合(underfitting):学习器学习能力低下,可增加训练轮数解决
2.2 评估方法
通常,我们可通过实验测试来对学习器的泛化误差进行评估并进而做出选择。为此,需使用一个“测试集”(testing set)来测试学习器对新样本的判别能力,然后以测试集上的“测试误差”(testing error)作为泛化误差的近似。
常用的方法有:留出法、交叉验证法、自助法
2.2.1 留出法
就是最常用的方法,将数据集划分为两个互斥的集合,一个集合作为训练集S,另一个作为测试集(验证集)T,测试集完全不进行训练。
由于划分数据集的方式各种各样,单次使用留出法得到的估计结果往往不够稳定可靠,一般要采用若干次随机划分、重复进行实验评估后取平均值作为评估结果。
2.2.2 交叉验证法
做法是将数据集划分为k个大小相似的互斥子集,每个子集的数据分布保持一致,每次用k-1个子集进行训练,另外一个作为测试,这样就可以进行k次训练和测试,最终取k次测试结果的均值。这种方法也叫k-折交叉验证。
若样本数为m,令k=m,就得到一个特例:留一法,每次只留一个样本进行验证,这样就使得绝大多数情况下这种方法与用完整数据集D进行训练得到的模型很相似。
但是留一法也有缺陷:当数据集较大时,计算开销太大了。
2.2.3 自助法
新建一个与数据集D等大的数据集D1,每次从D中抽取一个数据放到D1中,并放回D中,重复m次,就得到了一个与D等大的数据集D1,用D1进行训练,D\D1(\代表集合减法)用作测试集(验证集)。
样本在m次采集中始终不被采集到的概率为:
l i m lim m → + ∞ ( 1 − 1 m ) m = 1 e ≈ 0.368 lim\lim\limits_ { m \rightarrow + \infty } (1-\frac{1}{m})^m= \frac{1}{e} \approx 0.368 limm→+∞lim(1−m1)m=e1≈0.368
也就是说初始数据集D中大约有36.8%的数据没有被采集到,这样实际评估的模型大小与期望评估的模型大小都使用了m个样本,而且测试集(验证集)也是完全没用过的数据。
自助法在数据集较小,难以划分训练/测试集时很有用。但是改变了初始数据集的分布,这会引入估计偏差。一般还是用上面两种。
2.2.4 调参与最终模型
一般来说,可以先通过上述的集中方法获取较优的超参数,然后再用原始数据集D和得到的超参数再训练一次,这才是最终要用的模型。
2.3 性能度量
即评价模型好坏的标准,常用的指标有:
-
错误率与精度:常使用于分类问题
-
查准率P:真正例占(真正例+假正例)的比例
-
查全率R:真正例占(真正例+真反例)的比例
-
F1度量: F 1 = 2 × P × R P + R F1 = \frac{2\times P \times R}{P + R} F1=P+R2×P×R
-
ROC:受试者工作特征(Receiver Operating Characteristic)曲线,
-
AUC:ROC曲线下的面积
2.4 比较检验
简单来说,从统计学的角度,取 得的性能度量的值本质上仍是一个随机变量,因此并不能简单用比较大小来直接判定算法(或者模型)之 间的优劣,而需要更置信的方法来进行判定。
2.5 偏差与方差
对学习算法除了通过实验估计其泛化性能?人们往往还希望了解它"为什 么"具有这样的性能。
-
偏差:度量了学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力。
-
方差:度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的的影响。
-
噪声:表达了在当前任务上任何学习算法所能达到的期望泛化误差的下界,即刻画了学习问题本身的难度。
一般来说,偏差与方差是有冲突的,这称为偏差一方差窘境 (bias-variance dilemma)。