你的位置:首页 > 信息动态 > 新闻中心
信息动态
联系我们

周志华的西瓜书就是用来“啃”的

2021/11/4 7:53:54

前 言 : \textcolor{green}{前言:}
❤️目前正在学习周志华的机器学习,我是根据B站的视频来学习,讲的比较扣书本上的知识点。但是建议还是需要看书,书本上的内容是比较全的,但是也比较难,配合着来学习是个比较不错的选择。
❤️本章的学习是非常枯燥的,但也是基础,它的目的我在文章中也有提到,是使学得的模型能很好得使用于“新样本”。有人在这里就打了退堂鼓,建议先看后面来学,但是我的话希望能先把这里 啃 \textcolor{red}{啃} 下来,后面的内容就是用到什么学什么。
💢这本书上的知识那必须整起来,刚开始接触这个,确实让我有点脑袋发热,更何况让我去讲了。真正站上去的时候,尤其是回答问题,脑袋瓜子那简直是嗡嗡嗡。😤
💞同时希望我们可以一起学习,一个人的学习那必然是枯燥无味的,一起抱团才是王道~~~💞

机器学习之模型评估与选择

    • 二、模型评估与选择
      • 2.1 经验误差与过拟合
      • 2.2 评估方法
        • 2.2.1 留出法(hold-out)
        • 2.2.2 交叉验证法
        • 2.2.3 自助法
        • 2.2.4 验证集(调参与最终模型)
        • 2.2.5 总结
      • 2.3 性能度量
        • 2.3.1 错误率与精度
        • 2.3.2 查准率与查全率
        • 2.3.3 ROC与AUC
          • ROC曲线
          • AUC
        • 2.3.4 代价敏感错误率与代价曲线
      • 2.4 比较检验
        • 2.4.1 假设检验
      • 2.5 偏差与方差

机器学习的目标是使学得的模型能很好得使用于“新样本”。

二、模型评估与选择

目的:主要是要一种让自己做模型的一种思想。否则自己的思想会跟着所写之人的思想走。

在这里插入图片描述

2.1 经验误差与过拟合

