机器学习算法中分类知识总结

2023-05-26 0 496

机器学习算法中分类知识总结

译者丨刘智

责任编辑将如是说机器自学演算法中十分重要的科学知识—展开分类(classification),即找两个表达式推论输入统计数据辖下的类型,能是二类型难题(是/不是),也能是多类型难题(在数个类型中推论输入统计数据具体归属于哪两个类型)。与重回难题(regression)较之,展开分类难题的输入无须是已连续值,而要对数值,用以选定其归属于别的类型。展开分类难题在现实生活中应用领域十分广为,比如说流氓软件辨识,记事本位数辨识,人脸辨识,音频辨识等。

机器学习算法中分类知识总结

一、选定共振频率

方法论重回回到的是机率。你能“原貌”使用回到的机率(比如说,使用者点选此电视广告的机率为 0.00023),也能将回到的机率转化成相互依赖值(比如说,这电子邮件是流氓软件)。

假如某一方法论重回数学模型对某电子邮件展开预估时回到的机率为 0.9995,则则表示该数学模型预估这封电子邮件十分可能将是流氓软件。恰好相反,在同一方法论重回数学模型中预估平均分为 0.0003 的另一电子邮件很可能将不是流氓软件。可假如某封电子邮件的预估平均分为 0.6 呢?为的是将方法论重回值态射到相互依赖类型,你要选定展开分类共振频率(也称作认定共振频率)。假如值高于该共振频率,则则表示“流氓软件”;假如值高于该共振频率,则则表示“非流氓软件”。现代人常常会认为展开分类共振频率应仍旧为 0.5,但共振频率依赖于具体内容难题,因此你要对其展开修正。

我们将在前面的部分中详尽如是说可用作对展开分类数学模型的预估展开评估结果的分项,以及更动展开分类共振频率对这些预估的影响。

⭐️ 特别注意:

“修正”方法论重回的阈值有别于修正自学速度等超模块。在优先选择共振频率时,需要评估结果你将因犯错误而分担数不清的不良后果。比如说,将非流氓软件误记号为流氓软件会十分差劲。不过,虽然将流氓软件误记号为非流氓软件会令人不快,但应该不会让你丢掉工作。

二、阳性与阴性以及正类型与负类型

在本部分,我们将定义用作评估结果展开分类数学模型分项的主要组成部分先。不妨,我们从一则寓言故事开始:

伊索寓言:狼来了(精简版) 有一位牧童要照看镇上的羊群,但是他开始厌烦这份工作。为的是找点乐子,他大喊道:“狼来了!”其实根本一头狼也没有出现。村民们迅速跑来保护羊群,但他们发现这个牧童是在开玩笑后十分生气。(这样的情形重复出现了很多次。)

一天晚上,牧童看到真的有一头狼靠近羊群,他大声喊道:“狼来了!”村民们不想再被他捉弄,都待在家里不出来。这头饥饿的狼对羊群大开杀戒,美美饱餐了一顿。这下子,整个镇子都揭不开锅了。恐慌也随之而来。

我们做出以下定义:

“狼来了”是正类型。

“没有狼”是负类型。

我们能使用两个 2×2的混淆矩阵来归纳我们的“狼预估”数学模型,该矩阵描述了所有可能将出现的结果(共四种):

机器学习算法中分类知识总结

真正例是指数学模型将正类型样本正确地预估为正类型。同样,真负例是指数学模型将负类型样本正确地预估为负类型。

假正例是指数学模型将负类型样本错误地预估为正类型,而假负例是指数学模型将正类型样本错误地预估为负类型。

在前面的部分中,我们将如是说如何使用从这四种结果中衍生出的分项来评估结果展开分类数学模型。

三、准确率

准确率是两个用作评估结果展开分类数学模型的分项。通俗来说,准确率是指我们的数学模型预估正确的结果所占的比例。正式点说,准确率的定义如下:

机器学习算法中分类知识总结

对于相互依赖展开分类,也能根据正类型和负类型按如下方式计算准确率:

机器学习算法中分类知识总结

其中,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%。

在 roulette 游戏中,一只球会落在旋转轮上,并且最终落入 38 个槽的其中两个内。某一机器自学数学模型能使用视觉特征(球的旋转方式、球落下时旋转轮所在的位置、球在旋转轮上方的高度)预估球会落入别的槽中,准确率为 4%。

四、精确率和召回率

4.1 精确率

精确率分项尝试回答以下难题:在被辨识为正类型的样本中,确实为正类型的比例是多少?

精确率的定义如下:

机器学习算法中分类知识总结

⭐️ 特别注意:假如数学模型的预估结果中没有假正例,则数学模型的精确率为 1.0。

让我们来计算一下上一部分中用作分析肿瘤的机器自学数学模型的精确率:

机器学习算法中分类知识总结

机器学习算法中分类知识总结

该数学模型的精确率为 0.5,也就是说,该数学模型在预估恶性肿瘤方面的正确率是 50%。

4.2 召回率

召回率尝试回答以下难题:在所有正类型样本中,被正确辨识为正类型的比例是多少?

