第三章 机器学习基础知识
1.1 模型评估与模型参数选择
在某种损失函数度量下,训练集上的平均误差被称为训练误差,测试集上的误差称为泛化误差。 由于我们训练得到一个模型最终的目的是为了在未知的数据上得到尽可能准确的结果,因此泛化误差是衡量一个模型泛化能力的重要标准。
数据集:训练集、验证集、测试集
误差:预测输出y ̂与真实输出y之间的差异;
经验误差、训练误差:在训练集上的误差;
泛化误差:在新样本上的误差。
泛化误差越小越好,经验误差不一定越小越好,可能导致过拟合。
1.1.1 验证集
当我们的模型训练好之后,我们并不知道他的表现如何。这个时候就可以使用验证集(Validation Dataset)来看看模型在新数据(验证集和测试集是不同的数据)上的表现如何。同时通过调整超参数,让模型处于最好的状态。
模型不能过拟合于训练集,否则将不能在测试集上得到最优结果。
验证集有2个主要的作用:
评估模型效果,为了调整超参数而服务
调整超参数,使得模型在验证集上的效果最好
验证集
说明:
1、验证集不像训练集和测试集,它是非必需的。如果不需要调整超参数,就可以不使用验证集,直接用测试集来评估效果。
2、验证集评估出来的效果并非模型的最终效果,主要是用来调整超参数的,模型最终效果以测试集的评估结果为准。
测试集
当我们调好超参数后,就要开始「最终考试」了。我们通过测试集(Test Dataset)来做最终的评估,来看学习效果(模型效果)好不好。
通过测试集的评估,我们会得到一些最终的评估指标,例如:准确率、精确率、召回率、F1等。
划分数据集
1、对于小规模样本集(几万量级),常用的划分比例:
训练集:验证集:测试集=6:2:2
训练集:测试集==8:2、7:3
2、对于大规模样本集(百万级以上),只要验证集和测试集的数量足够即可。
例如:有 100w 条数据,那么留 1w 验证集,1w 测试集即可。
1000w 的数据,同样留 1w 验证集和 1w 测试集。
3、超参数越少,或者超参数很容易调整,那么可以减少验证集的比例,更多的分配给训练集。
过拟合:将训练样本自身的一些特点当作所有样本潜在的泛化特点。
表现:在训练集上表现很好,在测试集上表现不好。
过拟合的原因:
1、训练数据太少(比如只有几百组)
2、模型的复杂度太高(比如隐藏层层数设置的过多,神经元的数量设置的过大)
3、数据不纯
解决方法:
1、移除特征,降低模型的复杂度:减少神经元的个数,减少隐藏层的层数
2、训练集增加更多的数据
3、重新清洗数据
4、数据增强
5、正则化:一种防止机器学习模型过拟合的技术
6、早停:一种用于避免机器学习或深度学习模型过拟合的技术
7、交叉验证:评估模型泛化能力
欠拟合:还没训练好。
欠拟合的原因:
1. 数据未做归一化处理
2. 神经网络拟合能力不足
3. 数据的特征项不够
解决方法:
1. 寻找最优的权重初始化方案
2. 增加网络层数、epoch
3. 使用适当的激活函数、优化器和学习率
4. 减少正则化参数
5. 增加特征
1.1.2 验证
模型不能过拟合于训练集,否则将不能在测试集上得到最优结果
交叉验证
留出法(Holdout cross validation) 按照固定比例将数据集静态的划分为训练集、验证集、测试集。
自组法(bootstrapping) 适合于样本数目较少,有放回的取法。
k 折交叉验证(k-fold cross validation):k 一般取 10
1、将数据集分为训练集和测试集,将测试集放在一边
2、将训练集分为 k 份
3、每次使用 k 份中的 1 份作为验证集,其他全部作为训练集。
4、通过 k 次训练后,我们得到了 k 个不同的模型。
5、评估 k 个模型的效果,从中挑选效果最好的超参数
6、使用最优的超参数,然后将 k 份数据全部作为训练集重新训练模型,得到最终模型
1.1.3 正则化
在优化目标中加入正则化项:
min┬θL(y,y ̂;θ)+λ⋅J(θ)
1、θ为模型参数,L(y,y ̂;θ)为原来的损失函数,J(θ)是正则化项,λ用于调整正则化项的权重。
2、正则化项通常为θ的某阶向量范数。
3、通过限制参数值域空间,显式地 控制了 模型复杂度,从而避免了过拟合。
L1正则化:使权重的绝对值最小化,且对于异常值是鲁棒的。
L2正则化:使得权重的平方最小化,该模型能够学习复杂的数据模式,但对于异常值不具备鲁棒性。
Dropout :是一种正则化方法,用于随机禁用神经网络单元。
1.2 监督学习与非监督学习
1.2.1 监督学习
监督学习是一种机器学习方法,它通过训练含有输入数据和对应输出标签的数据集来学习一个模型,然后用这个模型来预测新数据的输出。
监督学习的特点:
- 有标记的训练数据:监督学习算法使用的训练数据包含输入数据及其正确的输出标签。这些标记的数据帮助算法学会如何将输入映射到正确的输出。
- 模型训练过程:在训练过程中,算法会调整内部参数以最小化预测输出和实际标签之间的差异。这个过程通常涉及损失函数的优化,损失函数衡量了预测值与真实值之间的误差。
- 分类与回归任务:监督学习可以应用于分类任务(预测离散标签)和回归任务(预测连续值)。例如,决策树、逻辑回归、线性回归等都是常见的监督学习算法。
- 适用场景:监督学习适用于各种场景,如图像识别、语音识别、文本分类、医疗诊断等,只要有足够多的标记数据,就可以训练出一个有效的模型。
- 与其他学习方法的关系:监督学习是深度学习、强化学习和无监督学习的基础。它也是半监督学习的前提,半监督学习是一种结合了少量标记数据和大量未标记数据的学习方法。
回归问题的输出是连续值 分类问题的输出是离散值
监督学习—回归
回归问题在生活中非常常见,其最简单的形式是一个连续函数的拟合。
1.预测房价
假设我们想要预测某个城市的房价。我们可以收集到该城市过去几年的房价数据,以及一些相关的因素,比如房屋的面积、房龄、所处区域、楼层等。我们可以使用这些数据建立一条最佳拟合直线,从而对未来的房价进行预测。
在这个例子中,自变量可以包括面积、房龄、所处区域等,因变量是房价。
2.预测销售额
假设我们想要预测某家公司未来一年的销售额。 我们可以收集到该公司过去几年的销售额数据,以及一些相关的因素,比如广告投入、促销活动、季节性因素等。我们可以使用这些数据建立一条最佳拟合直线,从而对未来的销售额进行预测。
在这个例子中,自变量可以包括广告投入、促销活动、季节性因素等,因变量是销售额。我们可以通过最小二乘法来估计截距和斜率的值,从而得到一条最佳拟合直线。这条直线可以用来预测未来的销售额,也可以用来分析不同因素对销售额的影响。
均方误差损失函数(Mean Squared Error,MSE)
最常用的回归问题的损失函数。其定义为预测值与真实值之间的平方差的平均值。
该损失函数的值越小,表示模型的预测结果越接近真实值。
监督学习—分类
想要预测(检测)的目标是猫,那么在数据集中猫为正样本(Positive ),其他狗、兔子、狮子这些数据为负样本(Negative )。
将这只猫预测(分类)为狗、兔子、其他预测结果为错(False);
将这只猫预测为猫,预测结果为对(True)。
定义占样本少数的类为正类(positive class),占样本多数的为负类(negative class),那么预测只可能出现4种状况:
将正样本预测正样本(True Positive, TP)
将负类样本预测为正样本(False Positive, FP)
将正样本预测为负样本(False Negative, FN)
将负类样本预测为负样本(True Negative, TN)
分类评估指标:
精准率代表对正样本结果中的预测准确程度。
准确率则代表整体的预测准确程度,既包括正样本,也包括负样本。
召回率越高,也代表网络可以改进的空间越大。
1.2.2 非监督学习
无监督学习是一种不依赖于标记数据的机器学习方法,它旨在探索数据中的隐藏结构或模式。
无监督学习的特点:
- 发现数据的内在结构:无监督学习算法试图在没有预先定义标签的数据中找到模式或结构。这种学习方法可以揭示数据中的关系和组织方式,这对于理解数据的分布和特征是非常有用的。
- 聚类和降维:无监督学习通常用于聚类和降维问题。聚类是将相似的数据点分组在一起的过程,而降维则是减少数据复杂性的同时尽量保留其重要特征的过程。例如,K均值聚类就是一种广泛使用的聚类算法。
- 异常检测:无监督学习也用于异常检测,这有助于识别与正常数据显著不同的数据点,如在金融欺诈检测中发现不寻常的交易行为。
聚类(clustering)问题:
没有标签的情况下,我们是否能给数据分类呢?比如,给定一组照片,我们能把它们分成风景照片、狗、婴儿、猫和山峰的照片吗?同样,给定一组用户的网页浏览记录,我们能否将具有相似行为的用户聚类呢?
主成分分析(principal component analysis)问题(PCA):
主成分分析PCA是一种常用的数据分析方法。PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量,常用于高维数据的降维
因果关系(causality)和概率图模型(probabilistic graphical models)问题:
如果想通过物体a去推断物体b,就是将物体a放在这里会增加物体b出现概率的多少,想要找到这样一个确定的促进关系即因果关系
往往会被confounder干扰到,而这个confounder就是物体a与b之间的共因。
生成对抗性网络(generative adversarial networks):
为我们提供一种合成数据的方法,甚至像图像和音频这样复杂的非结构化数据。潜在的统计机制是检查真实和虚假数据是否相同的测试,它是无监督学习的另一个重要而令人兴奋的领域。
无监督学习衡量指标