全部版块 我的主页
论坛 数据科学与人工智能 人工智能 机器学习
1050 0
2020-09-18
因此,您已经建立了机器学习模型,并在一些数据上对其进行了训练……现在呢?在这篇文章中,我将讨论如何评估您的模型,并根据我们学习的评估模型的知识来提出改进模型的实用建议。

我将回答以下问题:

我的模型做得如何?这是有用的模型吗?
在更多数据上训练我的模型会改善其性能吗?
我需要包括更多功能吗?
训练/测试/验证拆分
要正确评估模型,最重要的事情就是不要在整个数据集中训练模型。我重复一遍:不要在整个数据集中训练模型。我在关于为机器学习模型准备数据的文章中谈到了这一点,由于它非常重要,因此我将再次提及。典型的训练/测试划分是将70%的数据用于训练,将30%的数据用于测试。

正如我之前所讨论的,在评估模型时使用新数据很重要,以防止过度拟合训练集的可能性。但是,有时在构建模型以找到模型的最佳参数时评估模型很有用-但是我们无法使用测试集进行评估,否则最终将选择在以下条件下表现最佳的参数测试数据,但可能不是最概括的参数。为了在仍在构建和调整模型的同时评估模型,我们创建了数据的第三子集,称为验证集。典型的训练/测试/验证拆分是将60%的数据用于训练,20%的数据用于验证和20%的数据用于测试。

我还将注意到,在进行这些拆分之前,请先对数据进行洗牌,这一点非常重要,这样每个拆分都可以准确表示数据集。

指标
在本节中,我将讨论用于评估模型的常见指标。

分类指标
在执行分类预测时,可能会发生四种类型的结果。

真正的肯定是指您预测某个观察值属于某个类,而它实际上确实属于该类。
真正的否定是当您预测观察值不属于某个类别并且实际上不属于该类别时。
当您预测观察值实际上属于某个类别时,就会出现误报。
当您预测某个观察值实际上不属于某个类别时,就会出现假阴性。
通常将这四个结果绘制在混淆矩阵上。以下混淆矩阵是二进制分类情况的示例。在对测试数据进行预测,然后将每个预测标识为上述四个可能结果之一后,您将生成此矩阵。
Screen-Shot-2017-07-21-at-9.57.38-AM.png

您也可以扩展此混淆矩阵以绘制多类分类预测。以下是一个示例混淆矩阵,用于对虹膜花数据集中的观测进行分类。

download--1- (1).png

用于评估分类模型的三个主要指标是准确性,准确性和召回率。

准确性定义为测试数据正确预测的百分比。通过将正确预测的数目除以总预测的数目,可以轻松地计算出该结果。

\[accuracy=correct predictions/all predictions\]
精度定义为相关示例(真实肯定)在所有预测属于特定类别的示例中所占的比例。

\[precision=true positives (true positives+false positives)\]

回忆定义为相对于真正属于该类的所有示例,被预测属于该类的示例的比例。

\[recall=true positives /(true positives+false negatives)\]
下图在可视化精度和召回率之间的差异方面做得非常出色。
Precisionrecall.svg.png
在类分布不均匀的情况下,精度和召回率很有用。常见示例是用于开发预测某人是否患有疾病的分类算法。如果只有一小部分人(例如1%)患有这种疾病,我们可以建立一个始终预测该人没有这种疾病的分类器,那么我们将建立一个模型,该模型的准确度为99%,有用度为0% 。

但是,如果我们测量了这个无用的预测变量的召回率,则很明显我们的模型存在问题。在此示例中,召回可确保我们不会忽视患有该疾病的人,而精确度可确保我们不会在没有疾病的情况下将太多人误认为患有疾病。显然,您不会希望模型错误地预测一个人患有癌症(该人最终会因他们没有的疾病而经历痛苦且昂贵的治疗过程),但您也不想误判一个人实际上没有癌症。因此,评估模型的精度和召回率非常重要。

最终,有一个数字可以很好地评估机器学习模型,就像您在学校考试中获得一个单一的成绩一样。因此,将精度和召回率指标结合起来是有意义的。组合这些指标的常用方法称为f分数。
\[Fβ=(1+β2)precision⋅recall/((β2⋅precision)+recall)\]

的 β 参数允许我们控制精度和召回率之间的重要性权衡。 β< 1 同时更注重精度 β> 1 更多地关注召回。

当我在寻找其他示例来解释精确度和召回率之间的权衡时,我遇到了以下文章,讨论了使用机器学习预测自杀。在这种情况下,我们希望将更多的注意力放在模型的召回上,而不是其精度上。与实际上未考虑自杀的人进行干预所产生的危害要比错过正在考虑自杀的人所造成的危害要小得多。但是,精确度仍然很重要,因为您不希望模型预测错误肯定的情况过多,否则您会遇到“ The Model Who Cried Wolf”的案例
注意:本文仅报告这些模型的准确性,而不报告准确性或召回率!到现在为止,您应该知道,仅凭准确性还不能充分说明模型的有效性。但是,发表的原始论文确实提出了准确性和召回率。