m \textcolor{red}{m} m​个样本数量, Y \textcolor{red}{Y} Y​表示样本正确的结果,通过使用模型进行预测判断,得到结果 Y ′ \textcolor{red}{Y'} Y​。其中有 a \textcolor{red}{a} a​个错误

则“错误率”(error rate):E = a / m

"精度"(accuracy):1 - E  (精度通常写成%)

“误差”(error):|Y - Y'|

学习器在训练集上的误差称为“训练误差”(training error)或“经验误差”(empirical error);

在新样本上的误差称为“泛化误差”(generalizationerror);

关于过拟合(overfitting)和欠拟合(underfitting)

最希望的是从训练样本中进可能的学出适用于所有潜在样本的“普遍规律”,以达到拿到新的样本可以做出正确的判别。

当学习能力太强,导致把样本本身的特性(不太一般的特性)成为了一般性质,这就导致了泛化性能下降,这就是Overfitting,反之,连一般的特性都没学习到,这就成为了Underfitting。要知道Overfitting是无法彻底避免的,只能缓解;而Underfitting是比较容易克服的。

2.2 评估方法

泛化能力:模型对没有见过的数据的预测能力;(训练集和测试集)

训练集(trainning set)

测试集的保留方法(testing set):留出法;交叉验证法;自助法

验证集(validation set)

2.2.1 留出法(hold-out)

holid-out:直接将数据集D划分为两个互斥的集合,其中一个集合作为训练集S,另一个作为测试集T。即 D = S ∪ T, S ∩ T = Φ 。

三七分

比如D含有1000个样本,划分S有700,T有300。若T有90个错误,那错误率(90/300)*100%=30%,精度为70%。

分层采样(stratified sampling)

比如D含有1000个样本,其中包含500个正例,500个反例。通过分层采样获得70%训练集,30%测试集,那么在S中应该包含350个正例+350个反例。T中150+150。

注意:

  1. 不同的划分会导致不同的训练/测试集,模型评估结果会有差别;
  2. 单词留出法得到的结果不稳定可靠,一般会多次随机划分、重复实验取平均值。

窘境

训练集大,测试集小–>模型更加接近于D训练出的模型–>评估结果不稳定准确(方差较大)

训练集小,测试集大–>S与D训练出的模型差别更大–>降低了评估结果的保真性(fidelity)(偏差较大)

2.2.2 交叉验证法

交叉验证法(cross validation)先将数据集D划分为k个大小相似的互斥子集 D = D 1 ∪ D 2 ∪ . . . ∪ D k D = D_1 ∪ D_2 ∪...∪D_k D=D1D2...Dk D i ∩ D j = Φ D_i ∩ D_j = Φ DiDj=Φ。每个子集 D i D_i Di都尽可能保持数据分布的一致性,即从D中分层采样得到。每次用k - 1个子集的并集作为训练集,剩下的一个子集作为测试集,得到k组训练/测试集,进行k次训练和测试,最终返回k个测试结果的均值。又称为”k折交叉验证法“(k-fold cross validation)。

在这里插入图片描述

注意:10次10折交叉验证与100次留出法都是进行了100次训练/测试

留一法(Leave-One-Out,简称LOO)

若数据集D中有m个样本,令k = m时,就得到了一种特例,m种样本划分m个子集(每个子集种含有一个样本);

留一法的评估结果被认为时比较准确的是因为,留一法使用的训练集与初始数据集相比只少了一个样本,这就使得被实际评估的模型与期望评估的用D训练出的模型很相似。

缺点

数据量较大时,计算开销时非常大的。

2.2.3 自助法

“自助法”(bootstrapping)是一个比较好的解决方案,它直接以自助采样法(bootstrap sampling)为基础 [Efron and Tibshirani,1993]。给定包含m个样本的数据集D,我们对它进行采样产生数据集D’:每次随机从D中挑选一个样本,将其拷贝放入D’,然后再将该样本放回初始数据集D中,使得该样本在下次采样时仍有可能被采到;这个过程重复执行m次后,我们就得到了包含m个样本的数据集D’,这就是自助采样的结果。显然,D中有一部分样本会在D’中多次出现,而另一部分样本不出现。可以做一个简单的估计,样本在m次采样中始终不被采到的概率是 ( 1 − 1 m ) m (1 - \frac{1}{m}) ^ m (1m1)m​​,取极限得到

lim ⁡ m → + ∞ ( 1 − 1 m ) m − > 1 e ≈ 0.368 \lim_{m\rightarrow+\infty}(1 - \frac{1}{m})^ m -> \frac{1}{e} ≈0.368 m+lim(1m1)m>e10.368

就是说通过自助采样,初始数据集D种约有36.8%的样本未出现在采样数据集D’中。最终将D’用作训练集,D\D’为测试集。这样的测试结果叫**”包外测试“**(out-of-bag estimate)

优势与缺点

优点:数据集较小、难以有效划分训练/测试集时很有效;能从初始数据集中产生多个不同的训练集,有利于集成学习(第八章)等方法。

缺点:改变了初始数据集的分布,引入估计偏差。

估计误差,是指数据处理过程中对误差的估计,有多种统计表示方式。在统计学中,估计误差是此估计量的期望值与估计参数的真值之差。误差为零的估计量或决策规则称为无偏的。否则该估计量是有偏的。在统计中,“误差”是一个函数的客观陈述。

Example:
比如一组数字{1,2,3,4,5,6,7,8,9,10}。我们从中选择一个数字总共10个位一组采样{2,6,3,5,…},在这组数字中有那么几个数字是没有,那么就把他定为测试集,余下的为训练集。

2.2.4 验证集(调参与最终模型)

​ 大多数的学习算法都有参数(parameter)需要设定,参数配置不同,学得模型的性能上有显著差别,因此在进行模型评估与选择时,要对适用学习算法进行选择,还需要虽参数进行设定。这就是”参数调节“或”调参“(parameter tuning)

Example:
三个参数,每个参数5个候选值。对于一个训练/测试集就有 5 3 = 125 5^3 = 125 53=125​个模型要考察。​​

注意:通常把学得模型在实际使用中遇到的数据称为测试数据,为了加以区分,模型评估与选择中用于评估测试的数据集称为”验证集“(validation set)

整体的一个过程:

现在训练集上训练–>验证集上去验–>得到结果–>去调参–>再去训练集上训–>…–>得到的结果是ok了–>最终去测试集上测

这里是一个重点,调参我们要去调到适合我们的模型的参数,需要大量的实验要进行找到最适合的。不可能说你做了一次就说这个最好,你说信我都不会信,这需要去证明。

2.2.5 总结

要知道在什么时候去用什么方法。

2.3 性能度量

性能度量(performance measure)衡量模型泛化能力的评价标准。

**描述:**在预测任务中,给定样例集 D = ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x i , y i ) D = {(x_1,y_1),(x_2,y_2),...,(x_i,y_i)} D=(x1,y1),(x2,y2),...,(xi,yi)。其中 y i y_i yi​​​是示例 x i x_i xi的真实标记,要评估学习器f的性能,就要把学习器预测结果 f ( x ) f(x) f(x)与真实标记 y i y_i yi进行比较。

