一、泛化误差
一个集成模型(f)在未知数据集(D)上的泛化误差E(f;D),由方差(var),偏差(bais)和噪声(ε)共同决定。其中可控的是偏差(bias), 方差(variance)。
偏差:Bias,指的是模型预测值偏离真实值的程度;
方差:Variance,值模型预测值的离散程度,比如两条几乎相同的样本,但是预测值可能差很多;
模型越精确,偏差越小;模型越稳定,方差越低。
Bias 和Variance 的关系如下图所示,模型可以预测的不准但是方差很小,比如第三个圆。
一般情况下模型偏差越小方差越大,即模型训练的越复杂训练集上的准确率越高越可能过拟合。过拟合的表现就是模型的方差较大。
交叉验证中就是根据偏差和方差的权衡来评估模型的效果
如图所示,通常情况下,随着模型复杂度(degree of complexity)的提升,训练误差会不断地减小,而测试误差会先减小后增大。当模型复杂度太低,训练误差和测试误差都很高,这个时候我们说模型是欠拟合(Under-fitting)的。
随着复杂度上升,模型先达到一个不错的效果,随即效果再次下降,也就是训练误差很低而测试误差很高。此时发生了过拟合。控制模型的复杂度可以帮我们找到合适的模型来拟合数据。复杂度高的模型通常偏差低而方差高;复杂度小的模型通常偏差高而方差低。控制复杂度其实就是帮助我们实现偏差-方差的权衡。
二、模型选择
模型选择(Model Selection)就是一系列让我们找到最佳复杂度模型的方法。它的主要思想是通过训练数据来估计期望的测试误差,从而让我们在不同复杂度的模型中进行选择。
模型的选择包括直接方法(direct methods)和间接方法(indirect methods)。直接方法通常指一系列重抽样方法(Resampling Methods),其中包括交叉验证(Cross-validation)或者留一验证(LOOCV)等。而间接方法通常指根据一些分析准则(Analytical Criteria)来进行模型选择。
交叉验证(Cross-Validation)。交叉验证的基本思想是:
1)把测试集随机地划分为大小基本相等的K个部分。
2)我们取出其中一份作为验证集,其他的K-1个部分(合并起来)作为训练集,训练模型。用训练出来的模型,对我们取出来的这一份验证集来进行预测,并进行模型的评估。
我们通常不把“K份”叫做“K份”,而叫“K折”(K-fold),我们这样的交叉验证方式通常也叫“K折交叉验证”(K-fold Cross-Validation),因为我们交叉了K次,每一个数据都要被使用K次(1次在验证集中用于验证,,K-1次在训练集中用于训练)。
选取K=1。这个时候,“K折交叉”验证就变成了所谓的“留一验证”(Leave-One-Out Cross Validation),或者叫LOOCV。
验证方法除了进行模型选择,还有一个更重要的用途就是调参(parameter tuning)。说是“调参数”,其实是调整“超参数”。超参数通常是模型训练之前就要设置的参数,而不是通过模型训练来获得的。比如KNN模型中的K,比如岭回归中的λ,这些参数给定以后,才可以进行模型的训练。
三、变量选择
变量选择(Variable Selection)。其实变量选择,也应该是模型选择的范围,因为变量选择其实也是控制模型复杂度的过程。不过模型选择似乎更加广义,也包括了对超参数的选择,而变量选择仅仅针对自变量的选择。
变量的选择主要有两类方法,一类叫做子集选择(Subset Selection),另一类更加通用的方法叫做正则化(Regularization)。
①最佳子集选择(Best Subset Selection)
这个思想比较粗暴,就是遍历所有可能的变量组合,用所有可能的子集来进行建模,然后根据一些方法或者准则(比如交叉验证,AIC、BIC等)选出最佳的模型。很明显,如果原数据集中有p个变量,我们就会有2^p种子集。如果不考虑交叉验证,我们至少要训练2^p次,这个工作量是非常大的。
②分步选择(Stepwise Selection)
分步选择事实上包括了两个方法:前向选择(Forward Selection)和后向选择(Backward Selection)。所谓前向选择的基本思想就是逐步地增加变量,以找到最佳的变量;而后向选择则相反,是先用全部变量进行建模,然后再逐步地删除变量。
正则化(Regularization)有时候也被叫做收缩(Shrinkage)。正则化的主要思想是在经验风险上加一个惩罚项(Penalty)。这个惩罚项就是用于惩罚模型的复杂度。这个惩罚项也叫正则化项(regularization),通常情况下带有惩罚项的经验风险最小化我们一般称之为结构风险最小化(structural risk minimization, SRM)。
这样的回归形式我们一般叫做Lasso 回归(绝对值正则化项)。它和岭回归(平方正则化项)最大的区别就在于惩罚项使用L2 范数还是L1 范数。同样是正则化(让参数收缩得更小),Lasso比起Ridge还可以起到变量选择的作用。因为Lasso是可以将参数收缩到0的。
(本文来自公众号:柒的生信笔记)
转自:“量化研究方法”微信公众号
如有侵权,请联系本站删除!