模型评估与拟合

1. 模型评估与选择

sklearn手册

1.1. 经验误差与过拟合

  • 错误率:分类错误的样本占样本总数的比例(m
    个样本中的a个样本分类错误,则错误率 E = a / m E=a/m E=a/m)

  • 精度: 1 − a / m 1-a/m 1a/m,即精度=1-错误率

  • 误差(期望):学习器的实际预测输出与样本的真是输出之间的差异

    • 训练(经验)误差:训练集上
    • 测试误差:测试集
    • 泛化误差:除训练集外所有样本
  • 过拟合(不可避免):学习器把训练样本本身特点当做所有潜在样本都会具有的一般性质,导致泛化性能降低(学习能力过于强大)

    • 优化目标加正则项
    • early stop

    不可能避免的原因
    20200412173258

  • 欠拟合:训练样本的一般性质尚未被学习器学好(学习能力底下)

    • 决策树:拓展分支
    • 神经网络:增加训练轮数

1.2. 评估方法

  • 评估考虑的主要因素:
    现实任务中往往会对学习器的泛化性能、时间开销、存储开销、可解释性等方面的因素进行评估并做出选择

  • 评估样本选取原则:
    我们假设测试集是从样本真实分布中独立采样获得,将测试集上的“测试误差”作为泛化误差的近似,所以测试集要和训练集中的样本互斥。

  • 单一数集分类方法
    包含 m m m个样例的数据集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , … , ( x m , y m ) } D=\{(x_1,y_1),(x_2,y_2),\ldots , (x_m,y_m)\} D={(x1,y1),(x2,y2),,(xm,ym)}

    • 留出去(hold-out)
      • 直接将数据集划分为两个互斥集合,训练集 S S S和测试集 T T T,即 D = S ∪ T , S ∩ T = ∅ D=S \cup T, S \cap T=\varnothing D=ST,ST=
      • S S S上训练,在 T T T上来评估其测试误差,作为对泛化误差的估计
      • 训练/测试集划分要尽可能保持数据分布的一致性
      • 一般若干次随机划分、重复实验取平均值
      • 训练/测试样本比例通常为2:1至4:1
    • 交叉验证法(cross validation, k k k折交叉验证,k-foad)
      • 将数据集分层采样划分为 k k k个大小相似的互斥子集,每次用 k − 1 k-1 k1个子集的并集作为训练集,余下的子集作为测试集,最终返回 k k k个测试结果的均值, k k k最常用的取值是10. D = D 1 ∪ D 2 ∪ … ∪ D k , D i ∩ D j = ∅ ( i ≠ j ) D=D_{1} \cup D_{2} \cup \ldots \cup D_{k}, D_{i} \cap D_{j}=\varnothing(i \neq j) D=D1D2Dk,DiDj=(i=j)
        10折交叉验证示意图
      • 交叉验证法评估结果的稳定性和保真性在很大程度上取决于 k k k的取值
      • 与留出法类似,将数据集D划分为k个子集同样存在多种划分方式,为了减小因样本划分不同而引入的差别, k k k折交叉验证通常随机使用不同的划分重复 p p p次,最终的评估结果是这 p p p k k k折交叉验证结果的均值,例如常见的“10次10折交叉验证”
      • 假设数据集 D D D包含 m m m个样本,若令 k = m k=m k=m,则得到留一法(leave-one-out):
        • 不受随机样本划分方式的影响
        • 结果往往比较准确
        • 当数据集比较大时,计算开销难以忍受
    • 自助法(bootstrapping,包外估计)
      以自助采样法为基础,对数据集 D D D有放回采样 m m m次得到训练集 D ′ D\prime D, D \ D ′ D \backslash D\prime D\D用做测试集。
      • 实际模型与预期模型都使用m个训练样本
      • 约有1/3的样本没在训练集中出现

        m m 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 \infin}(1-\frac{1}{m})^m = \frac{1}{e}\approx 0.368 mlim(1m1)m=e10.368
        20200408233905

      • 优缺点
        • 数据集较小、难以有效划分训练/测试集时很有用
        • 能从初始数据集中产生多个不同的训练集,对于集成学习等方法有很大的好处
        • 改变了初始数据集的分布,会引入估计偏差。在数据量足够时,留出法和交叉验证法更常用。
  • 调参与最终模型

    • 最终模型
      给定包含 m m m个样本的数据集 D D D,在模型评估与选择过程中由于需要留出一部分数据进行评估测试,事实上我们只使用了一部分数据训练模型.因此,在模型选择完成后,学习算法和参数配置已选定,此时应该用数据集 D D D重新训练模型.这个模型在训练过程中使用了所有m个样本,这才是我们最终提交给用户的模型.
    • 调参
      • 大多数机器学习模型有参数,不同参数的模型性能不同,需要调参
      • 调参的遍历成本太高,有时需要折中
      • 验证集(validation set):从训练数据中划分

    用测试集上的判别效果来估计模型在实际使用时的泛化能力,而把训练数据另外划分为训练集和验证集,基于验证集上的性能来进行模型选择和调参.

