机器学习基础知识(第三章)

本文详细阐述了机器学习中的模型评估方法,包括训练误差和泛化误差的概念,数据集的划分策略,以及过拟合、欠拟合现象的识别和解决。重点介绍了监督学习和无监督学习的区别,以及准确率、精确率、召回率和F1值在性能评价中的作用。还涵盖了交叉验证和正则化的应用以提升模型性能。
摘要由CSDN通过智能技术生成

机器学习基础知识(第三章)


一 、如何评估一些训练好的模型并从中选择最优的模型参数?

若对于给定的输入𝑥,若某个模型的输出𝑦 ̂=𝑓(𝑥)偏离真实目标值𝑦,那么就说明模型存在误差;
𝑦 ̂偏离𝑦的程度可以用关于𝑦 ̂和𝑦某个函数𝐿(𝑦,𝑦 ̂ )来表示,作为误差的度量标准:这样的函数𝐿(𝑦,𝑦 ̂ )称为损失函数。

在某种损失函数度量下,训练集上的平均误差被称为训练误差,测试集上的误差称为泛化误差。
由于我们训练得到一个模型最终的目的是为了在未知的数据上得到尽可能准确的结果,因此泛化误差是衡量一个模型泛化能力的重要标准。


二 、数据集怎么划分

在机器学习中,数据集的划分通常是为了训练模型、验证模型和测试模型的性能。常见的数据集划分方法包括:

在这里插入图片描述

  1. 训练集(Training Set):用于训练模型的数据集,模型根据这部分数据进行学习。
  2. 验证集(Validation Set):用于调整模型超参数、选择模型结构等工作,以提高模型泛化能力。
  3. 测试集(Test Set):用于评估最终模型的性能,检验模型对未见数据的泛化能力。

常见的数据集划分比例为 70% 的数据用于训练,10-15% 的数据用于验证,15-20% 的数据用于测试。你可以根据具体的问题和数据量来调整划分比例。
另外,还有一些其他的数据集划分方法,例如交叉验证(Cross Validation)、留出法(Holdout)、自助法(Bootstrapping)等,可以根据具体情况选择合适的方法来划分数据集。

误差:预测输出𝑦 ̂与真实输出𝑦之间的差异;
经验误差、训练误差:在训练集上的误差;
泛化误差:在新样本上的误差。
泛化误差越小越好,经验误差不一定越小越好,可能导致过拟合。

3种数据集之间的关系
训练集相当于上课学知识
验证集相当于课后的的练习题,用来纠正和强化学到的知识
测试集相当于期末考试,用来最终评估学习效果


  1. 验证集
    当我们的模型训练好之后,我们并不知道他的表现如何。这个时候就可以使用验证集(Validation Dataset)来看看模型在新数据(验证集和测试集是不同的数据)上的表现如何。同时通过调整超参数,让模型处于最好的状态。

在这里插入图片描述
验证集有2个主要的作用
评估模型效果,为了调整超参数而服务
调整超参数,使得模型在验证集上的效果最好
说明:
验证集不像训练集和测试集,它是非必需的。如果不需要调整超参数,就可以不使用验证集,直接用测试集来评估效果。
验证集评估出来的效果并非模型的最终效果,主要是用来调整超参数的,模型最终效果以测试集的评估结果为准。


测试集
当我们调好超参数后,就要开始「最终考试」了。我们通过测试集(Test Dataset)来做最终的评估,来看学习效果(模型效果)好不好。
在这里插入图片描述
通过测试集的评估,我们会得到一些最终的评估指标,例如:准确率、精确率、召回率、F1等。

三、什么是过拟合?

在机器学习中,过拟合(Overfitting)指的是模型过于复杂,以至于在训练集上表现非常好,但在测试集或真实数据上表现不佳。具体来说,过拟合是指模型过度地学习了训练数据的噪声和细节,而没有捕捉到其真正的规律性和泛化能力。
过拟合的产生通常是由于模型的复杂度过高(参数过多),或者训练数据过少、过于特殊等原因造成的。当模型过于复杂时,容易出现过拟合,因为它会记住每个训练样本的特征和噪声,从而失去了对更广泛的数据集的泛化能力。
在这里插入图片描述