均方误差(mean squared error)

回归任务最常用的性能度量是“均方误差”
E ( f ; D ) = 1 m ∑ i = 1 m ( f ( x i ) − y i ) 2 E(f;D) = \frac{1}{m}\sum_{i=1}^{m}(f(x_i) - y_i)^2 E(f;D)=m1i=1m(f(xi)yi)2
更一般的,对于数据分布 D D D和概率密度函数 p ( • ) p(•) p()​,均方误差可描述为
E ( f ; D ) = ∫ x ~ D x ( f ( x i ) − y i ) 2 p ( x ) d ( x ) E(f;D) = \int_{x~D}{x}(f(x_i) - y_i)^2p(x)d(x) E(f;D)=xDx(f(xi)yi)2p(x)d(x)
在这里插入图片描述

2.3.1 错误率与精度

是分类任务中最常用的两种性能度量,既适用于二分类任务,也适用于多分类任务

error rate是分类错误的样本数占样本总数的比例
E ( f ; D ) = 1 m ∑ i = 1 m Ⅱ ( f ( x i ) ≠ y i ) E(f;D) = \frac{1}{m}\sum_{i=1}^{m}Ⅱ(f(x_i) ≠ y_i) E(f;D)=m1i=1m(f(xi)=yi)
accuracy是分类正确的样本数占样本总数的比例
a c c ( f ; D ) = 1 m ∑ i = 1 m Ⅱ ( f ( x i ) = y i ) = 1 − E ( f ; D ) acc(f;D) = \frac{1}{m}\sum_{i=1}^{m}Ⅱ(f(x_i) = y_i) = 1 - E(f;D) acc(f;D)=m1i=1m(f(xi)=yi)=1E(f;D)
更一般的,对于数据分布 D D D和概率密度函数 p ( • ) p(•) p()​,error rate和accuracy可描述为
E ( f ; D ) = ∫ x ~ D Ⅱ ( f ( x ) ≠ y ) p ( x ) d x E(f;D) = \int_{x~D}Ⅱ(f(x) ≠ y)p(x)dx E(f;D)=xD(f(x)=y)p(x)dx

E ( f ; D ) = ∫ x ~ D Ⅱ ( f ( x ) = y ) p ( x ) d x = 1 − E ( f ; D ) E(f;D) = \int_{x~D}Ⅱ(f(x) = y)p(x)dx = 1 - E(f;D) E(f;D)=xD(f(x)=y)p(x)dx=1E(f;D)

比较方式:精度越高,性能越好;错误率越低,性能越好。

2.3.2 查准率与查全率