1.3. 性能度量

学习器泛化性能评估

  • 行之有效的实验评估方法
  • 衡量模型泛化能力的评价标准(性能度量)
    • 反映了任务需求,在对比不同模型的能力时,使用不同的性能度量往往会导致不同的评判结果

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

1.3.1. 回归

  • 均方误差
    回归任务最常用的
    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 \mathcal{D} D和概率密度函数 p ( ⋅ ) p(\cdot) p()
    E ( f ; D ) = ∫ x ∼ D ( f ( x ) − y ) 2 p ( x ) d x E(f ; \mathcal{D})=\int_{\boldsymbol{x} \sim \mathcal{D}}(f(\boldsymbol{x})-y)^{2} p(\boldsymbol{x}) \mathrm{d} \boldsymbol{x} E(f;D)=xD(f(x)y)2p(x)dx

1.3.2. 分类

1.3.2.1. 二分类

二分类结果混淆矩阵

真实情况预测结果
正例反例
正例TP(真正例)FN(假反例)
反例FP(假正例)TN(真反例)
  • 错误率:分类错误的样本数占样本总数的比例
    E ( f ; D ) = 1 m ∑ i = 1 m I ( f ( x i ) ≠ y i ) E(f ; D)=\frac{1}{m} \sum_{i=1}^{m} \mathbb{I}\left(f\left(\boldsymbol{x}_{i}\right) \neq y_{i}\right) E(f;D)=m1i=1mI(f(xi)=yi)
    一般化:数据分布 D \mathcal{D} D和概率密度函数 p ( ⋅ ) p(\cdot) p()
    E ( f ; D ) = ∫ x ∼ D I ( f ( x ) ≠ y ) p ( x ) d x E(f ; \mathcal{D})=\int_{\boldsymbol{x} \sim \mathcal{D}} \mathbb{I}(f(\boldsymbol{x}) \neq y) p(\boldsymbol{x}) \mathrm{d} \boldsymbol{x} E(f;D)=xDI(f(x)=y)p(x)dx

    • 适用于二分类任务与多分类任务
  • 精度:分类正确的样本数占样本总数的比例
    acc ⁡ ( f ; D ) = 1 m ∑ i = 1 m I ( f ( x i ) = y i ) = 1 − E ( f ; D ) \begin{aligned} \operatorname{acc}(f ; D) &=\frac{1}{m} \sum_{i=1}^{m} \mathbb{I}\left(f\left(\boldsymbol{x}_{i}\right)=y_{i}\right) \\ &=1-E(f ; D) \end{aligned} acc(f;D)=m1i=1mI(f(xi)=yi)=1E(f;D)
    一般化:数据分布 D \mathcal{D} D和概率密度函数 p ( ⋅ ) p(\cdot) p()
    acc ⁡ ( f ; D ) = ∫ x ∼ D I ( f ( x ) = y ) p ( x ) d x = 1 − E ( f ; D ) \begin{aligned} \operatorname{acc}(f ; \mathcal{D}) &=\int_{\boldsymbol{x} \sim \mathcal{D}} \mathbb{I}(f(\boldsymbol{x})=y) p(\boldsymbol{x}) \mathrm{d} \boldsymbol{x} \\ &=1-E(f ; \mathcal{D}) \end{aligned} acc(f;D)=xDI(f(x)=y)p(x)dx=1E(f;D)

    • 适用于二分类任务与多分类任务
  • 查准率(precision,准确率):真正例占预测正例的比例
    P = T P T P + F P P=\frac{TP}{TP+FP} P=TP+FPTP
    衡量模型避免错误的能力

  • 查全率(recall,召回率):真正例占真实正例的比例
    P = T P T P + F N P=\frac{TP}{TP+FN} P=TP+FNTP
    衡量模型避免缺漏的能力

一般查准率高时,查全率往往偏低;查全率高时,查准率往往偏低。不同问题需要侧重不同

  • 真正例率(True Positive Rate,简称TPR)
    T P R = T P T P + F N = T P m + \mathrm{TPR}=\frac{T P}{T P+F N}=\frac{TP}{m^+} TPR=TP+FNTP=m+TP
  • 假正例率(False Positive Rate,简称FPR)
    F P R = F P T N + F P = F P m − \mathrm{FPR}=\frac{F P}{T N+F P}=\frac{FP}{m^-} FPR=TN+FPFP=mFP

