统计学习方法笔记(二)
1.4模型评估与模型选择
训练误差与测试误差
假设学习到的模型是:
Y=f^(X) Y = f ^ ( X )
训练误差是模型关于训练数据集的平均损失:
Remp(f^)=1N∑Ni=1L(yi,f^(xi)) R e m p ( f ^ ) = 1 N ∑ i = 1 N L ( y i , f ^ ( x i ) )
测试误差是模型关于测试数据集的平均损失:
etext=1N′∑N′i=1L(yi,f^(xi)) e t e x t = 1 N ′ ∑ i = 1 N ′ L ( y i , f ^ ( x i ) )
(N为训练样本容量,N^’^为测试样本容量)
测试误差反映了学习方法对未知测试数据集的预测能力,预测误差小的方法具有更好的预测能力。
过拟合与模型选择
过拟合:对已知数据集拟合很好,对未知数据预测很差。
模型选择:当选择的模型复杂度过大,会出现过拟合,故我们要选择复杂度适当的最优模型。
1.5正则化与交叉验证
正则化
正则化是在经验风险上加上一个正则化项,通过减小模型复杂度来防止过拟合,一般具有如下形式:
minf∈ϝ=1NL(yi,f(xi))+λJ(f) m i n f ∈ ϝ = 1 N L ( y i , f ( x i ) ) + λ J ( f )
交叉验证
在样本数据充足的情况下,随机将数据集切成三部分,分别为训练集,验证集,测试集。训练集用于训练模型;验证集用于模型的选择;测试集用于最终对学习方法的评估。
简单交叉验证:
随机将数据集分成两部分,一部分作为训练集,另一部分作为测试集。用训练集在各种条件下训练模型,在测试集上评价各个模型的测试误差,选出测试误差最小的模型。
S折交叉验证
随机将数据集切分成S个互不相交的大小相同的子集,利用S-个子集的数据训练模型,利用余下的子集测试模型,将这一过程对可能的S种选择重复进行,最后选出S种评测中平均测试误差最小的模型。
留一交叉验证:
S折交叉验证的特殊情形是S=N,称为留一交叉验证,在数据缺乏的情况下使用,N是给定数据集的容量。
1.6泛化能力
泛化误差
若学到的模型是 f^ f ^ ,那么以下模型是对未知数据预测的误差即为泛化误差。
Rexp(f)=Ep[L(Y,f(x))]=∫xyL(y,f(x))P(x,y)dxdy R e x p ( f ) = E p [ L ( Y , f ( x ) ) ] = ∫ x y L ( y , f ( x ) ) P ( x , y ) d x d y
泛化误差越小,学习方法越好,泛化误差即期望风险。
泛化误差上界
泛化能力分析是通过研究泛化误差的概率上界进行的,简称泛化误差上界。泛化误差上界是样本容量的函数,当样本容量增加时,泛化上界趋于0;且泛化误差是假设空间容量的函数,假设空间容量越大,模型越难学。
例(二分分类问题):
已知:
T={ (x(1),y(1)),(x(2),y(2))...(x(N),y(N)) ( x ( 1 ) , y ( 1 ) ) , ( x ( 2 ) , y ( 2 ) ) . . . ( x ( N ) , y ( N ) ) }
(X,Y)∼P(X,Y) ( X , Y ) ∼ P ( X , Y ) ; X∈Rn X ∈ R n , Y∈ Y ∈ {-1,+1}
ϝ ϝ ={ f1,f2...fd f 1 , f 2 . . . f d }
损失函数是0-1损失,关于 f f 的期望风险和经验风险分别是:
R^=1N∑Ni=1L(yi,f(xi)) R ^ = 1 N ∑ i = 1 N L ( y i , f ( x i ) )
经验风险最小化函数是:
fN=argminf∈ϝR^(f) f N = a r g m i n f ∈ ϝ R ^ ( f )
fN f N 的泛化能力:
R(fN)=E[L(Y,fN(X))] R ( f N ) = E [ L ( Y , f N ( X ) ) ]
定理:对二分类问题,对任意一个函数 f∈ϝ f ∈ ϝ ,至少以概率 1−δ 1 − δ ,以下不等式成立:
R(f)≤R^(f)+ε(d,N,δ) R ( f ) ≤ R ^ ( f ) + ε ( d , N , δ )
ε(d,N,δ)=12N(logd+log1δ)−−−−−−−−−−−−−√ ε ( d , N , δ ) = 1 2 N ( l o g d + l o g 1 δ )
左边为泛化误差,右为泛化误差上界。