当前位置: 代码迷 >> 综合 >> 模型评估与模型选择(训练误差和测试误差+过拟合)| 15mins 入门 | 《统计学习方法》学习笔记(四)
  详细解决方案

模型评估与模型选择(训练误差和测试误差+过拟合)| 15mins 入门 | 《统计学习方法》学习笔记(四)

热度:93   发布时间:2023-12-21 14:19:00.0

模型评估与模型选择

当损失函数给定时,基于损失函数的模型的训练误差(training error)和模型的测试误差(test error)就自然成为学习方法评估的标准.

训练误差的大小,对判定给定的问题是不是一个容易学习的问题是有意义的,但本质上不重要。测试误差反映了学习方法对未知的测试数据集的预测能力,是学习中的重要概念,显然,给定两种学习方法,测试误差小的方法具有更好的预测能力,是更有效的方法。

泛化能力(generalization ability): 学习方法对未知数据的预测能力

一、 训练误差与测试误差

假设学习到的模型是 Y = f ^ ( X ) Y=\hat f(X) Y=f^?(X),训练误差是模型 Y = f ^ ( X ) Y=\hat f(X) Y=f^?(X)关于训练数据集的平均损失:
R e m p ( f ^ ) = 1 N ∑ i = 1 N L ( y , f ^ ( x i ) ) R_{emp}(\hat f)=\frac{1}{N}\sum_{i=1}^NL(y,\hat f(x_i)) Remp?(f^?)=N1?i=1N?L(y,f^?(xi?))
其中N是训练样本容量。

测试误差是模型 Y = f ^ ( X ) Y=\hat f(X) Y=f^?(X)关于测试数据集的平均损失:
e t e s t = 1 N ′ ∑ i = 1 N ′ L ( y i , f ^ ( x i ) ) e_{test}=\frac{1}{N'}\sum_{i=1}^{N'}L(y_i,\hat f(x_i)) etest?=N1?i=1N?L(yi?,f^?(xi?))
其中 N ′ N' N是测试样本容量。

例如,当损失函数是0-1损失时,测试误差就变成了常见的测试数据集上的误差率(error rate).
e t e s t = 1 N ′ ∑ i = 1 N ′ I ( y 1 ≠ f ^ ( x i ) ) e_{test} = \frac{1}{N'}\sum_{i=1}^{N'}I(y_1\neq \hat f(x_i)) etest?=N1?i=1N?I(y1???=f^?(xi?))
这里 I I I是指示函数(indicator function),即 y ≠ f ^ ( x ) y \neq \hat f(x) y??=f^?(x)时为1,否则为0.

相应的,常见的测试数据集上的准确率(accuracy)为
r t e s t = 1 N ′ ∑ i = 1 N ′ I ( y i = f ^ ( x i ) ) r_{test} = \frac{1}{N'}\sum_{i=1}^{N'}I(y_i=\hat f(x_i)) rtest?=N1?i=1N?I(yi?=f^?(xi?))
显然,
r t e s t + e t e s t = 1 r_{test}+e_{test}=1 rtest?+etest?=1

二、 过拟合与模型选择

  • 当假设空间含有不同复杂度(例如,不同的参数个数)的模型时,就要面临模型选择(model selection)问题。如果在假设空间中存在”真“模型,那么所选择的模型应该逼近真模型。具体地,所选择的模型要与真模型的参数个数相同,所选择的模型的参数向量与真模型的参数向量相近。

  • 过拟合(over-fitting):指学习时选择的模型所包含的参数很多,以致于出现这一模型对已知数据预测得很好,但对未知数据预测的很差的现象。

  • 模型选择的目的:避免过拟合并提高模型的预测能力

  • 以多项式函数拟合问题为例,说明过拟合与模型选择。这是一个回归问题。

    假设给定一个训练集:
    T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\} T={ (x1?,y1?),(x2?,y2?),...,(xN?,yN?)}
    多项式函数拟合的任务是假设给定数据由M次多项式函数生成,选择一个对已知数据以及未知数据都有很好预测能力的M次多项式函数。

    假设给定10个数据点,用0~9次多项式函数对数据进行拟合。

    设M次多项式为
    f M ( x , w ) = w 0 + w 1 x + w 2 x 2 + ? ? ? + w M x M = ∑ j = 0 M w j x j f_M(x,w)=w_0+w_1x+w_2x^2+···+w_Mx^M=\sum_{j=0}^Mw_jx^j fM?(x,w)=w0?+w1?x+w2?x2+???+wM?xM=j=0M?wj?xj
    式中x是单变量输入, w 0 , w 1 , . . . , w M w_0,w_1,...,w_M w0?,w1?,...,wM?是M+1各参数。

    首先确定模型的复杂度,即确定多项式的次数;然后再给定的模型复杂度下,按照经验风险最小化的策略,求解参数,即多项式的系数。

    求以下经验风险最小化:
    L ( w ) = 1 2 ∑ i = 1 N ( f ( x , w ) ? y i ) 2 L(w)=\frac{1}{2}\sum_{i=1}^N(f(x,w)-y_i)^2 L(w)=21?i=1N?(f(x,w)?yi?)2
    这时,损失函数为平方损失,系数 1 2 \frac{1}{2} 21?是为了计算方便。这是最优化问题,将模型与训练数据代入,有
    L ( w ) = 1 2 ∑ i = 1 N ( ∑ j = 0 M w j x i j ? y i ) 2 L(w)=\frac{1}{2}\sum_{i=1}^N(\sum_{j=0}^Mw_jx_i^j-y_i)^2 L(w)=21?i=1N?(j=0M?wj?xij??yi?)2
    w j w_j wj?求偏导数并令其为0,可得
    w j = ∑ i = 1 N x i y i ∑ i = 1 N x i j + 1 , j = 0 , 1 , 2 , . . . , M w_j=\frac{\sum_{i=1}^Nx_iy_i}{\sum_{i=1}^Nx_i^{j+1}}, \quad j=0,1,2,...,M wj?=i=1N?xij+1?i=1N?xi?yi??,j=0,1,2,...,M

    在这里插入图片描述

  • 训练误差和测试误差与模型复杂度之间的关系

在这里插入图片描述

  相关解决方案