真正例率与假正例率用于ROC曲线

  • 二分类代价矩阵
    为权衡不同类型错误所造成的不同损失,可为错误赋予非均等代价(unequal cost)
    20200412201107
    其中 c o s t i j cost_{ij} costij表示将第 i i i类样本预测为第 j j j类样本的代价,造成的损失越大,值越大(重要的是代缴的比值而非绝对值)

  • 代价敏感错误率
    在非均等代价下,不再最小化错误次数,而是最小化“总体代价
    E ( f ; D ; cos ⁡ t ) = 1 m ( ∑ x i ∈ D + I ( f ( x i ) ≠ y i ) × cost ⁡ 01 + ∑ x i ∈ D − I ( f ( x i ) ≠ y i ) × cost ⁡ 10 ) E(f ; D ; \cos t)=\frac{1}{m}\left(\sum_{x_{i} \in D^{+}} \mathbb{I}\left(f\left(x_{i}\right) \neq y_{i}\right) \times \operatorname{cost}_{01}+\sum_{x_{i} \in D^{-}} \mathbb{I}\left(f\left(x_{i}\right) \neq y_{i}\right) \times \operatorname{cost}_{10}\right) E(f;D;cost)=m1(xiD+I(f(xi)=yi)×cost01+xiDI(f(xi)=yi)×cost10)

  • 正例概率代价(取值为 [ 0 , 1 ] [0,1] [0,1])
    P ( + ) cos ⁡ t = p × cos ⁡ t 01 p × cos ⁡ t 01 + ( 1 − p ) × cos ⁡ t 10 P(+) \cos t=\frac{p \times \cos t_{01}}{p \times \cos t_{01}+(1-p) \times \cos t_{10}} P(+)cost=p×cost01+(1p)×cost10p×cost01其中 p p p为样例为正例的概率

  • 归一化代价(取值为 [ 0 , 1 ] [0,1] [0,1])
    cost norm =  FNR  × p × cost ⁡ 01 + FPR ⁡ × ( 1 − p ) × cost ⁡ 10 p × cost ⁡ 01 + ( 1 − p ) × cost ⁡ 10 \text {cost}_{\text {norm}}=\frac{\text { FNR } \times p \times \operatorname{cost}_{01}+\operatorname{FPR} \times(1-p) \times \operatorname{cost}_{10}}{p \times \operatorname{cost}_{01}+(1-p) \times \operatorname{cost}_{10}} costnorm=p×cost01+(1p)×cost10 FNR ×p×cost01+FPR×(1p)×cost10

二分类代价矩阵、代价敏感错误率、正例概率代价、归一化代价用于构建代价曲线

1.3.2.2. 多分类

多分类结果的混淆矩阵
20200412173505

  • 错误率(见二分类)
  • 精度(见二分类)

很多时候我们有多个二分类混淆矩阵,例如进行多次训练/测试,每次得到一个混淆矩阵;或是在多个数据集上进行训练/测试,希望估计算法的“全局”
性能;甚或是执行多分类任务,每两两类别的组合都对应一个混淆矩阵;

希望在n个二分类混淆矩阵上综合考察查准率和查全率.在各混淆矩阵上分别计算出查准率和查全率为 ( P 1 , R 1 ) , ( P 2 , R 2 ) , … , ( P n , R n ) (P_1,R_1),(P_2,R_2),\ldots,(P_n,R_n) (P1,R1),(P2,R2),,(Pn,Rn)

  • 直接各混淆矩阵上分别计算出查准率和查全率,

    • 宏查准率(macro-P)
      macro ⁡ - P = 1 n ∑ i = 1 n P i \operatorname{macro} \text{-} P=\frac{1}{n} \sum_{i=1}^{n} P_{i} macro-P=n1i=1nPi
    • 宏查全率(macro-R)
      macro ⁡ - R = 1 n ∑ i = 1 n R i \operatorname{macro} \text{-} R=\frac{1}{n} \sum_{i=1}^{n} R_{i} macro-R=n1i=1nRi
    • 宏F1(macro-F1)
      macro ⁡ - F 1 = 2 × macro ⁡ - P × macro ⁡ - R macro ⁡ - P + macro ⁡ - R \operatorname{macro} \text{-} F 1=\frac{2 \times \operatorname{macro} \text{-} P \times \operatorname{macro} \text{-} R}{\operatorname{macro} \text{-} P+\operatorname{macro} \text{-} R} macro-F1=macro-P+macro-R2×macro-P×macro-R
  • 将各混淆矩阵的对应元素进行平均,得到 T P , F P , T N , F N {T P}, {F P}, {T N}, {F N} TP,FP,TN,FN的平均值,记为 T P ‾ , F P ‾ , T N ‾ , F N ‾ \overline{T P}, \overline{F P}, \overline{T N}, \overline{F N} TP,FP,TN,FN

    • 微查准率
      micro ⁡ − P = T P ‾ T P ‾ + F P ‾ \operatorname{micro}-P=\frac{\overline{T P}}{\overline{T P}+\overline{F P}} microP=TP+FPTP
    • 微查全率
      micro ⁡ − R = T P ‾ T P ‾ + F N ‾ \operatorname{micro}-R=\frac{\overline{T P}}{\overline{T P}+\overline{F N}} microR=TP+FNTP
    • 微F1
      micro ⁡ - F 1 = 2 × micro ⁡ - P × micro ⁡ - R micro ⁡ - P + micro ⁡ - R \operatorname{micro} \text{-} F 1=\frac{2 \times \operatorname{micro} \text{-} P \times \operatorname{micro} \text{-} R}{\operatorname{micro} \text{-} P+\operatorname{micro} \text{-} R} micro-F1=micro-P+micro-R2×micro-P×micro-R