查准率(precision)与查全率(recall),真正例(true positive),假正例(false position),真反例(true negative),假反例(false negative)

以二分类为例:

预测情况和实际情况的所有情况两两混合,组成混淆矩阵。下图为“混淆矩阵”(confusion matrix)

在这里插入图片描述

precision:是针对预测结果而言的,是在所有被预测为正的样本中实际为正的样本的概率。(预测的里面有多少个是对的) P = T P T P + F P P = \frac{TP}{TP + FP} P=TP+FPTP​​​

reacll: 是针对原样本而言的,是在实际为正的样本中被预测为正样本的概率。 R = T P T P + F N R = \frac{TP}{TP + FN} R=TP+FNTP

查准率和查全率是一对矛盾的度量,查准率高时,查重率往往偏低;而查全率高时,查准率往往偏低

这 里 有 个 特 别 有 意 思 的 事 情 : \textcolor{red}{这里有个特别有意思的事情:}

我在组会上汇报的时候,老师让我用实际例子解释一下这个 P P P R R R,它们在什么地方使用;你先回答一下,身份确认和身份识别它的意思是什么?

用很通俗的话来说:身份确认是确认你是你,身份识别是识别出你是谁。怎么样,很通俗吧。反正我当时一愣是没听懂。

再举几个例子:疑罪从无,宁可错杀一千也不让过一个。这个例子中查准率和查全率是?

还有一个是关于病人的,查准率是什么?根据公式我们可以知道它是有多少查出来有病的,它确实有病。那查全率是什么,它是有多少有病的被查出来。

怎 么 样 ? 懂 这 个 意 思 了 吗 ? \textcolor{blue}{怎么样?懂这个意思了吗?}
别问我,我当时在上面愣是站了好长时间,脑袋瓜子嗡嗡的。(现在是懂了)

关于这两个它到底选择哪个为好,这就要根据实际情况来进行了。有时候并不是找它的BEP(平衡点),有时是为了查准率高一下,相应的查全率就会低。所以在做实验的过程中要去找哪个更适合。

P-R图

在这里插入图片描述

以查准率为纵轴,查全率为横轴,绘制P-R曲线。可以直观的显示学习器在样本总体上的查全率、查准率。

在进行比较时,若一个学习器的P-R曲线被别一个学习器的曲线完全”包住”,则可断言后者的性能优于前者。

  • 首先可以确定B和A优于C,BA之间由于交叉无法确定
  • 对于BA,可以采用下面的三种方法进行比较
    • No.1:比较AB面积的大小,在一定程度上表明了模型的优劣,但是不容易估算
    • No.1: F 1 F1 F1
    • No.3: F β F_\beta Fβ

最优阈值的确定:BEP,F1度量, F β F_β Fβ

BEP(Break-Even Point):即”平衡点”,它是“查准率=查全率”时的取值。BEP越大,性能越好。

**F1度量:**基于查准率和查全率的调和平均(harmonic mean)。值越大性能越好
F 1 = 2 × P × R P + R = 2 × T P 样 例 总 数 + T P − T N = 1 1 2 ( 1 P + 1 R ) = 2 T P T P + F P + T P + F N F1 = \frac{2×P×R}{P+R} = \frac{2×TP}{样例总数+TP-TN}=\frac{1}{\frac{1}{2}(\frac{1}{P} + \frac{1}{R})} = \frac{2TP}{TP+FP+TP+FN} F1=P+R2×P×R=+TPTN2×TP=21(P1+R1)1=TP+FP+TP+FN2TP
F β F_β Fβ​:F1度量的一般形式,能让我们表达出对查准率/查全率的不同偏好,这是加权调和平均

F β = ( 1 + β 2 ) × P × R ( β 2 × P ) + R = 1 1 1 + β 2 ( 1 p + β 2 R ) F_β = \frac{(1+ β^2)×P×R}{(β^2×P)+R} =\frac{1}{ \frac{1}{1+ β^2}(\frac{1}{p} + \frac{β^2}{R})} Fβ=(β2×P)+R(1+β2)×P×R=1+β21(p1+Rβ2)1
β>0度量了查全率对查准率的相对重要性,β=1时退化为标准的F1;β>1时查全率有更大影响;β<1时查准率有更大的影响。