为了避免过拟合,可以采取以下措施:

  1. 增加数据量:通过增加训练数据的数量,可以降低模型对噪声的敏感度,从而减少过拟合的发生。

  2. 简化模型:减少模型复杂度:降低模型的复杂度,可以通过减少模型的层数、减少神经元数量等方式来简化模型,防止过拟合。

  3. 使用 Dropout 技术:Dropout 是一种正则化技术,通过在训练期间随机删除一些神经元来减少过拟合。

  4. 使用集成学习(Ensemble Learning):通过将多个模型的预测结果进行组合,可以提高模型的泛化能力,并减少过拟合的风险。

  5. 正则化(Regularization):在损失函数中引入正则化项,如 L1 正则化(Lasso)和 L2 正则化(Ridge),可以限制模型的复杂度,防止模型过度拟合训练数据。

  6. 交叉验证(Cross-Validation):通过交叉验证来评估模型的泛化能力,选择最佳的超参数和模型结构,可以有效减少过拟合。

  7. 提前停止(Early Stopping):在模型在验证集上表现开始下降时停止训练,可以避免模型过度拟合训练数据。
    在这里插入图片描述

  8. 特征选择(Feature Selection):选择最具代表性的特征,可以降低模型对噪声和不相关特征的敏感度,减少过拟合的风险。

什么是交叉验证

交叉验证(Cross-validation)是一种常用的机器学习模型评估方法。其目的是通过将数据集分成训练集和验证集,以评估模型的性能和泛化能力。
交叉验证的基本步骤如下:
(1)将数据集划分为K个相等的子集(通常称为折叠)。
(2)选择一个折叠作为验证集,其余K-1个折叠作为训练集。
(3)使用训练集对模型进行训练,并在验证集上进行性能评估。
(4)重复步骤2和步骤3,直到每个折叠都被用作验证集。
对每次验证结果进行评估指标的统计平均,如平均准确率、平均误差等。
交叉验证的优点在于它可以更好地评估模型的泛化能力,因为每个样本都会被用于验证。此外,交叉验证可以帮助我们选择最佳的模型参数或特征集,以避免过拟合或欠拟合。

常见的交叉验证方法包括**k折交叉验证(k-fold cross-validation)、留一法交叉验证(leave-one-out cross-validation)**等。
在这里插入图片描述

其中,k折交叉验证是最常用的方法
k 折交叉验证(k-fold cross validation):k 一般取 10
将数据集分为训练集和测试集,将测试集放在一边
将训练集分为 k 份
每次使用 k 份中的 1 份作为验证集,其他全部作为训练集。
通过 k 次训练后,我们得到了 k 个不同的模型。
评估 k 个模型的效果,从中挑选效果最好的超参数
使用最优的超参数,然后将 k 份数据全部作为训练集重新训练模型,得到最终模型
在这里插入图片描述

留出法(Holdout cross validation)
按照固定比例将数据集静态的划分为训练集、验证集、测试集。
自组法(bootstrapping)
适合于样本数目较少,有放回的取法。

四、什么是欠拟合?

欠拟合是指模型在训练集上无法获得足够低的误差,通常表现为模型复杂度不足以捕捉数据背后的真实分布或规律。

欠拟合通常发生在模型过于简单,无法很好地近似或模拟数据中的复杂关系时。这可能是因为模型缺乏必要的特征,或者是模型本身的表达能力有限,例如,使用线性模型去拟合本质上非线性的数据。欠拟合的模型在训练集上的表现通常不佳,因为它没有学习到数据中的关键模式。

解决欠拟合的方法有多种,以下是一些常见的策略:

