机器学习-模型评估

模型评估

获取一个数据集并将其拆分为一个训练集和一个单独的测试集,通过计算J-test和J-train可以衡量在测试集和训练集上的表现,系统地评估模型。
有一个小型训练集,此处仅列出了10个示例。可以将训练集拆分为两个子集:将70%的数据放入训练集(trainning set)中,30%的数据放入(test set)中。我们将在前70%的数据上训练模型,然后在测试集上测试他的表现。
在这里插入图片描述

模型选择和交叉验证测试集的训练方法

在这里插入图片描述
选择最低的成本函数对应的模型,估计这个模型的表现:过度乐观,低于实际的泛化误差。
以上方法我们使用测试集,选择了d=5这个参数,将w5、b5拟合到训练数据中,训练数据将会出现泛化误差的过度乐观估计。
改善以上方法,我们将数据集分为三个子集:训练集、交叉验证集(cross validation)、测试集。
在这里插入图片描述
选择具有最低的交叉验证错误对应的模型,最后如果想报告泛化误差的估计值,可以用测试集来评估它。
在这里插入图片描述

高偏差与高方差

用给定的数据集拟合一条直线,但是它做得并不好,就称为它有很高的偏差或者说它不适合这个数据集。
在这里插入图片描述
如果要拟合一个四阶多项式,那么可能它具有高方差或过度拟合。
在这里插入图片描述
如果拟合一个二次多项式,那么可能是刚刚好。
在这里插入图片描述
我们需要一种更系统的方式诊断或找出这个算法是否具有高偏差或高方差。
高偏差(high bias):在训练集上表现得不好
在这里插入图片描述
J-train is high.
高方差(high variance):在交叉验证集上的表现比训练集要差得多
在这里插入图片描述
J-cv 远高于 J-train。
理解:
在这里插入图片描述
在这里插入图片描述
高偏差与高方差同时发生:有一个非常复杂的模型过度拟合了部分输入数据,但对于部分的训练数据它不能很好地拟合。
在这里插入图片描述

正则化

在这里插入图片描述
λ如何影响算法的偏差与方差以及整体性能:
在这里插入图片描述

制定一个用于性能评估的基准

判断训练错误是否很大,是相对于最终能达到的目标而言。
在这里插入图片描述

学习曲线

高偏差:
随着越来越多的训练示例,当拟合简单的线性函数时,模型实际上并没有太大变化,故J-train一段时间后变平。即使得到越来越多的例子,模型太简单了无法适应这么多数据。
在这里插入图片描述
当发生高偏差时,增加训练样本数量不会对提高算法准确性有较大的改善。
高方差:
当模型发生高方差时,随着训练数据集的增加,交叉验证数据集的准确性也在增加,逐渐和训练数据集的准确性靠近。
在这里插入图片描述
如果学习算法存在高方差,那么获得更多的训练数据可能会有所帮助。

机器学习开发的迭代循环

首先确定系统地整体框架:选择模型以及决定使用哪些数据。然后根据这些选择训练模型,接下来对模型实施诊断。根据诊断结果做出决策,让神经网络更大或者改变正则化参数、增加训练数据或添加添加减少功能。
在这里插入图片描述
进行多次迭代,直到达到想要的性能。

机器学习项目的完整周期

机器学习的第一步是确定项目范围以及想要做什么,之后要收集数据,决定你需要什么数据来训练你的机器学习系统。之后就可以开始训练模型了,进行误差分析、收集更多的数据等等,循环这几个步骤直到最终模型足够好。

倾斜数据集的误差指标

有时候,模型准确性并不能评价一个算法的好坏。比如针对癌症筛查算法,根据统计,普通肿瘤中癌症的概率是0.5%。 有一个机器学习算法,测试得出的准确率是 99.2% ,错误率是0.8% 。这个算法到底是好还是坏呢?如果努力改进算法,最终得出的准确率是99.5%,错误率是 0.5% ,模型到底是变好了还是变坏了呢?
如果单纯从模型准确性的指标上很难判断到底是变好了还是变坏了。因为这个事情的先验概率太低了,假如写了一个超级简单的预测函数,总是认为不会得癌症,那么我们这个超级简单的预测函数的准确率是 99 .5 ,错误率是 0.5% 。因为总体而言,只有那 5%真正得癌症的却被我们误判了。
那么怎么样来评价这类问题的模型好坏呢?我们引入了另外两个概念,查准率(Precision)和召回率(Recall)。
实际类与预测类:
当实际类为1,预测类也为1时,我们称之为真阳性(True positive)。当实际类为0,预测类也为0时,我们称之为真阴性(True negative)。当实际类为0,而预测类为1时,称为假阳性(False positive)。当实际类为1,而预测类为0时,称之为假阴性(False negative)。
在这里插入图片描述
查准率与召回率:  Precision  =  TruePosition   TruePosition  +  FalsePositive   Recall  =  TruePositive   TruePositive  +  FalseNegative  \begin{gathered} \text { Precision }=\frac{\text { TruePosition }}{\text { TruePosition }+\text { FalsePositive }} \\ \text { Recall }=\frac{\text { TruePositive }}{\text { TruePositive }+\text { FalseNegative }} \end{gathered}  Precision = TruePosition + FalsePositive  TruePosition  Recall = TruePositive + FalseNegative  TruePositive  在这里插入图片描述
在处理先验概率低的问题时,我们总是把概率较低的事件定义为1,并且把 y=l 作为Positive 的预测结果。故上述超级简单的预测函数,查准率与召回率都是0,因为他永远无法正确地预测出恶性肿瘤,即True positive永远为0。