多分类

可以采用的方法:直接就有多种分类;采用多种二分类

n个二分类实现的多分类问题:

  1. 先分别计算,再求平均值

    • 先再混淆矩阵上分别求除查准率和查全率,记为 ( P 1 , R 1 ) , ( P 2 , R 2 ) , . . . , ( P n , R n ) (P_1,R_1),(P_2,R_2),...,(P_n,R_n) (P1,R1),(P2,R2),...,(Pn,Rn)​,再求平均值。得到“宏查准率”(macro_P)、“宏查全率”(macro-R)、“宏F1”(macro-F1)

    • m a c r o − P = 1 n ∑ i = 1 n P i macro-P = \frac{1}{n}\sum_{i=1}^{n}P_i macroP=n1i=1nPi

      m a c r o − R = 1 n ∑ i = 1 n R i macro-R = \frac{1}{n}\sum_{i=1}^{n}R_i macroR=n1i=1nRi

      m a c r o − F 1 = 2 × m a c r o − P × m a c r o − R m a c r o − P + m a c r o − R macro-F1 = \frac{2×macro-P×macro-R}{macro-P+macro-R} macroF1=macroP+macroR2×macroP×macroR

  2. 先平均再计算

    • 先将各混淆矩阵的对应元素进行平均,得到 T P ‾ \overline{TP} TP​​、 F P ‾ \overline{FP} FP​​、 T N ‾ \overline{TN} TN​​、 F N ‾ \overline{FN} FN​​​​​,再求出“微查准率”(micro-P),“微查全率”(micro-R),”微F1“(micro-F1)

    • m i c r o − P = T P ‾ T P ‾ + F P ‾ micro-P = \frac{\overline{TP}}{\overline{TP}+\overline{FP}} microP=TP+FPTP

    • m i c r o − R = T P ‾ T P ‾ + F N ‾ micro-R = \frac{\overline{TP}}{\overline{TP}+\overline{FN}} microR=TP+FNTP

    • m i c r o − F 1 = 2 × m i c r o − P × m i c r o − R m i c r o − P + m i c r o − R micro-F1 = \frac{2×micro-P×micro-R}{micro-P+micro-R} microF1=microP+microR2×microP×microR

上述是一种训练集上的一种算法,用什么样的指标评估好坏

2.3.3 ROC与AUC

接下来是一种训练集上多种算法:(不同算法之间比较应该怎么做)

P-R曲线在2.3.2中展示

很多学习器是为了测试样本产生一个实值或概率预测,然后将这个预测值与一个分类阈值进行比较,若大于阈值则为正例,否则为反例

eg:比如1-10,我定5为阈值,那么大于5的为正类,余下的为反类

ROC曲线

​ ROC全称”受试者工作特征“(Receiver Operating Characteristic)曲线。根据学习器的预测结果对样例进行排序,按此顺序逐个把样本作为正例进行预测,每次计算出两个重要量的值,分别以它们为横、纵坐标,得到ROC曲线。

​ 这个实值或概率预测结果的好坏,决定了学习器的泛化能力。

纵轴是”真正例率“(TruePositive Rate,简称TPR):预测的真正例数和实际的正例数比值,有多少真正的正例预测准确;

横轴是”假正例率“(False Positive Rate,简称FPR):预测的假正例数和实际的反例数比值,有多少反例被预测为正例;

理想情况下,TPR接近1,FPR接近0
T P R = T P T P + F N TPR=\frac{TP}{TP+FN} TPR=TP+FNTP

F P R = F P T N + F P FPR=\frac{FP}{TN + FP} FPR=TN+FPFP

AUC(Area Under ROC Curve):ROC曲线下的面积

在这里插入图片描述

我们想的好的情况是真正例率增长的快就越好,好的越好(即在上图实线的上方再来一条线)

