本文将介绍机器学习算法中非常重要的知识——分类,即找到一个函数来判断输入数据的类别,可以是二分类问题(是的/no),或者可以是多分类问题(判断输入数据属于多个分类中的哪一类)。与回归问题(regression)相比,分类问题的输出不再是一个连续值,而是一个离散值,用来指明它属于哪一类。分类问题在现实中应用广泛,如垃圾邮件识别、手写数字识别、人脸识别、语音识别等。首先,指定阈值逻辑回归返回概率。您可以“按原样”使用返回的概率(例如,用户点击此广告的概率为0.00023),或者您可以将返回的概率转换为二进制值(例如,此电子邮件是垃圾邮件)。如果逻辑回归模型在预测一封电子邮件时返回0.9995的概率,则意味着该模型预测该电子邮件很可能是垃圾邮件。相反,另一封在同一逻辑回归模型中预测得分为0.0003的电子邮件很可能不是垃圾邮件。但是如果一封电子邮件的预测分数是0.6呢?为了将逻辑回归值映射到二元类别,您必须指定一个分类阈值(也称为决策阈值)。高于此阈值的值表示“垃圾邮件”,低于此阈值的值表示“不是垃圾邮件”。人们倾向于认为分类阈值应该始终为0.5,但阈值是问题相关的,所以你必须调整它。我们将在后面的部分详细介绍可用于评估分类模型预测的指标,以及更改分类阈值对这些预测的影响。??注意:逻辑回归的“调整”阈值与调整学习率等超参数不同。选择阈值时,您需要评估如果您犯了错误,您将遭受多大的损失。例如,将非垃圾邮件错误标记为垃圾邮件会非常糟糕。但是,尽管将垃圾邮件错误地标记为不是垃圾邮件令人不快,但它不应该让您失去工作。2.正类和负类以及正类和负类在本节中,我们将首先定义用于评估分类模型的指标的主要组成部分。让我们从一个寓言说起:伊索寓言:狼来了(缩略版)有一个牧童想在镇上放羊,但他厌倦了这份工作。只是为了好玩,他大喊:“狼来了!”当根本没有狼出现的时候。村民们赶来保护羊群,却发现牧童是在开玩笑,非常生气。(这种情况已经重复了很多次。)……一天晚上,牧童看到一只狼向羊群逼近,他大叫:“狼来了!”在家不能出来。饿狼宰了羊群,美美地吃了一顿。现在,整个城镇都无法摆脱它。恐慌接踵而至。我们做如下定义:“狼来了”是正类。“没有狼”是一个负类。我们可以用描述所有可能结果(总共四个)的2x2混淆矩阵来总结我们的“狼预测”模型:一个真实的例子是模型正确地将正样本预测为正样本的例子。同样,真阴性是指模型将负类样本正确预测为负类。假阳性是指模型错误地将负类样本预测为正类,而假阴性是指模型将正类样本错误预测为负类。在后面的部分中,我们将描述如何使用从这四个结果得出的指标来评估分类模型。3.准确率准确率是用来评价分类模型的指标。通俗地说,准确性是指我们的模型预测的正确结果的比例。更正式地说,准确性定义如下:对于二元分类,准确性也可以根据正类和负类计算如下:其中TP=真阳性,TN=真阴性,FP=假阳性,FN=假阴性。让我们尝试计算以下模型的准确性,该模型将100个肿瘤分类为恶性(阳性类)或良性(阴性类):准确性为0.91,即91%(预测正确的100个样本中有91个)。这意味着我们的肿瘤分类器在识别恶性肿瘤方面做得非常好,对吧?事实上,如果我们仔细观察正类和负类,我们可以更好地了解我们的模型的表现。在100个肿瘤样本中,91个是良性的(90个TN和1个FP),9个是恶性的(1个TP和8个FN)。在91个良性肿瘤中,该模型正确地将90个识别为良性。这很好。然而,在9种恶性肿瘤中,该模型正确地将1种识别为恶性肿瘤。多么可怕的结果!9例恶性肿瘤中有8例未确诊!虽然91%的准确率乍一看可能还不错,但如果另一个肿瘤分类器模型总是预测良性,那么该模型在使用我们的样本进行预测时也将达到相同的准确率(100个预测中有91个是正确的)。换句话说,我们的模型与那些没有区分恶性肿瘤和良性肿瘤的预测能力的模型相当。当您使用类别不平衡的数据集(例如正标签和负标签的数量之间存在显着差异)时,仅靠准确性并不能说明全部情况。在下一节中,我们将介绍两个可以更好地评估分类不平衡问题的指标:精度和召回率。学会理解在以下哪些情况下,准确率值高表明机器学习模型表现良好?一只昂贵的机器鸡每天要穿过交通繁忙的道路一千次。机器学习模型评估交通模式并预测鸡何时可以安全过马路,准确率为99.99%。一种致命但可治愈的疾病,影响0.01%的人口。机器学习模型使用症状作为特征来预测疾病,准确率为99.99%。在轮盘赌游戏中,球落在纺车上并最终落入38个槽位之一。机器学习模型可以使用视觉特征(球如何旋转,球落下时旋转轮的位置,球在旋转轮上方的高度)以4%的准确度预测球将落入哪个槽。4.Precisionandrecall4.1Precisionprecision指标试图回答如下问题:在被识别为正类的样本中,正类的比例是多少?精度定义如下:??注意:如果模型的预测中没有误报,则模型的精度为1.0。我们来计算一下上一节中用于分析肿瘤的机器学习模型的准确率:该模型的准确率为0.5,这意味着该模型在预测恶性肿瘤方面有50%的正确率。4.2RecallRecall试图回答以下问题:在所有正样本中,有多少部分被正确识别为正样本?在数学上,召回率定义如下:??注意:如果模型的预测中没有假阴性,则该模型的召回率为1.0。让我们计算一下肿瘤分类器的召回率:该模型的召回率为0.11,即该模型正确识别了所有恶性肿瘤的11%。4.3精确率和召回率:一场拉锯战要全面评估模型的有效性,必须同时检查精确率和召回率。不幸的是,准确率和召回率通常是权衡取舍的。也就是说,提高精度通常会降低召回值,反之亦然。要理解这个概念,请观察下图,其中显示了电子邮件分类模型做出的30个预测。分类阈值右侧的那些被分类为垃圾邮件,而左侧的那些被分类为非垃圾邮件。图1.将邮件分类为垃圾邮件或非垃圾邮件我们根据图1所示的结果计算precision和recall值:precision是在标记为垃圾邮件的邮件中被正确分类的邮件数量百分比,也就是百分比图1阈值线右侧绿点的百分比:Recall是指正确分类的邮件在实际垃圾邮件中所占的百分比,即图1阈值线右侧的百分比绿点百分比:图2显示了提高分类阈值的效果。图2.增加分类阈值会减少误报的数量,但会相应地增加误报的数量。因此,精度提高而召回率降低:相比之下,图3显示了降低分类阈值(从图1中的初始位置开始)的效果。图3.降低分类阈值会增加假阳性的数量并减少假阴性的数量。事实证明,这一次准确率下降了,召回率提高了:我们根据准确率和召回率指标制定了各种指标。有关示例,请参阅F1值。学习理解让我们以一个分类模型为例,该模型将电子邮件分为两类,“垃圾邮件”或“非垃圾邮件”。如果提高分类阈值,准确性会发生什么变化?可能会增加。一定会改善的。肯定会降低。可能会减少。让我们举一个分类模型的例子,它将电子邮件分为两类,“垃圾邮件”或“非垃圾邮件”。如果提高分类阈值,召回率会发生什么变化?始终减少或保持不变。始终保持不变。一定会改善的。以两个模型(A和B)为例,每个模型都在同一数据集上进行评估。下列哪项为真?如果模型A的准确率高于模型B,则模型A更好。如果模型A的准确率和召回率比模型B高,那么模型A可能更好。如果模型A的召回率高于模型B,则模型A更好。五、ROC和AUC5.1ROC曲线ROC曲线(ReceiverOperatingCharacteristicCurve)是展示分类模型在所有分类阈值下性能的图表。该曲线绘制了以下两个参数:TruePositiveRateFalsePositiveRateTruePositiveRate(TPR)与Recall同义,因此定义如下:FalsePositiveRate(FPR)定义如下:ROC曲线用于绘制不同的TPR与FPR在分类阈值。降低分类阈值会导致更多样本被分类为阳性,从而增加假阳性和真阳性的数量。下图显示了典型的ROC曲线。图4.不同分类阈值下的TP率与FP率为了计算ROC曲线上的点,我们可以使用不同的分类阈值多次评估逻辑回归模型,但这样做效率很低。幸运的是,有一种基于排名的高效算法可以为我们提供此类信息,称为曲线下面积。5.2Areaunderthecurve:ROC曲线下的面积areaunderthecurve是指“ROC曲线下的面积”。也就是说,曲线下面积衡量整个ROC曲线下从(0,0)到(1,1)的整个二维面积(参见微积分)。图5.曲线下面积(ROC曲线下面积)曲线下面积是对所有可能的分类阈值的影响的组合度量。读取曲线下面积的一种方法是模型将正类的一些随机示例排在负类的一些随机示例之上的概率。以下面的样本为例,逻辑回归预测从左到右按升序排列:图6.按逻辑回归得分升序预测曲线下面积表示随机正类(绿色)样本在随机负类右侧(红色)样本概率。曲线下的面积可以取0-1之间的值。预测100%结果错误的模型的曲线下面积为0.0;预测100%结果正确的模型的曲线下面积为1.0。曲线下面积之所以有用,有两个原因:曲线下面积是尺度不变的。它衡量预测排名的好坏,而不是它的绝对值。曲线下面积的分类阈值保持不变。无论选择的分类阈值如何,它都会衡量模型预测的质量。但是,这两个原因都有其自身的局限性,这可能会使曲线下面积在某些用例中不太实用:尺度不变性并不总是可取的。例如,有时我们非常需要一个经过良好校准的概率输出,而曲线下的面积并不能告诉我们这个结果。并不总是希望有一个恒定的分类阈值。在假阴性与假阳性的成本差异很大的情况下,最小化一种类型的分类错误可能至关重要。例如,在进行垃圾邮件检测时,您可能希望优先考虑最大限度地减少误报(即使这会导致误报大幅增加)。对于这种类型的优化,曲线下的面积不是一个实用的指标。学习理解以下哪条ROC曲线产生的AUC值大于0.5?将给定模型的所有预测乘以2.0(例如,如果模型预测为0.4,我们将其乘以2.0得到0.8)如何改变模型的性能,如AUC所衡量的?这使得AUC更好,因为预测值都非常不同。不用找了。AUC只关注相对预测分数。这会使AUC变得更糟,因为预测值现在相差很远。6.预测偏差Logistic回归预测应该没有偏差。即:预测偏差是指这两个均值之间的差异。即:PredictedBias=PredictedMean?数据集中相应标签的均值??注意:“PredictedBias”与Bias(“wx+b”中的“b”)不是一回事。非常高的非零预测偏差表明模型中某处存在错误,因为它表明模型错误预测了正类别标签的频率。例如,假设我们知道所有电子邮件中平均有1%是垃圾邮件。如果我们对给定的电子邮件一无所知,我们预测它是垃圾邮件的可能性为1%。同样,一个好的垃圾邮件模型应该预测一封电子邮件有平均1%的机会是垃圾邮件。(换句话说,如果我们对单个电子邮件是垃圾邮件的预测可能性进行平均,则结果应该是1%。)但是,如果模型预测20%的电子邮件是垃圾邮件的平均概率,那么我们可以得出结论:模型表现出预测偏差。预测偏差的可能原因包括:特征集不完整数据集杂乱模型实现流水线错误训练样本有偏差正则化太强调整模型的输出以减少预测偏差。例如,如果您的模型偏差超过3%,您可以添加校准层以将平均预测偏差降低3%。但是,添加校准层并不是一个好主意,原因如下:您是在治标不治本。您构建了一个必须不断更新的更脆弱的系统。使用校准层修复模型的任何错误。尽可能避免添加校准层。使用校准层的项目往往依赖于它们最终,维护校准层可能是一件令人头疼的事情。??注意:好的模型的偏差通常接近于零。即便如此,低预测偏差并不能证明您的模型更好。一个特别糟糕的模型也有可能具有零预测偏差。例如,一个只能预测所有样本均值的模型是一个较差的模型,即使它的预测偏差为零。7.BucketBias和PredictionBiasLogistic回归预测0到1之间的值。然而,所有标记的样本恰好是0(例如,0表示“不是垃圾邮件”)或1(例如,1表示“垃圾邮件”)。因此,在检查预测偏差时,仅根据一个样本无法准确确定预测偏差;您必须检查“大桶”样本中的预测偏差。也就是说,逻辑回归的预测偏差只有在将足够多的样本组合在一起以便能够将预测值(比如0.392)与观察值(比如0.394)进行比较时才有意义。您可以通过以线性方式分解目标预测来构建存储桶。构建分位数。请参阅下面特定型号的校准曲线。每个点代表一个包含1000个值的桶。这两个轴具有以下含义:x轴表示模型为该桶预测的平均值。y轴表示该桶数据集中的实际平均值。两个轴都在对数刻度上。图7.预测偏差曲线为什么只有模型的某些部分预测得如此糟糕?以下是一些可能性:训练集不能充分代表数据空间的某些子集。数据集的某些子集比其他子集更混乱。该模型过度正则化。(您可能希望降低lamdba的值。)