查准率与召回率的权衡

高查准率意味着诊断出患有这种罕见疾病的患者可能确实患有它,这是一个准确的诊断。高召回率意味着如果有一个患有这种罕见疾病的患者,算法可能会正确地识别出他们确实患有这种疾病。
在这里插入图片描述
在这里插入图片描述
如果有一个算法的查准率是0.5,召回率是0.4;另外一个算法查准率是0.02,召回率是1.0;那么两个算法到底哪个好呢?
为了解决这个问题,我们引入了 F1Score 概念:
F 1  Score  = 2 P R P + R F_{1} \text { Score }=2 \frac{P R}{P+R} F1 Score =2P+RPR其中P是查准率,R是召回率。这样就可以用一个数值直接判断哪个算法性能更好。典型地,如果查准率或召回率有一个为0,那么 F1Score 将会为0。而理想的情况下,查准率和召回率都为1,则算出来的F1Score为1。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 机器学习模型评估、选择和验证是指评估模型的性能、从多个模型中选择最佳模型,并验证模型的泛化能力。常用的评估方法包括准确率、精确率、召回率、F1 分数、ROC 曲线和 AUC 等。常用的选择方法包括交叉验证、超参数调优、学习曲线分析等。 ### 回答2: 机器学习的目标是通过训练来构建模型,以便能够高效地预测未知数据。但是,模型的准确性不仅取决于所使用的算法,还取决于其它因素,例如数据和参数设置。 模型评估能够帮助我们了解模型性能的好坏。评估算法的过程通常涉及到数据划分、交叉验证和各种评估指标。一般来说,数据划分的过程将数据集拆分成训练集和测试集。用训练集来构建模型并进行参数调整,然后使用测试集来衡量模型的性能。交叉验证是在数据集合上的一个更安全和更可靠的方法,它将原始数据集划分成K个互斥的子集,并使用K-1个子集来训练模型,用剩余的子集来评估模型的性能。 选择正确的模型非常关键,因为模型的性能可以直接影响结果的准确性。选择模型的一个重要因素是如何表示数据集。数据可以使用多种方式表示,而不同的数据表示方式有不同的优劣。选择适当的模型是当然的,但是我们还应该使用技术来优化模型,并防止模型过度拟合或欠拟合。 模型验证是评估模型如何执行任务的最终步骤。验证后,我们可以使用模型进行预测并将其应用于新数据。如果模型的性能不符合要求,可以通过重新评估、更改数据集或改变模型参数来尝试改善。模型验证是机器学习流程中非常重要的一部分,可以确保我们的模型效果良好,从而为我们提供可靠的预测结果。 总之,机器学习是一种建立复杂模型的方法,不同的算法、数据表示方式和参数会影响其性能。为了找到最佳模型,我们需要进行模型评估、选择和验证等工作。这些步骤是机器学习流程的关键组成部分,可以帮助我们构建高效且准确的模型,从而应对各种实际应用场景。 ### 回答3: 机器学习是一种人工智能领域的重要技术,它允许计算机从历史数据中学习,建立预测模型,并用于未来的数据预测和决策。模型评估、选择与验证是机器学习过程中的重要一环,以保证模型的准确性、稳定性和泛化能力。 模型评估的目的是检验模型的表现,并度量其优劣。常用的评估指标包括精确度、召回率、F1值等,这些指标可以用于比较不同模型之间的性能表现。评估模型时,通常需要将数据集划分为训练集和测试集,训练集用于训练模型,而测试集用于评估模型性能。评估模型的结果可以指导我们调整模型的参数,提高模型的预测精度。 模型选择是在多个模型中选择最合适的模型。常用的模型选择方法包括交叉验证、留一法等。交叉验证是将数据集分成k个子集,每个子集轮流作为测试集进行模型评估,其余部分用于训练模型,最后将测试集误差取平均值作为综合误差来评估模型的性能。 模型验证是对模型的泛化能力的验证。泛化能力是指模型对未知数据的预测精度,即模型是否能够对新数据进行较好的预测。在模型验证中,需要将数据集划分为训练集、验证集和测试集。在训练集中训练模型,在验证集上调整模型参数,并在测试集上验证模型的泛化能力。常用的验证方法包括留存法、k折交叉验证等。 综上所述,模型评估、选择与验证对于机器学习中的预测模型非常重要。这些技术可以保证模型的准确性和稳定性,并提高模型的泛化能力,为数据分析和预测提供可靠依据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值