AUC

AUC(Area Under ROC Curve):ROC曲线下的面积

假定ROC曲线是由坐标为 ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) , {(x_1,y_1),(x_2,y_2),...,(x_m,y_m),} (x1,y1),(x2,y2),...,(xm,ym),的点按序连接而形成 ( x 1 = 0 , x m = 1 ) (x_1=0,x_m=1) (x1=0,xm=1)​则可以形成下图​​​

在这里插入图片描述

则AUC可估算为:
A U C = 1 m ∑ i = 1 m − 1 ( x i + 1 − x i ) ( y i + y i + 1 ) AUC=\frac{1}{m}\sum_{i=1}^{m-1}(x_{i+1}-x_i)(y_i+y_{i+1}) AUC=m1i=1m1(xi+1xi)(yi+yi+1)
​ 形式化的看,AUC考虑的是样本预测的排序质量,因此它与排序误差有紧密联系,给定 m + m^+ m+​个正例和 m − m^- m​个反例,令 D + D^+ D+​和 D − D^- D​分别表示正、反例集合,则排序“损失”(lose)定义为:
l r a n k = 1 m + m − ∑ x + ∈ D + ∑ x − ∈ D − ( Ⅱ ( f ( x + ) < f ( x − ) ) + 1 2 Ⅱ ( f ( x + ) = f ( x − ) ) ) l_{rank} = \frac{1}{m^+m^-}\sum_{x^+∈D^+}\sum_{x^-∈D^-}(Ⅱ(f(x^+)<f(x^-))+\frac{1}{2}Ⅱ(f(x^+)=f(x^-))) lrank=m+m1x+D+xD((f(x+)<f(x))+21(f(x+)=f(x)))
我们可以看到 l r a n k l_{rank} lrank对应的是ROC曲线之上的面积,若一个正例在ROC曲线上对应标记点的坐标为 ( x , y ) (x,y) (x,y),则x是排序在其之前的反例所占的比例,即假正比例率,
A U C = 1 − l r a n k AUC=1-l_{rank} AUC=1lrank
在这里插入图片描述

面 积 越 大 越 好 \textcolor{red}{面积越大越好}

2.3.4 代价敏感错误率与代价曲线

在这里插入图片描述

以二分类任务为例,设定一个“代价矩阵”(cost matrix),其中 c o s t i j cost_{ij} costij​​表示将第 i i i​​类样本预测为第 j j j​​类样本的代价。一般来说, c o s t i j = 0 cost_{ij} = 0 costij=0​​​;若将第0类判别为第1类所造成损失更大,则 c o s t 01 > c o s t 10 cost_{01}>cost_{10} cost01>cost10​​;损失相差越大,则两值得差别越大。

之前的错误率是直接计算错误的次数,并没有考虑从不同错误会导致不同的后果。

在非等代价下,我们所希望的不再是简单地最小化错误次数,而是希望最小化“总体代价”(total cost)。

上图中,若我们把第0类作为正类,第1类作为反类, D + D^+ D+​为D的正例子集, D − D^- D​为D的反例子集,则可以得到如下代价敏感错误率的公式:
E ( f ; D ; c o s t ) = 1 m ( ∑ x i ∈ D + Ⅱ ( f ( x i ) ≠ y i × c o s t 01 ) + ∑ x i ∈ D − Ⅱ ( f ( x i ) ≠ y i × c o s t 10 ) ) E(f;D;cost) = \frac{1}{m}(\sum_{x_i∈D^+}Ⅱ(f(x_i) ≠ y_i×cost_{01})+\sum_{x_i∈D^-}Ⅱ(f(x_i) ≠ y_i×cost_{10})) E(f;D;cost)=m1(xiD+(f(xi)=yi×cost01)+xiD(f(xi)=yi×cost10))

即得到的结果和真实的结果不一致的情况。

代价曲线