从数学上讲,召回率的定义如下:

机器学习算法中分类知识总结

⭐️ 特别注意:假如数学模型的预估结果中没有假负例,则数学模型的召回率为 1.0。

让我们来计算一下肿瘤展开分类器的召回率:

机器学习算法中分类知识总结

机器学习算法中分类知识总结

该数学模型的召回率是 0.11,也就是说,该数学模型能够正确辨识出所有恶性肿瘤的百分比是 11%。

4.3 精确率和召回率:一场拔河比赛

要全面评估结果数学模型的有效性,要同时检查精确率和召回率。遗憾的是,精确率和召回率常常是此消彼长的情况。也就是说,提高精确率通常会降低召回率值,反之亦然。请观察下图来了解这一概念,该图显示了电子邮件展开分类数学模型做出的 30 项预估。分类共振频率右侧的被归类为“流氓软件”,左侧的则被归类为“非流氓软件”。

机器学习算法中分类知识总结

图 1. 将电子邮件归类为流氓软件或非流氓软件

我们根据图 1 所示的结果来计算精确率和召回率值:

机器学习算法中分类知识总结

精确率指的是被记号为流氓软件的电子邮件中正确展开分类的电子邮件所占的百分比,即图 1 中共振频率线右侧的绿点所占的百分比:

机器学习算法中分类知识总结

召回率指的是实际流氓软件中正确展开分类的电子邮件所占的百分比,即图 1 中共振频率线右侧的绿点所占的百分比:

机器学习算法中分类知识总结

图 2 显示了提高展开分类阈值产生的效果。

机器学习算法中分类知识总结

图2. 提高展开分类共振频率

假正例数量会减少,但假负例数量会相应地增加。结果,精确率有所提高,而召回率则有所降低:

机器学习算法中分类知识总结

机器学习算法中分类知识总结

恰好相反,图 3 显示了降低展开分类共振频率(从图 1 中的初始位置开始)产生的效果。

机器学习算法中分类知识总结

图 3.降低展开分类共振频率

假正例数量会增加,而假负例数量会减少。结果这一次,精确率有所降低,而召回率则有所提高:

机器学习算法中分类知识总结

机器学习算法中分类知识总结

我们已根据精确率和召回率分项制定了各种分项。有关示例,请参阅 F1 值。

自学理解

让我们以一种将电子邮件分为“流氓软件”或“非流氓软件”这两种类型的展开分类数学模型为例。假如提高展开分类共振频率,精确率会怎样?

可能将会提高。

一定会提高。

一定会降低。

可能将会降低。

让我们以一种将电子邮件分为“流氓软件”或“非流氓软件”这两种类型的展开分类数学模型为例。假如提高展开分类共振频率,召回率会怎样?

仍旧下降或保持不变。

仍旧保持不变。

一定会提高。

以两个数学模型(A 和 B)为例,这两个数学模型分别对同一统计数据集展开评估结果。以下哪一项陈述属实?

假如数学模型 A 的精确率优于数学模型 B,则数学模型 A 更好。

假如数学模型 A 的精确率和召回率均优于数学模型 B,则数学模型 A 可能将更好。

假如数学模型 A 的召回率优于数学模型 B,则数学模型 A 更好。

五、ROC 和 AUC

5.1 ROC 曲线

ROC 曲线(接收者操作特征曲线)是一种显示展开分类数学模型在所有展开分类共振频率下的效果图表。该曲线绘制了以下两个模块:

真正例率

假正例率

真正例率 (TPR) 是召回率的同义词,因此定义如下:

机器学习算法中分类知识总结

假正例率(FPR) 的定义如下:

机器学习算法中分类知识总结

ROC 曲线用作绘制采用不同展开分类共振频率时的 TPR 与 FPR。降低展开分类共振频率会导致将更多样本归为正类型,从而增加假正例和真正例的个数。下图显示了两个典型的 ROC 曲线。

机器学习算法中分类知识总结

图 4. 不同展开分类共振频率下的 TP 率与 FP 率

为的是计算 ROC 曲线上的点,我们能使用不同的展开分类共振频率多次评估结果方法论重回数学模型,但这样做效率十分低。幸运的是,有一种基于排序的高效演算法能为我们提供此类信息,这种演算法称作曲线下面积。

5.2 曲线下面积:ROC 曲线下面积

曲线下面积则表示“ROC 曲线下面积”。也就是说,曲线下面积测量的是从 (0,0) 到 (1,1) 之间整个 ROC 曲线以下的整个二维面积(参考积分学)。

机器学习算法中分类知识总结

图 5. 曲线下面积(ROC 曲线下面积)

曲线下面积对所有可能将的展开分类共振频率的效果展开综合衡量。曲线下面积的一种解读方式是看作数学模型将某一随机正类型样本排列在某一随机负类型样本之上的机率。以下面的样本为例,方法论重回预估从左到右以升序排列:

机器学习算法中分类知识总结

图 6. 预估按方法论重回平均分以升序排列