回归指标
回归模型的评估指标与上述针对分类模型讨论的指标完全不同,因为我们现在在连续范围内进行预测,而不是离散数量的类别。如果您的回归模型预测房屋的价格为$ 400K,而房屋售价为$ 405K,这是一个很好的预测。但是,在分类示例中,我们仅关注预测的正确与否,没有能力说预测为“相当好”。因此,我们为回归模型提供了一组不同的评估指标。

解释方差比较预期结果内的方差,并将其与模型误差中的方差进行比较。该指标实质上代表了我们的模型能够解释的原始数据集中的变化量。
\[EV(ytrue,ypred)=1−Var(ytrue−ypred)/ytrue\]
均方误差简单定义为预测输出和真实输出之间的平方差的平均值。平方误差是常用的,因为它与预测的过高或过低无关,它只是报告预测不正确。
下载 (1).png
的\[R2\]系数表示方差中,我们的模型能够根据其功能预测的结果的比例。

下载 (2).png
偏差vs方差
任何机器学习模型的最终目标是从示例中学习并概括一些关于我们正在训练它执行的任务的知识。一些机器学习模型通过建议该知识的基础结构来提供泛化框架。例如,线性回归模型强加了一个框架来学习我们提供的信息之间的线性关系。但是,有时我们为模型提供的预置结构过多,从而限制了模型从示例中学习的能力-例如在指数数据集上训练线性模型的情况。在这种情况下,我们的模型偏置通过预征收结构和关系。

具有高偏差的模型很少关注显示的数据;这也称为欠拟合。
download--2-.png
通过尝试教模型执行任务而不提供所有必要信息,也可以使模型有偏差。如果您知道模型的约束并没有偏向模型的性能,但是仍然观察到拟合不足的迹象,则可能是您没有使用足够的特征来训练模型。

另一方面,有时当我们训练模型时,它会从训练数据中学到太多。也就是说,我们的模型除了捕获信号外,还捕获数据中的噪声。这可能会导致模型中的真实波动,无法代表真实趋势。在这种情况下,我们说该模型具有较高的方差。在这种情况下,我们的模型不能很好地推广,因为它过于关注训练数据而没有考虑推广到新数据。换句话说,我们已经使模型过度适合训练数据。
download--3-.png
综上所述,具有高偏差的模型无法学习真实趋势,因此无法拟合数据。具有高方差的模型会从训练数据中学到太多,从而使数据过拟合。最好的模型位于两个极端之间的某个位置。
download--4-.png

接下来,我将讨论两个常用的工具,这些工具用于诊断模型是否容易受到高偏差或方差的影响。

验证曲线
正如我们在上一节中讨论的那样,任何机器学习模型的目标都是泛化。验证曲线使我们能够找到模型的欠拟合和过度拟合之间的最佳结合点,从而建立一个泛化能力强的模型。

典型的验证曲线是模型误差与某些模型超参数的函数关系图,该模型控制模型过度拟合或欠拟合数据的趋势。您选择的参数取决于您要评估的特定模型。例如,您可能选择绘制线性回归模型的多项式特征的度数(通常,这意味着您具有该程度的多项式特征)。通常,所选参数将对模型的复杂性具有一定程度的控制。在此曲线上,我们绘制了模型的训练误差和验证误差。结合使用这两个错误,我们可以诊断模型是否遭受高偏差或高方差。
Screen-Shot-2017-07-21-at-2.30.04-PM.png
在训练误差和验证误差都很高的区域中,模型容易受到高偏差的影响。在这里,它无法从数据中学习并且表现不佳。

在训练误差和验证误差有所不同的区域,随着训练误差保持较低且验证误差增大,我们开始看到高方差的影响。训练误差很低,因为我们过度拟合数据并从训练示例中学到了太多东西,而验证误差仍然很高,因为我们的模型无法将训练数据推广到新数据。

学习曲线
我们将讨论的用于诊断模型中偏差和方差的第二个工具是学习曲线。在这里,我们将根据训练示例数量绘制模型误差。与验证曲线类似,我们将为训练数据和验证数据绘制误差。

如果我们的模型具有较高的偏差,则对于验证和训练数据集,我们将观察到相当快的收敛到较高的误差。如果模型存在高偏差,那么对更多数据进行训练对改善模型几乎没有作用。这是因为欠佳数据的模型很少关注数据,因此输入更多数据将毫无用处。改善遭受高偏差影响的模型的更好方法是考虑向数据集添加其他功能,以便使模型更有能力学习正确的关系。
Screen-Shot-2017-07-21-at-5.12.23-PM.png
如果我们的模型具有较高的方差,我们会看到训练误差和验证误差之间的差距。这是因为该模型对于训练数据表现良好,因为它已经过拟合该子集,而对于验证数据却表现不佳,因为它无法概括适当的关系。在这种情况下,在训练过程中提供更多数据可以帮助改善模型的性能。
Screen-Shot-2017-07-21-at-5.18.22-PM.png
其他实用建议
在评估分类器模型时,我要做的另一件事是将数据集缩小为二维,然后绘制观察值和决策边界。有时,在评估数据和模型的性能时,对其进行直观检查很有帮助。

sphx_glr_plot_iris_001.png



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群