其他分享
首页 > 其他分享> > 第27期 Datawhale 组队学习 吃瓜教程——西瓜书+南瓜书第一章和第二章 / 周志华《机器学习》

第27期 Datawhale 组队学习 吃瓜教程——西瓜书+南瓜书第一章和第二章 / 周志华《机器学习》

作者:互联网

摘要:本文是包含第一章和第二章的理论及推导内容

说明: 本次学习是基于西瓜书,南瓜书,及部分网上参考资料(链接会放在最后)

目录

第一章 绪论

1.1 理论

1.1.1 基本术语

  1. 数据集:记录样本的集合。
  2. 特征:反应事件或对象在某方面的表示或性质的事例。
  3. 属性值:属性上的取值(如:“青绿”,“赤红”)。
  4. 样本空间:由若干特征组成的一个n维空间(n为特征个数)。
  5. 特征向量:因为在样本空间中一个点即可代表一个向量,因此一个示例即为一个特征向量。
  6. 分类与回归:如果预测的是离散值即为分类,如果是连续值即为回归。

1.1.2 假设空间

在这里插入图片描述
详细可看:《机器学习》中的假设空间和版本空间

1.1.3 版本空间

与已知数据集一致的所有假设的子集集合。

1.1.4 归纳偏好

因为假设空间可以因为不同的归类方式而产生不同的归类效果和预测方法,所以设置归纳偏好以得出符合自己要求的模型

1.2 理论推导

在这里插入图片描述

第二章 模型评估和选择

2.1 理论

2.1.1 经验差和过拟合

2.1.1.1 误差

误差类型定义
误差学习器在实际预测中的输出与样本的真实输出之间的差距
训练误差/经验误差学习器在训练集上的误差
泛化误差学习器在新样本上的误差

2.1.1.2 拟合

拟合类型说明
欠拟合学习次数较为不足,训练误差和泛化误差均为达到最优解
过拟合过度学习,使得训练误差下降,但于此同时降低了泛用性,及泛化误差增大

图像来源https://blog.csdn.net/weixin_42575020/article/details/82949285
图像来源:过拟合和欠拟合

2.1.2 评估方法(划分训练集及测试集方法)

2.1.2.1 留出法

将数据集D划为两个互斥的集合,其中一个为训练集S,另外一个为测试集T。及S ⋃ \bigcup ⋃T=1,S ⋂ \bigcap ⋂T= ∅ \emptyset ∅,精度计算方法:在S训练之后,在T中运行,如果300样本中90个错误,则精度为:(300-90)/300=70%

留出法运行的要点:

  1. 训练集和测试集的划分要尽量保证数据分布的一致性,所以一般将2/3~4/5的样本进行训练,剩余样本进行测试
  2. 即便给定测试集和训练集的样本比例后,仍存在多种划分方式对初始数据集D进行分割,而这将导致单次的留出法不太稳定可靠,一般采用若干次随机划分,重复进行实验评估后取平均值作为评估结果。

2.1.2.2 交叉验证法

先将数据集D划分为K个大小相似的互斥子集,每个子集 D i D_i Di​尽可能保持数据分布的一致性(采用分层采样),然后以K-1个子集的并集为训练集,剩余的那个子集为测试集,一般常用的K值为5,10,20,即称为K折交叉验证。

交叉验证法运行的要点:

  1. 训练集和测试集的划分要尽量保证数据分布的一致性,以K-1个子集的并集为训练集,剩余的那个子集为测试集,一般常用的K值为5,10,20,即称为K折交叉验证。
  2. 即便给定测试集和训练集的样本比例后,仍存在多种划分方式对初始数据集D进行分割,而这将导致单次的留出法不太稳定可靠,一般采用若干次随机划分,重复进行实验评估后取平均值作为评估结果。

特例 :留一法:假定样本集中共M个元素,且K=M,则此时为留一法(简称LOO),因此留一法训练的模型与原模型即为相似,但当数据量大时有时不如人意。

2.1.2.3 自助法

参考链接:自助法(Bootstraping) - HuZihu - 博客园
在含有 m 个样本的数据集中,每次随机挑选一个样本, 将其作为训练样本,再将此样本放回到数据集中,这样有放回地抽样 m 次,生成一个与原数据集大小相同的数据集,这个新数据集就是训练集。这样有些样本可能在训练集中出现多次,有些则可能从未出现。原数据集中大概有 36.8% 的样本不会出现在新数据集中。因此,我们把这些未出现在新数据集中的样本作为验证集。把前面的步骤重复进行多次,这样就可以训练出多个模型并得到它们的验证误差,然后取平均值,作为该模型的验证误差。
果需要在多个不同的模型中进行选择,那么事先留出测试集,然后在剩余的数据集上用自助法验证模型,选择验证误差最小的模型作为最好的模型,然后用训练集+验证集数据按最好模型的设置训练出一个新的模型,作为最终的模型,最后用测试集测试最终的模型。