在这里插入图片描述

  1. 明确参数

    p = m + /m

  2. 代价曲线基本思路

    • 目的:对于一个模型,根据p不同,找到使得代价总期望最小的模型的阈值

    • 横轴:归一化的整改率代价期望
      P ( + ) c o s t = p × c o s t 01 p × c o s t 01 + ( 1 − p ) × c o s t 10 P(+)cost=\frac{p×cost_{01}}{p×cost_{01}+(1-p)×cost_{10}} P(+)cost=p×cost01+(1p)×cost10p×cost01

    • 纵轴:归一化的总代价期望
      c o s t n o r m = F N R × p × c o s t 01 + F P R × ( 1 − p ) × c o s t 10 p × c o s t 01 + ( 1 − p ) × c o s t 10 cost_{norm}=\frac{FNR×p×cost_{01}+FPR×(1-p)×cost_{10}}{p×cost_{01}+(1-p)×cost_{10}} costnorm=p×cost01+(1p)×cost10FNR×p×cost01+FPR×(1p)×cost10
      这里的 F N R = F N / ( T P + F N ) FNR=FN/(TP+FN) FNR=FN/(TP+FN)​​, F P R = F P / ( F P + T N ) FPR=FP/(FP+TN) FPR=FP/(FP+TN)

    • FNR:假负例率,即真实为正,测试为负的概率,FNR = 1 - TPR;

      FPR:假正例率,即真实为负,测试为正的概率。

      因为期望损失代价是由正例先验概率和混淆矩阵确定的,

      当ROC曲线的阈值确定,则FPR和FNR也是确定的,

      所以代价曲线是一条直线,且不同的代价对应不同的阈值

    • 大致过程:

      给定P,给定模型->根据归一化代价期望的最小值->确定圈1,2,3,4的比例->之前例子可以看出阈值确定了这个比例,反过来说,这个比例确定了,阈值也就确定了,所以该模型的阈值也对应确定下来,也正是模型固定下来了。–>模型的综合考量指标P,R,F1, F β F_β Fβ,等都确定了

  3. 绘制

    ROC曲线上的每一点对应了代价平面上的一条线段,设ROC曲线上的点的坐标为(FPR,TPR),则可相应计算出FNR,然后再大家平面上绘制一条从(0,FPR)到(1,FNR)的线段,线段下的面积即表示了该条件下的期望总代价;如此将ROC曲线上的每个点转化为代价平面上的一条线段,然后取所有线段的下界,围成的面积即为在所有条件下学习器的期望总体代价。

2.4 比较检验

选择合适的评估方法和相应的性能度量,计算出性能度量后直接比较,这样的比较方式存在以下问题:

  • 测试集上的性能与真正的泛化性能未必相同
  • 测试集不同反映出来的性能不同
  • 机器学习算法本身有一定的随机性,同一个测试集上多次运行,可能会有不同的结果

学习需要一定的概率论基础, 可以看一下课程概率论与数理统计【合集】【小元老师】这个课程是从考研的角度进行的,但是我们需要的是这个概率论的知识在工程角度上该怎么应用。

工程数学和概率论是非常重要的,好多数学在这里运用到,以后也会运用的。(PS:学完第二章,就麻溜的看概率论,昨天在图书馆借了一本概率论的书)

不同的测试集不同的算法采用的检验不同:

  • 一种测试集一种算法:二项检验
  • 多个测试集一种算法:2.4.1 t检验
  • 多个测试集两种算法:2.4.2 交叉验证t检验
  • 一个测试集两种算法:2.4.3 McNemar检验
  • 多个测试集多种算法:2.4.4 Friedman检验和Nemenyi后续检验