曲线下面积则表示随机正类型(绿色)样本位于随机负类型(红色)样本右侧的机率。

曲线下面积的取值范围为 0-1。预估结果 100% 错误的模型的曲线下面积为 0.0;而预估结果 100% 正确的数学模型的曲线下面积为 1.0。

曲线下面积因以下两个原因而比较实用:

曲线下面积的尺度不变。它测量预估的排名情况,而不是测量其绝对值。

曲线下面积的展开分类阈值不变。它测量数学模型预估的质量,而不考虑所选的展开分类共振频率。

不过,这两个原因都有各自的局限性,这可能将会导致曲线下面积在某些用例中不太实用:

并非总是希望尺度不变。比如说,有时我们十分需要被良好校准的机率输入,而曲线下面积无法告诉我们这一结果。

并非总是希望展开分类共振频率不变。在假负例与假正例的代价存在较大差异的情况下,尽量减少一种类型的展开分类错误可能将至关重要。比如说,在展开流氓软件检测时,你可能将希望优先考虑尽量减少假正例(即使这会导致假负例大幅增加)。对于此类优化,曲线下面积并非两个实用的分项。

自学理解

以下哪条 ROC 曲线可产生大于 0.5 的 AUC 值?

机器学习算法中分类知识总结

机器学习算法中分类知识总结

机器学习算法中分类知识总结

机器学习算法中分类知识总结

机器学习算法中分类知识总结

将给定数学模型的所有预估结果都乘以 2.0(比如说,假如数学模型预测的结果为 0.4,我们将其乘以 2.0 得到 0.8),会使按 AUC 衡量的数学模型效果产生何种变化?

AUC 变得很差劲,因为预估值现在相差太大。

六、预估偏差

方法论重回预估应当无偏差。即:

机器学习算法中分类知识总结

预估偏差指的是这两个平均值之间的差值。即:

预估偏差=预估平均值−统计数据集中相应标签的平均值

⭐️ 特别注意:“预估偏差”与偏差(“wx + b”中的“b”)不是一回事。

假如出现十分高的非零预估偏差,则说明数学模型某处存在错误,因为这表明数学模型对正类型标签的出现频率预估有误。

比如说,假设我们知道,所有电子邮件中平均有 1% 的电子邮件是流氓软件。假如我们对某一封给定电子邮件一无所知,则预估它是流氓软件的可能将性为 1%。同样,两个出色的流氓软件数学模型应该预估到电子邮件平均有 1% 的可能将性是流氓软件。(换言之,假如我们计算单个电子邮件是流氓软件的预估可能将性的平均值,则结果应该是 1%。)然而,假如该数学模型预估电子邮件是流氓软件的平均可能将性为 20%,那么我们能得出结论,该数学模型出现了预估偏差。

造成预估偏差的可能将原因包括:

特征集不完整

数据集混乱

数学模型实现流水线中有错误

训练样本有偏差

正则化过强

你可能将会通过对自学数学模型展开后期处理来纠正预估偏差,即通过添加校准层来修正数学模型的输入,从而减小预估偏差。比如说,假如你的数学模型存在 3% 以上的偏差,则能添加两个校准层,将平均预估偏差降低 3%。但是,添加校准层并非良策,具体内容原因如下:

你修复的是症状,而不是原因。

你建立了两个更脆弱的系统,并且要持续更新。

使用校准层来修复数学模型的所有错误。

假如可能将的话,请避免添加校准层。使用校准层的项目常常会对其产生依赖

最终,维护校准层可能将会令人苦不堪言。

⭐️ 特别注意:出色数学模型的偏差通常接近于零。即便如此,预估偏差低并不能证明你的数学模型比较出色。特别差劲的数学模型的预估偏差也有可能将为零。比如说,只能预估所有样本平均值的数学模型是差劲的数学模型,尽管其预估偏差为零。

七、分桶偏差和预估偏差

方法论重回可预估 0 到 1 之间的值。不过,所有带标签样本都正好是 0(比如说,0 则表示“非垃圾电子邮件”)或 1(比如说,1 则表示“流氓软件”)。因此,在检查预估偏差时,你无法仅根据两个样本准确地确定预估偏差;你要在“一大桶”样本中检查预估偏差。也就是说,只有将足够的样本组合在一起以便能够比较预测值(比如说 0.392)与观察值(比如说 0.394),方法论重回的预估偏差才有意义。

你能通过以下方式构建桶:

以线性方式分解目标预估。

构建分位数。

请查看以下某一特定数学模型的校准曲线。每个点则表示包含 1000 个值的分桶。两个轴具有以下含义:

x 轴则表示数学模型针对该桶预估的平均值。

y 轴则表示该桶的统计数据集中的实际平均值。

两个轴均采用对数尺度。

机器学习算法中分类知识总结

图 7. 预估偏差曲线

为什么只有数学模型的某些部分所做的预估如此差劲?以下是几种可能将性:

训练集不能充分则表示统计数据空间的某些子集。

统计数据集的某些子集比其他子集更混乱。

该数学模型过于正则化。(不妨减小 lamdba的值。)

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务