00:00
继续上一次的内容,看到书上221页四考虑不确定性、混淆举证和分类报告为一组特定的预测提供了非常详细的分析,但是预测本身已经丢弃了,模型中包含了大量信息,正如我们在第二章中所讨论的那样。大多数分类器都提供了一个decision function predict global方法来评估预测的不确定度。预测可以被看作是以某个固定点作为点c function形或predict pro输出的阈值。在二分类问题中,我们使用零作为决策函数的阈值,0.5作为predict pro的预值。下面是一个不平衡二分类任务的示例,反类中有400个点,而正类中只有50个点。我们在这个数据上训练一个和FVR模型。
01:45
啊。
02:57
训练数据。
03:14
训练数据右侧的图像将决策函数绘制成了热图。你可以在图像偏上的位置。看到一个黑色圆圈。表示decision function的阈值刚好为零。在这个圆圈内的点将被划分为正类,圈外的点将被划分为反类。我们可以使用classification report函数来评估两个类别的准确率与召回率。
04:29
对于类别一,我们得到了一个相当低的准确率。而召回率。则令人糊涂。next由于类别零要大得多,所以分类器将重点放在将类别零分类正确而不是较小的类别一。假设我们在应用中,类别一具有高效回率更加重要。正如前面的癌症筛查例子那样,这意味着我们愿意冒险有更多的假真例,假的类别一也换取更多的真正例,可增大召回率。
05:08
SVC.predict生成的预测无法满足这个要求。但我们可以通过改变角色函数阈值不等于零来将预测重点放在使内给一的召回率更高。默认情况下,底c function值大于零的点将被划分为类别一。我们希望将更多的点划分到类别一,所以我们需要减小阈值。
06:12
我们来看一下这个预测的分类报告。正如所料,类别一的召回率增大,准确率减小。现在我们将更大的空间区域划为类别一。
07:03
正如这一幅图所示。如果你认为准确率比召回就更重要,或者反过来或者你的数据严重不平衡,那么改变决策阈值是得到更好结果的最简单方法。由于BC方形的取值可能在任意的范围,所以很难提供关于如何选取决策阈值的经验法则。如果你设置了阈值,那么要小心不要在测试题上这么做。与其他任何参数一样,在测试题上设置角色阈值可能会得到过于乐观的结果,可以使用验证题或者交叉验证来进行代替。对实现了predict pro方法的模型来说,选择阈值可能更简单。因为predict的输出固定在零到一的范围内,表示的是概率。默认情况下,0.5的阈值表示。如果模型已超过50%的概率确信一个点属于正类,那么就将其化为正类。增大这个阈值意味着模型需要更加确信才能做出正类的判断,较低的程度的确信就可以做出反位的判断。虽然使用概率可能比使用任意阈值更加的直观,但并非所有模型都提供了不确定性的实际模型。一颗生长到最大深度的决策树给随心处理,总是100%确信其判断,即使它很可能是错的。
08:41
这与校准calibration的概念相关。校准模型是指能够为其不确定性提供精确度。两个模型校准的详细讨论超出了本书的范围。
09:00
但你可以在predict good pro probabilities with supervis learning这篇文章中找到更多的内容。五准确率召回率曲线。如前所述,改变模型中用于做出分类决策的阈值是一种调节给定分类器的准确率和召回率之间折中的方法。你可能希望仅遗漏不到10%的正类样本,只希望召回率能达到90%。这些决策取决于应用,应该是由商业目标驱动的。一旦设定了一个具体目标,比如对某一类别的特定照顾率或准确率,就可以适当的设定一个阈值。总是可以设置一个阈值来满足特定的目标,比如90%的召回率。难点在于开发一个模型,在满足这个阈值的同时,人具有合理的准确率。如果你将所有样本都划分为正位,那么将会得到100%的召回率,单念的模型将毫无用处。
10:06
对分类器设置要求,比如90%的召回率,通常被称为设置工作点。Operating point在业务中,固定工作点通常有助于为客户或组织内的其他小组提供性能保证。在开发新模型时,通常并不完全清楚工作点在哪里。因此为了更好的理解建模问题,很有启发性的做法时同时查看所有可能的阈值或准确率和召回率的所有可能的折中。利用一种叫做准确率召回率曲线processing report的工具可以做到这一点。你可以在在论点magicx模块中找到计算数确实召回率曲线的函数,这个函数需要真实标签与预测的不确定度。预测的不确定度有function或。
12:06
Precision record code函数返回一个列表,包含按顺序排序的所有可能阈值,在决策函数中出现的所有值对应的准确率和召回率,这样我们就可以绘制一条曲线。
17:22
注意到这里有一个新的函数none派a minimum。能派遣a minimum,这是对应的函数原型。它是根据给定的轴返回数组中最小值对应的索引,把该运算记为啊,给命令运算参数A一个类似数组的对象输入数组。X整数可选参数默认是纳沿着哪一条轴?进行阿格内运算,默认找到。
18:03
所有元素最小值对应的索引,如果是A大于等于二位数组,该索引就是该数组展平之后对应的索引。其他情况沿着给定的轴进行运算就行了。曲直。总共有七个。只要注意第一个,第四个和第五个题。第一个输入数组A的为数,任意为X等于那。它是对数组中所有元素进行阿格内运算,反为一个数。也就是最小值对应的,所以。如果输入数组A的为数是二,为FX等于零,我就可以把A看成是一个由列向量构成的一个矩阵。对于这个列向量组中。每个列向量的所有分量进行啊,肯定运算找到当前列的最小值对应的行,所以。
19:04
设输入数组A的形状为M行列,返回一个长度为A的一为数组。如果输入数组A的为数是二,为X等于一,那么我就把A看成是一个由行向量组构成的一个矩阵,对这个行向量组中每个行向量的所有分量进行二格命内的运算,找到当前行的最小值对应的列索引。设输入数组A的形状为M行N列返回一个长度为M的一维数组。例。总共有三个例子。一个是默认情况,X等于呢?在这种情况下,结果怎么过来的?首先把A展平。然后看涨停之后的数组。A的最小值是多少?十对应的所以是零。所以返回值是零。
20:04
X等于零。看是由列向量组构成的一个矩阵。首先是第一个列限量十,13,最小值是十。对应的行索引是11 14。最小值是11对应的行,所以是零,12 15。最小值是12,对应的行索引是零。X等于一,看成行向量组构成的一个矩阵,第一个行向量十是一是二。最早的日时对应的列,所以零。13、14、15最小值13对应的列数零。Out。选择存放结果的输出数组,默认为,那如果提供一个数组,C形状必须和预期的输出数组是一致的,其元素类型必须都是整数例。
21:09
注意,如果一个数组中有多个最小值,返回第一个最小值对应的索引例子,十,11 12 13,十、15。最小值是十,可是对应的,所以有两个零。和四,但是我只返回第一个最小值对应的,所以也就是零。回到书上。这一幅图。曲线上的每一个点都对应解随性function的一个可能的阈值。例如,我们可以看到在准确率。
22:05
约为0.75的位置的召回率为0.4。黑色圆圈表示的是阈值为零的点。零是点c function的默认预知,这个点是在调用predict方法时所选择的折中点。曲线越靠近右上角的分类器越好。右上角的点表示对同一个阈值,准确率和召回率都很高。曲线从左上角开始,这里对应于非常低的阈值。将所有样本。都划分为正类。提高阈值可以让曲线向准确率更高的方向移动,但同时召回率却会降低,继续增大阈值。大多数被划分这类的点都是真正率,此时准确率很高,但召回率更低。随着准确率的升高,模型越能够保持较高的召回率。
23:09
则模型越好。进一步观察这一条曲线。我们可以发现,利用这个模型可以得到约0.5%的准确率,同时保持很高的召回率。如果我们想要更高的准确率,那么就必须牺牲很多召回率。换句话说,曲线左侧相对平坦,说明在准确率提高的同时,召回率没有下降很多。当准确率大于0.5之后,准确率每增加一点,都会导致召回率下降很多。不同的分类器可能在曲线上不同的位置及在不同的工作点表现很好。我们来比较一下在同一数据集上训练的SVM与随机生命random forest class five,没有decision function,只有predict pro。Preci函数的第二个参数应该是正类类别一的确定性度量,所以我们传数样本属于类别一的概率及RF.predict f test冒号逗号一。
24:13
二分类问题的predict默认阈值是0.5,所以我们在曲线上标出这个点。
30:08
从这张对比图中可以看出,随机森林在极之处。要求很高的召回率或很高的准确率的表现更好。在中间位置准确率约为0.7FVM的表现更好。如果我们只查看F1分数来自二者的总体性能,那么可能会遗漏这些细节。F1分数只反映了准确率、召回率曲线上的一个点及默认一值对应的那一个点。
32:06
比较这两条准确率召回率曲线可以为我们提供大量详细的动线,但这是一个相当麻烦的过程。对于自动化模型对比,我们可能希望总结曲线中包含的信息,而不是限于某个特定的阈值或工作点。总结准确率召回率曲线的一种方法是计算该曲线下的积分过铺面积。也叫做平均准确率。Average precision。准确率召回率曲线下的面积与平均准确率之间还有一些较小的计数区别,但这个解释表达的大致思路是对。也就是说,平均准确率是用来估算曲线下方的面积。而不可以精确的计算出来。
33:06
你可以使用average process score函数来计算平均准确率。因为我们要计算准确率、照顾率曲线,并考虑多个阈值,所以需要将average predict或传入decision function或predict的结果,而不是predict的结果。
35:08
在对所有可能的阈值进行平均时。我们看到随机森林和fvc的表现差不多。这与前面从F1过中得到的结果大为不同。因为平均准确率是从零到一的曲线下的面积,所以平均准确率总是返回一个在零到一零最差一最后之间的值随机分配。decision function的分类器的平均准确率是数据集中正立样本所占的比例。六受试者工作特征与a uoc还有一种常用的工具可以分析不同阈值的分类器行为。受试者工作特征receive operating character Co,简称为ROC曲线。ROC Co与准确率、照回率曲线类似。ROC曲线考虑了给定分类器的所有可能的阈值,但它显示的是讲正利率for positive rate f PR和真正利率true positive rate p PR,而不是报告准确率和召回率。回想一下,真正利率只是照顾率的另一个名称,而假正利率则是假正利。
36:30
所有样本的比例。公式,看到书上227页FSPR等于FB除以FP加上ta。你可以用ROC Co函数来计算ROC曲线。
39:49
对于ROC曲线,理想的曲线要靠近左上角。你希望分类器的召回率很高,同时保持甲正利率很低?
40:02
从曲线中可以看出,与默认预知零相比。我们可以得到明显更高的召回率。零。而spr仅稍有增加,最接近左上角的点可能是比默认选择更好的工作点。同样请注意,不应该在测试题上选择预知,而是应该在单独的验证上选择。下面给出水汽森林和SVM的ROC曲线对比。
45:10
与准确率、召回率曲线一样,我们通常希望使用一个数字来总结ROC曲线及曲线下的面积,通常被称为a UC area under the Co。这里的曲线指的就是rooc曲线,我们可以利用rooc AOC score函数来计算ROC曲线下方的面积。
47:19
利用auc分数来比较随机森林和svr,我们发现随机森林的表现是SV要略好一些。回想一下。由于平均准确率是从零到一的曲线下的面积,所以平均准确率总是返回一个零到一之间的值,零是最差,一是最好,随机预测得到的auc总是等于0.5。无论数据集中的类别多么不平衡,对于不平衡的分类问题来说,A uoc是一个比精度要好得多的指标,A uoc。被解释为评估正类样本的排名ran,它等待于从正类样本中随机挑选一个点。
48:08
由分类器给出的分数比从反类样本中随机挑选一个点的分数更高的概率。因此,Auc最高为一,就是说明所有正类点的分数高于所有的反类点。对于类别不平衡的分类问题,使用a uoc进行模型选择通常比使用精度更有意义。我们回到前面研究过的例子,将D数据集中的所有九与所有其他数据加以区分。我们将使用SVM对数据集进行分类,分别使用三种不同的内核宽度伽马设置。
51:57
嗯。
53:38
需要注意的是,书上229页图五杠17。与我这里得出的图不一样。但是如果用我这里得出的图。下字解释,对。看书上的图,以及书上的运行结果。
54:09
看到书上229页的那一幅图,以及它的运行结果。对三种不同的伽马设置,其精度是相同的,都等于90%。这可能与随机选择的性能相同,也可能不同。但是观察a uoc以及对应的曲线,我们可以看到三个模型之间有明显的区别,对于伽马等于1.0auc实际上处于随机水平及点c function的输出与随机结果一样好,对于伽马等于0.05。性能大幅提升至AC等于0.9,最后对于伽马等于0.01。我们得到等于1.0的完美的a uoc,就意味着根据决策函数。
55:00
所有正类点的排名要包括所有反类点。换句话说,利用正确的预知,这个模型可以对所有数据进行完美的分类。知道这一点,我们可以调节这个模型的阈值,并得到很好的预测结果。如果我们仅使用精度,那么将永远不会发现这一点。因此,我们强烈建议在不平衡数据上评估模型时使用auc。但请记住,Auc没有使用默认阈值。因此,为了从高的AC的模型中得到有用的分类结果,可能还需要调节一下决策阈值。
我来说两句