Python机器学习分类中的评估指标,分类器的评估指标。评估指标解释模型的性能。有不同的模型评估指标,但我们这里只讨论其中的三个,具体来说:雅卡尔指数、F1得分和对数损失。 雅卡尔指数是最简单的精度测量之一,它定义为交点的大小除以两个标签集的并集。它可以衡量模型的准确性。 混淆矩阵是另一种评估分类器准确性的方法,它显示了模型正确执行的能力预测或分离类别。在二进制分类器的特定情况下,我们可以解释混淆矩阵中的数字作为真阳性、假阴性、真阴性和假阳性的计数。

评估指标解释模型的性能。让我们详细讨论用于分类的模型评估度量。

假设我们有一个历史数据集,显示电信公司的客户流失情况。我们已经训练了模型,现在我们想使用测试集来计算其精度。我们将测试集传递给我们的模型,并找到预测的标签。现在的问题是,“这个模型有多准确?”基本上,我们将测试集中的实际值与模型,计算模型的精度。

评估度量在模型开发中起着关键作用,因为它们提供了洞察力可能需要改进的领域。有不同的模型评估指标,但我们这里只讨论其中的三个,具体来说:雅卡指数、F1得分和对数损失。

让我们首先看一看最简单的精度测量之一,雅卡德指数——还有称为雅卡相似系数。假设y显示了客户流失数据集的真实标签。y显示了分类器的预测值。然后,我们可以将Jaccard定义为交点的大小除以两个标签集的并集。例如,对于大小为10的测试集,具有8个正确的预测或8个交点,Jaccard指数的准确度为0.66。如果样本的整个预测标签集与真实集严格匹配对于标签,则子集精度为1.0;否则为0.0。

查看分类器准确性的另一种方法是查看混淆矩阵。例如,假设我们的测试集只有40行。该矩阵显示了与实际值相比的更正和错误预测标签。每个混淆矩阵行显示测试集中的Actual/True标签,列显示通过分类器预测标签。

让我们看看第一排。第一行用于测试集中实际流失值为1的客户。正如您可以计算的那样,在40个客户中,其中15个客户的流失值为1。在这15个分类器中,分类器正确地预测其中6个为1,9个为0。这意味着对于6个客户,测试集中的实际流失值为1,而分类器也正确地将这些预测为1。然而,虽然9个客户的实际标签为1,但分类器预测这些客户为0,这不是很好。我们可以将此视为第一行的模型错误。

流失值为0的客户呢?让我们看看第二排。看起来有25个客户的流失值为0。分类器正确地预测其中24个为0,其中一个错误地预测为1。因此,它在预测流失值为0的客户方面做得很好。

混淆矩阵的一个优点是,它显示了模型正确执行的能力预测或分离类别。在二进制分类器的特定情况下,如本例,我们可以解释这些数字作为真阳性、假阴性、真阴性和假阳性的计数。基于每个部分的计数,我们可以计算每个部分的精度和召回率。

标签精度是精度的度量,前提是已经预测了类标签。其定义为:精度=真阳性/(真阳性+假阳性)。召回是真正的阳性率。它被定义为:召回=真阳性/(真阳性+假阴性)。因此,我们可以计算每个类的精度和召回率。

现在,我们可以根据精度计算每个标签的F1得分并回忆起那个标签。F1得分是精度和召回的调和平均值,其中F1得分达到其最佳值为1(表示完美的精度和召回),最差值为0。这是一种很好的方法,可以表明分类器在召回和精度方面都有很好的价值。它是使用F1得分方程定义的。例如,类别0(即流失=0)的F1得分为0.83,类别1的F1得分(即搅动=1),为0.55。

最后,我们可以知道该分类器的平均精度是两个标签的F1得分,在我们的情况下为0.72。请注意,Jaccard和F1分数都可以用于多类分类器,如嗯,这超出了本课程的范围。

现在,让我们看一看分类器的另一个精度度量。有时,分类器的输出是类标签的概率,而不是标签。例如,在逻辑回归中,输出可以是客户流失的概率,即,是(或等于1)。该概率是介于0和1之间的值。

对数损失(也称为对数损失)衡量分类器的性能,其中预测输出是介于0和1之间的概率值。因此,例如,当实际标签为1时预测0.13的概率,将很糟糕,并会导致很高的日志丢失。

我们可以使用对数损失方程来计算每行的对数损失,该方程测量每个预测离实际标签有多远。然后,我们计算测试集所有行的平均日志损失。

很明显,理想分类器具有逐渐减小的对数损失值。因此,具有较低对数损失的分类器具有更好的准确性。

 

Python机器学习分类中的评估指标 推荐

领券有优惠