1.增加模型复杂度:如果当前的模型太简单,无法捕捉数据中的复杂性或模式,可以尝试使用更复杂的模型,如从线性模型转向非线性模型,或者使用核SVM、决策树、深度神经网络等。
2.添加新特征:有时候欠拟合是因为模型没有足够的特征来描述数据。可以通过添加新的、有意义的特征来丰富模型的假设空间,例如组合特征、泛化特征、相关性特征、上下文特征等。
3.添加多项式特征:在机器学习算法中,通过添加二次项、三次项等高次项来增强模型的泛化能力,使其能够更好地拟合数据。
4.尝试非线性模型:如果当前使用的是线性模型,可能需要考虑非线性模型,因为非线性模型能够捕捉到数据中更复杂的关系。
5.交叉验证:使用交叉验证来评估模型的性能,确保模型在不同的数据子集上都能够表现良好,从而减少欠拟合的风险。
6.特征选择:通过特征选择方法来识别和移除不相关或冗余的特征,只保留对模型预测最有用的特征。
7.集成学习:使用集成学习方法,如Boosting,可以构建多个模型并将它们的预测结果结合起来,以提高整体的预测性能。
8.调整模型参数:对于某些模型,可能需要调整其参数设置,如神经网络中的层数、每层的神经元数量等,以便模型能够更好地学习和拟合数据。
9.数据预处理:检查数据是否有缺失值或异常值,并进行适当的处理,以确保模型能够从数据中学到有效的信息。
10.正则化:虽然正则化通常用于防止过拟合,但在某些情况下,适当调整正则化强度也可以改善欠拟合的情况。
11.训练算法的选择:选择合适的训练算法也很重要,不同的算法适用于不同类型的问题和数据集。
12.数据增强:特别是在图像和声音处理领域,通过对数据进行增强(如旋转、缩放、加噪声等)可以创造更多的训练样本,帮助模型学习到更多变化。
13.网络结构优化:对于深度学习模型,优化网络结构,如选择合适的激活函数、批量归一化、残差连接等,也可以帮助改善欠拟合。
超参数调优:通过网格搜索、随机搜索或贝叶斯优化等方法,找到最佳的超参数组合,以提高模型的性能。
14.专业知识:结合领域专家的知识和经验,可能会发现新的、有助于提高模型性能的特征或方法。
15.多任务学习:如果相关的多个任务可以同时学习,多任务学习可以提高模型的泛化能力,减少欠拟合的风险。

正则化

为了避免过拟合,需要选择参数复杂度较小的模型。这是因为如果有两个效果相同的模型,而它们的参数复杂度不相同,那么冗余的复杂度一定是过拟合导致的。为了选择复杂度较小的模型,一种策略是在优化目标中加入正则化项,以惩罚冗余的复杂度:
在这里插入图片描述

𝜃为模型参数,𝐿(𝑦,𝑦 ̂;𝜃)为原来的损失函数,𝐽(𝜃)是正则化项,𝜆用于调整正则化项的权重。
正则化项通常为𝜃的某阶向量范数。
通过 限制 参数值域空间,显式地 控制了 模型复杂度,从而避免了过拟合

L1正则化:使权重的绝对值最小化,且对于异常值是鲁棒的。
在这里插入图片描述
𝑳𝟐正则化:使得权重的平方最小化,该模型能够学习复杂的数据模式,但对于异常值不具备鲁棒性。
在这里插入图片描述

五、监督学习和无监督学习的差别

监督学习和无监督学习是机器学习中两种主要的学习范式,它们之间的主要差别在于训练数据的标注信息。

  1. 监督学习(Supervised Learning):
    • 在监督学习中,训练数据集包含输入特征和对应的标记(标签)信息
    • 算法的目标是学习将输入特征映射到相应的标记的映射关系,即学习一个从输入到输出的映射函数。
    • 监督学习的训练过程是通过已知的输入和输出对算法进行训练,使其能够预测未知数据的输出标签。
    • 典型的监督学习算法包括:分类算法(如逻辑回归、支持向量机)和回归算法(如线性回归、决策树)等。
  2. 无监督学习(Unsupervised Learning):
    • 在无监督学习中,训练数据集只包含输入特征,没有对应的标记信息。
    • 算法的目标是从数据中发现隐藏的模式、结构或特征,而不需要预先定义输出标记。
    • 无监督学习的训练过程是通过数据本身的特征进行学习和推断,通常用于聚类、降维、异常检测等任务。
    • 典型的无监督学习算法包括:聚类算法(如K均值聚类、层次聚类)、降维算法(如主成分分析PCA)和关联规则学习等。