1.3.2.3. 学习器评估
P-R曲线ROC曲线代价曲线
横轴查全率R假正例率FPR正例概率代价
纵轴查准率P真正例率TPR归一化代价
绘图过程根据学习器的预测结果按正例可能性大小对样例进行排序,并逐个把样本作为正例进行预测,则可以得到给定个 m + m^+ m+正例和 m − m^- m个负例,根据学习器预测结果对样例进行排序,将分类阈值设为每个样例的预测值,当前标记点坐标为 ( x , y ) (x,y) (x,y),当前若为真正例,则对应标记点的坐标为 ( x , y + 1 / m + ) (x,y+1/m^+) (x,y+1/m+);当前若为假正例,则对应标记点的坐标为 ( x + 1 / m − , y ) (x+1/m^-,y) (x+1/m,y),然后用线段连接相邻点ROC曲线上每一点对应了代价平面上的一条线段,设ROC曲线上点的坐标为(TPR,FPR),则可相应计算出FNR,然后在代价平面上绘制一条从(0,FPR)到(1,FNR)的线段,线段下的面积即表示了该条件下的期望总体代价;如此将ROC曲线上的每个点转化为代价平面上的一条线段,然后取所有线段的下界,围成的面积即为在所有条件下学习器的期望总体代价
曲线相包取外者取外者
曲线相交根据度量条件根据度量条件
度量条件平衡点BEP、 F 1 F1 F1 F β F_{\beta} FβAUC下方面积
均等代价
  • “P-R曲线”(查准率-查全率曲线)
    20200409232415

    • 学习器包含:例如A的性能比C的性能好
    • 学习器相交:很难断言两者孰优孰劣,
      • 所包面积:较难执行
      • 平衡点BEP:曲线上“查准率=查全率”时的取值,可用来用于度量P-R曲线有交叉的分类器性能高低(过于简化)
      • F 1 F1 F1:基于查准率与查全率的调和平均定义( 1 F 1 = 1 2 ⋅ ( 1 P + 1 R ) \frac{1}{F1} = \frac{1}{2}\cdot (\frac{1}{P}+\frac{1}{R}) F11=21(P1+R1))
        F 1 = 2 × P × R P + R = 2 × T P 样 例 总 数 + T P − T N F1=\frac{2 \times P \times R}{P + R}= \frac{2 \times TP}{样例总数 + TP - TN} F1=P+R2×P×R=+TPTN2×TP
      • F β F_\beta Fβ:基于加权调和平均( 1 F β = 1 1 + β 2 ⋅ ( 1 P + β 2 R ) \frac{1}{F_{\beta}}=\frac{1}{1+\beta^{2}} \cdot\left(\frac{1}{P}+\frac{\beta^{2}}{R}\right) Fβ1=1+β21(P1+Rβ2),与算术平均 P + R 2 \frac{P+R}{2} 2P+R和几何平均 P × R \sqrt{P \times R} P×R 更重视较小值)
        F β = ( 1 + β 2 ) × P × R ( β 2 × P ) + R F_{\beta}=\frac{\left(1+\beta^{2}\right) \times P \times R}{\left(\beta^{2} \times P\right)+R} Fβ=(β2×P)+R(1+β2)×P×R
        • β > 0 \beta > 0 β>0度量了查全率对查准率的相对重要性; β > 1 \beta>1 β>1偏重查全率; β < 1 \beta<1 β<1偏重查准率
  • ROC曲线(受试者工作特征)

    20200412195520

    • 学习器包含:被包住的学习器差
    • 学习器相交:很难断言两者孰优孰劣
      • AUC(Area Under ROC Cureve):比较ROC曲线下的面积,AUC衡量了样本预测的排序质量
        • 曲线面积计算
          ROC曲线由坐标 { ( x 1 , y 1 ) , ( x 2 , y 2 ) , … , ( x m , y m ) } \{(x_1,y_1),(x_2,y_2),\ldots , (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)
          A U C = 1 2 ∑ i = 1 m − 1 ( x i + 1 − x i ) ⋅ ( y i + y i + 1 ) \mathrm{AUC}=\frac{1}{2} \sum_{i=1}^{m-1}\left(x_{i+1}-x_{i}\right) \cdot\left(y_{i}+y_{i+1}\right) AUC=21i=1m1(xi+1xi)(yi+yi+1)
        • 排序损失计算
          m + m^+ m+个正例和 m − m^- m个负例,令 D + D^+ D+ D − D^- D分别表示正、反例集合;则排序损失
          ℓ r a n k = 1 m + m − ∑ x + ∈ D + ∑ x − ∈ D − ( I ( f ( x + ) < f ( x − ) ) + 1 2 I ( f ( x + ) = f ( x − ) ) ) \ell_{r a n k}=\frac{1}{m^{+} m^{-}} \sum_{x^{+} \in D^{+} }\sum_{x^{-} \in D^{-}}\left(\mathbb{I}\left(f\left(x^{+}\right)<f\left(x^{-}\right)\right)+\frac{1}{2} \mathbb{I}\left(f\left(x^{+}\right)=f\left(x^{-}\right)\right)\right) rank=m+m1x+D+xD(I(f(x+)<f(x))+21I(f(x+)=f(x)))
          即考虑每一对正、反例,若正例的预测值小于反例,则记一个“罚分”,若相等,则记0.5个“罚分”.容易看出, ℓ r a n k \ell_{r a n k} rank对应的是ROC曲线之上的面积:若一个正例在ROC曲线上对应标记点的坐标为(x,y),则x恰是排序在其之前的反例所占的比例,即假正例率。因此有
          A U C = 1 − ℓ r a n k AUC=1-\ell_{r a n k} AUC=1rank
  • 代价曲线
    20200412202759

  • 面积即为在所有条件下学习器的期望总体代价,所以比较为比面积

1.4. 比较检验

直接选取相应评估方法在相应度量下比大小的方法不可取!

  • 测试性能并不等于泛化性能
  • 测试性能随着测试集的变化而变化
  • 很多机器学习算法本身有一定的随机性

假设检验为学习器性能比较提供了重要依据,基于其结果我们可以推断出若在测试集上观察到学习器A比B好,则A的泛化性能是否在统计意义上优于B,以及这个结论的把握有多大。

假设检验中的“假设”是对学习器泛化错误率分布的某种判断或猜想;错误率为性能度量,用 ϵ \epsilon ϵ表示

可根据测试错误率估推出泛化错误率的分布

现实任务中我们并不知道学习器的泛化错误率,只能获知其测试错误率.泛化错误率与测试错误率未必相同,但直观上,二者接近的可能性应比较大,相差很远的可能性比较小.

1.4.1. 单个学习器泛化性能

1.4.1.1. 二项检验

记泛化错误率为 ϵ \epsilon ϵ,测试错误率为 ϵ ^ \hat{\epsilon} ϵ^(m个样本中恰有 ϵ ^ × m \hat{\epsilon} \times m ϵ^×m个被误分类)
假定测试样本从样本总体分布中独立采样而来,可以使用“二项检验”对 ϵ ≤ ϵ 0 \epsilon \leq \epsilon_0 ϵϵ0进行假设检验。

泛化错误率为 ϵ \epsilon ϵ的学习器将其中 m ′ m \prime m个样本误分类、其余样本全部都分类正确的概率为 ϵ m ′ ( 1 − ϵ ) m − m ′ \epsilon ^{m \prime}(1-\epsilon)^{m-m\prime} ϵm(1ϵ)mm;由此可估算出其恰将 ϵ ^ × m \hat{\epsilon} \times m ϵ^×m个样本误分类的概率为
P ( ϵ ^ ; ϵ ) = ( m ϵ ^ × m ) ϵ ϵ ^ × m ( 1 − ϵ ) m − e ^ × m P(\hat{\epsilon} ; \epsilon)=\left(\begin{array}{c} m \\ \hat{\epsilon} \times m \end{array}\right) \epsilon^{\hat{\epsilon} \times m}(1-\epsilon)^{m-\hat{e} \times m} P(ϵ^;ϵ)=(mϵ^×m)ϵϵ^×m(1ϵ)me^×m
表示在包含 m m m个样本的测试集上,泛化错误率为 ϵ \epsilon ϵ的学习器被测得测试错误率为 ϵ ^ \hat{\epsilon} ϵ^的概率

给定测试错误率,则解 ∂ P ( ϵ ^ ; ϵ ) / ∂ ϵ = 0 \partial P(\hat{\epsilon};\epsilon)/\partial \epsilon=0 P(ϵ^;ϵ)/ϵ=0可知, P ( ϵ ^ ; ϵ ) P(\hat{\epsilon};\epsilon) P(ϵ^;ϵ) ϵ = ϵ ^ \epsilon=\hat{\epsilon} ϵ=ϵ^时最大, ∣ ϵ − ϵ ^ ∣ |\epsilon-\hat{\epsilon}| ϵϵ^增大时 P ( ϵ ^ ; ϵ ) P(\hat{\epsilon};\epsilon) P(ϵ^;ϵ)减小,这符合二项(binomial)分布,

假设 ϵ ≤ ϵ 0 \epsilon \leq \epsilon_0 ϵϵ0,若测试错误率小于
ϵ ˉ = max ⁡ ϵ  s.t.  ∑ i = ϵ 0 × m + 1 m ( m i ) ϵ i ( 1 − ϵ ) m − i < α \bar{\epsilon}=\max \epsilon \quad \text { s.t. } \quad \sum_{i=\epsilon_{0} \times m+1}^{m}\left(\begin{array}{c} m \\ i\end{array}\right) \epsilon^{i}(1-\epsilon)^{m-i}<\alpha ϵˉ=maxϵ s.t. i=ϵ0×m+1m(mi)ϵi(1ϵ)mi<α
则在 α \alpha α的显著度下,假设不能被拒绝, 也即能以 1 − α 1-\alpha 1α的置信度认为,模型的泛化错误率不大于 ϵ 0 \epsilon_0 ϵ0,即在 α \alpha α的显著度下可认为学习器的泛化错误率大于 ϵ 0 \epsilon_0 ϵ0

1.4.1.2. t检验
  • 假定得到了 k k k个测试错误率, ϵ ^ 1 , ϵ ^ 2 , … , ϵ ^ k \hat{\epsilon}_1,\hat{\epsilon}_2,\ldots,\hat{\epsilon}_k ϵ^1,ϵ^2,,ϵ^k, 平均错误率 μ \mu μ与方差 σ 2 \sigma^2 σ2
    μ = 1 k ∑ i = 1 k ϵ ^ i σ 2 = 1 k − 1 ∑ i = 1 k ( ϵ ^ i − μ ) 2 \begin{aligned} \mu&=\frac{1}{k} \sum_{i=1}^{k} \hat{\epsilon}_{i} \\ \sigma^{2}&=\frac{1}{k-1} \sum_{i=1}^{k}\left(\hat{\epsilon}_{i}-\mu\right)^{2} \end{aligned} μσ2=k1i=1kϵ^i=k11i=1k(ϵ^iμ)2
  • 考虑到这 k k k个测试错误率可看作泛化错误率 ϵ 0 \epsilon_0 ϵ0的独立采样,则变量 τ t = k ( μ − ϵ 0 ) σ \tau_{t}=\frac{\sqrt{k}\left(\mu-\epsilon_{0}\right)}{\sigma} τt=σk (μϵ0)服从自由度为 k − 1 k-1 k1的t分布
  • 假设 ϵ = ϵ 0 \epsilon = \epsilon_0 ϵ=ϵ0,,对于显著度 α \alpha α,若 [ t − α / 2 , t α / 2 ] [t_{-\alpha/2}, t_{\alpha/2}] [tα/2,tα/2]位于临界范围 ∣ μ − ϵ 0 ∣ |\mu - \epsilon_0| μϵ0内,则假设不能被拒绝,即可认为泛化错误率 ϵ = ϵ 0 \epsilon = \epsilon_0 ϵ=ϵ0,其置信度为 1 − α 1-\alpha 1α.

1.4.2. 不同学习器比较

1.4.2.1. 交叉验证t检验
  • 两个学习器A,B
  • k折交叉验证法得到测试错误率分别为 ϵ 1 A , ϵ 2 A , … , ϵ k A \epsilon_{1}^{A}, \epsilon_{2}^{A}, \ldots, \epsilon_{k}^{A} ϵ1A,ϵ2A,,ϵkA ϵ 1 B , ϵ 2 B , … , ϵ k B \epsilon_{1}^{B}, \epsilon_{2}^{B}, \ldots, \epsilon_{k}^{B} ϵ1B,ϵ2B,,ϵkB,其中 ϵ i A , ϵ i B \epsilon_{i}^{A},\epsilon_i^{B} ϵiA,ϵiB实在相同的第 i i i折训练/测试集上得到的结果
  • k折交叉验证“成对t检验”(paired t-tests)进行比较检验
  • 基本思想:若两学习器性能相同,则它们使用相同的训练/测试集得到的测试错误率应相同 ϵ i A = ϵ i B \epsilon_{i}^{A}=\epsilon_i^{B} ϵiA=ϵiB
  • 过程
    • 对k折交叉验证产生的k对测试错误率:先对每对结果求差 Δ i = ϵ i A − ϵ i B \Delta_{i}=\epsilon_{i}^{A}-\epsilon_{i}^{B} Δi=ϵiAϵiB,若两个学习器性能相同,则差值应该为0
    • 根据差值 Δ 1 , Δ 2 , … , Δ k \Delta_{1}, \Delta_{2}, \ldots, \Delta_{k} Δ1,Δ2,,Δk来对“学习器A与B性能相同”这个假设做t检验。
    • 计算出差值的均值 μ \mu μ和方差 σ 2 \sigma^2 σ2
    • 在显著度 α \alpha α下,若变量
      τ t = ∣ k μ σ ∣ \tau_{t}=\left|\frac{\sqrt{k} \mu}{\sigma}\right| τt=σk μ
      小于临界值 t α / 2 , k − 1 t_{\alpha/2,k-1} tα/2,k1(自由度为 k − 1 k-1 k1的t分布上尾部累计分布为 α / 2 \alpha/2 α/2的临界值),则假设不能被拒绝;即认为两个学习器的性能没有显著差别。反之则有显著差别,且平均错误率较小的哪个学习器性能较优
  • 前提:测试错误率为泛化错误率的独立采样,然而由于样本有限,使用交叉验证导致训练集重叠,测试错误率并不独立,从而过高估计假设成立的概率,
  • 缓解方法:采用“5×2交叉验证”法
    所谓5×2折交叉验证就是做5次二折交叉验证,每次二折交叉验证之前将数据打乱,使得5次交叉验证中的数据划分不重复。为缓解测试数据错误率的非独立性,仅计算第一次2折交叉验证结果的平均值 μ = 0.5 ( Δ 1 1 + Δ 1 2 ) \mu=0.5\left(\Delta_{1}^{1}+\Delta_{1}^{2}\right) μ=0.5(Δ11+Δ12)和每次二折实验计算得到的方差 σ i 2 = ( Δ i 1 − Δ i 1 + Δ i 2 2 ) 2 + ( Δ i 2 − Δ i 1 + Δ i 2 2 ) 2 \sigma_{i}^{2}=\left(\Delta_{i}^{1}-\frac{\Delta_{i}^{1}+\Delta_{i}^{2}}{2}\right)^{2}+\left(\Delta_{i}^{2}-\frac{\Delta_{i}^{1}+\Delta_{i}^{2}}{2}\right)^{2} σi2=(Δi12Δi1+Δi2)2+(Δi22Δi1+Δi2)2,则变量
    τ t = μ 0.2 ∑ i = 1 5 σ i 2 \tau_{t}=\frac{\mu}{\sqrt{0.2 \sum_{i=1}^{5} \sigma_{i}^{2}}} τt=0.2i=15σi2 μ
    服从自由度为5的t分布。
1.4.2.2. McNemar检验

两学习器分类差别列联表
20200412215320
假设两学习器性能相同,则应有 e 01 = e 10 e_{01}=e_{10} e01=e10,那么变量 ∣ e 01 − e 10 ∣ |e_{01}-e_{10}| e01e10应当服从正态分布,且均值为1,方差为 e 01 + e 10 e_{01}+e_{10} e01+e10,因此变量 τ χ 2 = ( ∣ e 01 − e 10 ∣ − 1 ) 2 e 01 + e 10 \tau_{\chi^{2}}=\frac{\left(\left|e_{01}-e_{10}\right|-1\right)^{2}}{e_{01}+e_{10}} τχ2=e01+e10(e01e101)2服从自由度为1的 χ 2 \chi^{2} χ2分布,即标准正态分布变量的平方

给定显著度 α \alpha α,当以上变量值小于临界值 χ α 2 \chi^{2}_\alpha χα2。时,不能拒绝假设,即认为两学习器的性能没有显著差别;否则拒绝假设,即认为两者性能有显著差别,且平均错误率较小的那个学习器性能较优.

1.4.2.3. Friedman检验
1.4.2.4. Nemenyi后续检验

1.5. 偏差与方差

  • 通过实验可以估计学习算法的泛化性能
  • 偏差-方差分解用来帮助解释泛化性能;是解释学习算法泛化性能的一种重要工具

对测试样本 x x x,令

  • y D y_D yD x x x在数据集中的标记

  • y y y x x x的真实标记

  • f ( x ; D ) f(x;D) f(x;D)为训练集 D D D上学得模型 f f f x x x上的预测输出

  • 回归任务为例

  • 学习算法的期望预测为
    f ˉ ( x ) = E D [ f ( x ; D ) ] \bar{f}(\boldsymbol{x})=\mathbb{E}_{D}[f(\boldsymbol{x} ; D)] fˉ(x)=ED[f(x;D)]

  • 使用养不熟木相同的不同训练集产生的方差为
    var ⁡ ( x ) = E D [ ( f ( x ; D ) − f ˉ ( x ) ) 2 ] \operatorname{var}(\boldsymbol{x})=\mathbb{E}_{D}\left[(f(\boldsymbol{x} ; D)-\bar{f}(\boldsymbol{x}))^{2}\right] var(x)=ED[(f(x;D)fˉ(x))2]

  • 噪声为
    ε 2 = E D [ ( y D − y ) 2 ] \varepsilon^{2}=\mathbb{E}_{D}\left[\left(y_{D}-y\right)^{2}\right] ε2=ED[(yDy)2]

  • 偏差:期望输出与真实标记的差别
    bias ⁡ 2 ( x ) = ( f ˉ ( x ) − y ) 2 \operatorname{bias}^{2}(\boldsymbol{x})=(\bar{f}(\boldsymbol{x})-y)^{2} bias2(x)=(fˉ(x)y)2

  • 假定噪声期望为0,即 E D [ ( y D − y ) ] = 0 \mathbb{E}_{D}\left[ \left(y_{D} - y \right) \right]=0 ED[(yDy)]=0

E ( f ; D ) = E D [ ( f ( x ; D ) − y D ) 2 ] = E D [ ( f ( x ; D ) − f ˉ ( x ) + f ˉ ( x ) − y D ) 2 ] = E D [ ( f ( x ; D ) − f ˉ ( x ) ) 2 ] + E D [ ( f ˉ ( x ) − y D ) 2 ] + E D [ 2 ( f ( x ; D ) − f ˉ ( x ) ) ( f ˉ ( x ) − y D ) ] = E D [ ( f ( x ; D ) − f ˉ ( x ) ) 2 ] + E D [ ( f ˉ ( x ) − y D ) 2 ] = E D [ ( f ( x ; D ) − f ˉ ( x ) ) 2 ] + E D [ ( f ˉ ( x ) − y + y − y D ) 2 ] = E D [ ( f ( x ; D ) − f ˉ ( x ) ) 2 ] + E D [ ( f ˉ ( x ) − y ) 2 ] + E D [ ( y − y D ) 2 ] + 2 E D [ ( f ˉ ( x ) − y ) ( y − y D ) ] = E D [ ( f ( x ; D ) − f ˉ ( x ) ) 2 ] + ( f ˉ ( x ) − y ) 2 + E D [ ( y D − y ) 2 ] \begin{aligned} E(f ; D)=& \mathbb{E}_{D}\left[\left(f(\boldsymbol{x} ; D)-y_{D}\right)^{2}\right] \\ =& \mathbb{E}_{D}\left[\left(f(\boldsymbol{x} ; D)-\bar{f}(\boldsymbol{x})+\bar{f}(\boldsymbol{x})-y_{D}\right)^{2}\right] \\ =& \mathbb{E}_{D}\left[(f(\boldsymbol{x} ; D)-\bar{f}(\boldsymbol{x}))^{2}\right]+\mathbb{E}_{D}\left[\left(\bar{f}(\boldsymbol{x})-y_{D}\right)^{2}\right] +\mathbb{E}_{D}\left[2(f(\boldsymbol{x} ; D)-\bar{f}(\boldsymbol{x}))\left(\bar{f}(\boldsymbol{x})-y_{D}\right)\right] \\ =& \mathbb{E}_{D}\left[(f(\boldsymbol{x} ; D)-\bar{f}(\boldsymbol{x}))^{2}\right]+\mathbb{E}_{D}\left[\left(\bar{f}(\boldsymbol{x})-y_{D}\right)^{2}\right] \\ =& \mathbb{E}_{D}\left[(f(\boldsymbol{x} ; D)-\bar{f}(\boldsymbol{x}))^{2}\right]+\mathbb{E}_{D}\left[\left(\bar{f}(\boldsymbol{x})-y+y-y_{D}\right)^{2}\right] \\ =& \mathbb{E}_{D}\left[(f(\boldsymbol{x} ; D)-\bar{f}(\boldsymbol{x}))^{2}\right]+\mathbb{E}_{D}\left[(\bar{f}(\boldsymbol{x})-y)^{2}\right]+\mathbb{E}_{D}\left[\left(y-y_{D}\right)^{2}\right] +2 \mathbb{E}_{D}\left[(\bar{f}(\boldsymbol{x})-y)\left(y-y_{D}\right)\right] \\ =& \mathbb{E}_{D}\left[(f(\boldsymbol{x} ; D)-\bar{f}(\boldsymbol{x}))^{2}\right]+(\bar{f}(\boldsymbol{x})-y)^{2}+\mathbb{E}_{D}\left[\left(y_{D}-y\right)^{2}\right] \end{aligned} E(f;D)=======ED[(f(x;D)yD)2]ED[(f(x;D)fˉ(x)+fˉ(x)yD)2]ED[(f(x;D)fˉ(x))2]+ED[(fˉ(x)yD)2]+ED[2(f(x;D)fˉ(x))(fˉ(x)yD)]ED[(f(x;D)fˉ(x))2]+ED[(fˉ(x)yD)2]ED[(f(x;D)fˉ(x))2]+ED[(fˉ(x)y+yyD)2]ED[(f(x;D)fˉ(x))2]+ED[(fˉ(x)y)2]+ED[(yyD)2]+2ED[(fˉ(x)y)(yyD)]ED[(f(x;D)fˉ(x))2]+(fˉ(x)y)2+ED[(yDy)2]

E ( f ; D ) = bias ⁡ 2 ( x ) + var ⁡ ( x ) + ε 2 E(f ; D)=\operatorname{bias}^{2}(\boldsymbol{x})+\operatorname{var}(\boldsymbol{x})+\varepsilon^{2} E(f;D)=bias2(x)+var(x)+ε2
泛化误差可分解为偏差、方差、噪声

  • 偏差度量了学习算法期望预测与真实结果的偏离程度;即刻画了学习算法本身的拟合能力;

  • 方差度量了同样大小训练集的变动所导致的学习性能的变化;即刻画了数据扰动所造成的影响;

  • 噪声表达了在当前任务上任何学习算法所能达到的期望泛化误差的下界;即刻画了学习问题本身的难度。

  • 偏差-方差分解说明泛化性能是由学习算法的能力、数据的充分性以及学习任务本身的难度所共同决定的。给定学习任务为了取得好的泛化性能,需要使偏差小(充分拟合数据)而且方差较小(减少数据扰动产生的影响)

  • 偏差-方差窘境:偏差与方差有冲突
    20200412214950

    • 训练不足时,学习器拟合能力不强,训练数据的扰动不足以使学习器的拟合能力产生显著变化,此时偏差主导泛化错误率;
    • 随着训练程度加深,学习器拟合能力逐渐增强,方差逐渐主导泛化错误率;
    • 训练充足后,学习器的拟合能力非常强,训练数据的轻微扰动都会导致学习器的显著变化,若训练数据自身非全局特性被学到则会发生过拟合。
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值