为什么原数据集中大概有 36.8% 的样本不会出现在新数据集中?假设数据集中有m个样本,那么每次每一个样本被抽取到的概率是1/m,抽样m次,某个样本始终不被抽取到的概率是(1-1/m)m。当m的取值趋近于无穷大时,样本未被抽中的概率为e的负一次方 ,结果约等于0.368。

优点:训练集的样本总数和原数据集一样都是 m个,并且仍有约 1/3 的数据不出现在训练集中,而可以作为验证集。

缺点:这样产生的训练集的数据分布和原数据集的不一样了,会引入估计偏差。

用途:自助法在数据集较小,难以有效划分训练集/验证集时很有用;此外,自助法能从初始数据集中产生多个不同的训练集,这对集成学习等方法有很大的好处。

2.1.2.4 调参与最终模型

2.1.3 性能度量(对学习器的泛化性能评估)

2.1.3.1 错误率与精度

参考文献: 机器学习模型性能评估(一):错误率与精度、P-R曲线和ROC曲线
在这里插入图片描述

2.1.3.2 查准率,查全率与F1

在这里插入图片描述在这里插入图片描述

2.1.3.3 ROC与AUC

P-R曲线是从查准率和查全率的角度去衡量学习模型的泛化性能,ROC曲线则是从更一般的情况下去衡量学习模型的泛化性能,若没有任何先验条件的限制情况下,推荐用ROC曲线去衡量模型的泛化性能。
绘制ROC曲线的思想与P-R曲线一致,对学习模型估计测试样本为正样本的概率从大到小排序,然后根据概率大小依次设置阈值,认为大于阈值的测试样本为正样本,小于阈值的测试样本为负样本,每一次阈值设置都计算”真正例率“(True Positive Rate,简称TPR)和”假正例率“(False Positive Rate,简称FPR)。

TPR和FPR的定义如下:
在这里插入图片描述
TP,FP,TN,FN的定义可以参看上面的混淆矩阵。
ROC曲线横坐标为假正例率,纵坐标为真正例率,曲线图如下:

本文对ROC曲线的首末两点进行解释:
测试数据集包含N例正样本和M例负样本,若阈值设置的最大,则学习模型对所有测试样本都预测为负样本,混淆矩阵如下:

TPR = TP / (TP + FN) = 0 / (0 + N) = 0
FPR = FP / (TN + FP) = 0 / (0 + M) = 0
因此,当阈值设置最大时,TPR与FPR均为0

若阈值小于所有模型估计测试样本为正样本的数值时,则测试样本均为正样本,混淆矩阵如下:

TPR = TP / (TP + FN) = N / (N + 0) = 1
FPR = FP / (TN + FP) = M / (M + 0) = 1

因此,当阈值设置最小时,TPR与FPR均为1。

AUC(Area Under Curve)为ROC曲线的面积,面积可以通过梯形面积法求解。

在这里插入图片描述

AUC的计算表达式理解起来有点别扭,假设正负样本数均为m例,大家回想下ROC曲线的算法思想,假正例率对应的是真实负样本中分类结果为正样本的比例,真正例率对应的是真实正样本中分类为正样本的比例。

假正例率和真正例率的增长性具有互斥性,每次都只能增加一个,且每次增加的梯度为1/m,横坐标和纵坐标共增加了m次。
理解了这个原理,相信对ROC曲线的绘制和AUC面积的计算应该有更深的认识了。
AUC是衡量模型泛化能力的一个重要指标,若AUC大,则分类模型优;反之,则分类模型差。想象一下,若假正例率不变的情况下,真正例率越大,对应的AUC越大,则模型的泛化能力强,这与实际情况相符。

2.1.4 比较检验(比较学习器的性能)

2.1.4.1 假设检验

假设检验是用来判断样本与样本,样本与总体的差异是由抽样误差引起还是本质差别造差别造成的统计推断方法。其基本原理是先对总体的特征作出某种假设,然后通过抽样研究的统计推理,对此假设应该被拒绝还是接受作出推断。
假设检验 - MBA智库百科
假设检验的逻辑是是什么?

2.1.4.2 交叉验证t检验

交叉验证t检验

参考链接

  1. 《机器学习》中的假设空间和版本空间
  2. 过拟合和欠拟合
  3. 自助法(Bootstraping) - HuZihu - 博客园
  4. 机器学习模型性能评估(一):错误率与精度、P-R曲线和ROC曲线
  5. 假设检验 - MBA智库百科
  6. 假设检验的逻辑是是什么?

标签:周志华,27,1.1,训练,ROC,模型,样本,Datawhale,2.1
来源: https://blog.csdn.net/weixin_45856170/article/details/118652035