有哪些无监督学习方法

无监督学习方法主要用于从未标记的数据中发现模式、结构或特征,常见的无监督学习方法包括:

  1. 聚类(Clustering)
    • K均值聚类(K-means Clustering)
    • 层次聚类(Hierarchical Clustering)
    • DBSCAN
    • GMM(高斯混合模型)
    • 局部敏感哈希(LSH)
  2. 降维(Dimensionality Reduction)
    • 主成分分析(Principal Component Analysis, PCA)
    • t-SNE(t-Distributed Stochastic Neighbor Embedding)
    • 特征选择(Feature Selection)
  3. 关联规则学习(Association Rule Learning)
    • Apriori算法
    • FP-growth算法
  4. 异常检测(Anomaly Detection)
    • 孤立森林(Isolation Forest)
    • LOF(Local Outlier Factor)
  5. 自编码器(Autoencoders)
    • 基于神经网络的无监督学习方法,用于学习数据的低维表示。
  6. 概率图模型(Probabilistic Graphical Models)
    • 隐马尔可夫模型(Hidden Markov Models)
    • 潜在狄利克雷分配(Latent Dirichlet Allocation, LDA)
    这些是一些常见的无监督学习方法,每种方法都有其适用的场景和特点。根据具体的问题和数据集,选择合适的无监督学习方法是很重要的。

六、准确率(accuracy)、精确率(precision)和召回率(recall)

想要预测(检测)的目标是猫,那么在数据集中猫为正样本(Positive ),其他狗、兔子、狮子这些数据为负样本(Negative )。
将这只猫预测(分类)为狗、兔子、其他预测结果为错(False);将这只猫预测为猫,预测结果为对(True)。

在这里插入图片描述

在这里插入图片描述

1.准确率(Accuracy):对于测试集中D个样本,有k个被正确分类,D-k个被错误分类,则准确率为:
在这里插入图片描述
2.精确率(查准率)- Precision:所有被预测为正样本中实际为正样本的概率

在这里插入图片描述
精准率代表对正样本结果中的预测准确程度。
准确率则代表整体的预测准确程度,既包括正样本,也包括负样本。

3.召回率(查全率)- Recall:实际为正的样本中被预测为正样本的概率

在这里插入图片描述
召回率越高,也代表网络可以改进的空间越大。

F1值

F1值(H-mean值)。F1值为算数平均数除以几何平均数,且越大越好,将Precision和Recall的上述公式带入会发现,当F1值小时,True Positive相对增加,而false相对减少,即Precision和Recall都相对增加,即F1对Precision和Recall都进行了加权。
F1值(H-mean值)。F1值为算数平均数除以几何平均数,且越大越好,将Precision和Recall的上述公式带入会发现,当F1值小时,True Positive相对增加,而false相对减少,即Precision和Recall都相对增加,即F1对Precision和Recall都进行了加权。
在这里插入图片描述
公式转化之后为:
在这里插入图片描述

PR曲线

把精确率(Precision)和召回率(Recall)之间的关系用图来表达,就是下面的PR曲线:
在这里插入图片描述
AP(Average Precision):PR曲线下的面积。
通常来说一个越好的分类器,AP值越高

mAP是多个类别AP的平均值。这个mean的意思是对每个类的AP再求平均,得到的就是mAP的值,mAP的大小一定在[0,1]区间,越大越好。该指标是目标检测算法中最重要的一个。

  • 22
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值