常用的离散型随机变量

  1. 0-1分布

    若随机变量X只有两个可能的取值0和1,其概率分布为
    P ( X = x i ) = p x i ( 1 − p ) 1 − x i , x i = 0 , 1 P(X = x_i) = p ^ {x_i}(1-p)^{1-{x_i}},x_i=0,1 P(X=xi)=pxi(1p)1xi,xi=0,1
    则称X服从0-1分布

  2. 二项分布 B=(n,p)

    设事件A在任意一次实验中出现的概率都是P(0<p<1)。X表示n重伯努利试验中事件A发生的次数,则X所有可能的取值为0,1,2,…,n,且相应的该概率为
    P ( X = k ) = C n k P k ( 1 − p ) n − k , k = 0 , 1 , 2 , . . . , n P(X=k)=C^k_nP^k(1-p)^{n-k},k=0,1,2,...,n P(X=k)=CnkPk(1p)nk,k=0,1,2,...,n

2.4.1 假设检验

泛化错误率为ε ,测试错误率为 ϵ ^ \widehat{\epsilon} ϵ ​,共有m个样本。

泛化错误率为 ϵ \epsilon ϵ的学习器在一个样本上犯错的概率是 ϵ \epsilon ϵ;测试错误率 ϵ ^ \widehat{\epsilon} ϵ 意味着在m个测试样本中恰有 ϵ ^ × m \widehat{\epsilon}×m ϵ ×m​​个被误分类。

可得泛化错误率为ε的学习器被测得测试错误率为ε^的概率

在这里插入图片描述

P在 ϵ = ϵ ^ \epsilon =\widehat{\epsilon} ϵ=ϵ ​时最大, ∣ ϵ − ϵ ^ ∣ |\epsilon -\widehat{\epsilon}| ϵϵ ​​增大时P减小,这符合二项分布。
在这里插入图片描述

假设: ϵ < = ϵ 0 \epsilon <=\epsilon_0 ϵ<=ϵ0。显著度为:α。置信度为:1- α

在 1- α的概率内能观测到的最大错误率:

在这里插入图片描述

此时若测试错误率小于临界值,则可得结论:在α的显著度下,假设 ϵ < = ϵ 0 \epsilon <=\epsilon_0 ϵ<=ϵ0​不能被拒绝,即能以1- α的置信度认为,学习器的泛化错误率不大于 ϵ 0 \epsilon_0 ϵ0​。否则可被拒绝。

T检验

​ 在很多时候我们并非仅做一次留出法估计,而是通过多次重复留出法或是交叉验证法等进行多次训练/测试,这样会得到多个测试错误率,此时我们可使用“t检验”(t-test)。加黑色我们得到了k个测试错误率, ϵ 1 ^ \widehat{\epsilon_1} ϵ1 ϵ 2 ^ \widehat{\epsilon_2} ϵ2 ,…, ϵ k ^ \widehat{\epsilon_k} ϵk ,则平均测试错误率 μ \mu μ,和方差 σ \sigma σ​。
μ = 1 k ∑ i = 1 k ϵ i ^ \mu=\frac{1}{k}\sum_{i=1}^{k}\widehat{\epsilon_i} μ=k1i=1kϵi

σ 2 = 1 k − 1 ∑ i = 1 k ( ϵ i ^ − μ ) 2 \sigma^2=\frac{1}{k-1}\sum_{i=1}^{k}(\widehat{\epsilon_i}-\mu)^2 σ2=k11i=1k(ϵi μ)2

考虑这k个测试错误率可以看作泛化错误率 ϵ 0 \epsilon_0 ϵ0d的独立采样,则变量
τ t = k ( μ − ϵ 0 ) σ \tau_t=\frac{\sqrt{k}(\mu-\epsilon_0)}{\sigma} τt=σk (μϵ0)
服从自由度为k-1的t分布,如图:

在这里插入图片描述

关于其他的比较检验,这里暂不说明了,因为我学的也不是很到位,后面几个用到的也比较少,所以如果有大佬们有想法,欢迎私信交流。

2.5 偏差与方差

bias-偏差

variance-方差

preview

理解这个图就非常的nice了。

离红圈近,或者是分散开但是中心点还是在红色圈内,此时偏差较小。

分的很散,中心点也不在红圈内,方差很大。

那为什么训练的越好,方差和偏差都会很大呢?可以这样理解,训练的越好红圈会变得越来越小,此时之前的数据集就会远离。