多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# 15 -- Validation 上节课我们主要讲了为了避免overfitting,可以使用regularization方法来解决。在之前的![](https://img.kancloud.cn/5b/cf/5bcf9eebe555c8380ea4c84aea710839_23x14.jpg)上加上一个regularizer,生成![](https://img.kancloud.cn/32/26/3226a8971528cd68f194ccc55cf51e84_31x16.jpg),将其最小化,这样可以有效减少模型的复杂度,避免过拟合现象的发生。那么,机器学习领域还有许多选择,如何保证训练的模型具有良好的泛化能力?本节课将介绍一些概念和方法来解决这个选择性的问题。 ### **一、Model Selection Problem** 机器学习模型建立的过程中有许多选择,例如对于简单的二元分类问题,首先是算法A的选择,有PLA,pocket,linear regression,logistic regression等等;其次是迭代次数T的选择,有100,1000,10000等等;之后是学习速率![](https://img.kancloud.cn/fa/a8/faa8fa58ba31bedd69c7f03b2b3885e9_9x10.jpg)的选择,有1,0.01,0.0001等等;接着是模型特征转换![](https://img.kancloud.cn/48/f8/48f827e6c5f24a9af72129d2b62785dc_11x13.jpg)的选择,有linear,quadratic,poly-10,Legendre-poly-10等等;然后是正则化regularizer的选择,有L2,L1等等;最后是正则化系数![](https://img.kancloud.cn/6c/9a/6c9a2d4cdadb3b3dd53f11c31c8be95e_9x11.jpg)的选择,有0,0.01,1等等。不同的选择搭配,有不同的机器学习效果。我们的目标就是找到最合适的选择搭配,得到一个好的矩g,构建最佳的机器学习模型。 ![这里写图片描述](https://img.kancloud.cn/af/3d/af3dc781672fc24b1b9f21edec68af88_471x239.jpg) 假设有M个模型,对应有![](https://img.kancloud.cn/3d/4a/3d4af6b65719d3c131a7c55b9c22dcd9_113x15.jpg),即有M个hypothesis set,演算法为![](https://img.kancloud.cn/34/48/3448343a35d0eaf5257e645be6701de4_109x15.jpg),共M个。我们的目标是从这M个hypothesis set中选择一个模型![](https://img.kancloud.cn/0c/49/0c496e20cd8ab89e754230feb4ba9eaa_28x14.jpg),通过演算法![](https://img.kancloud.cn/dc/8d/dc8d991b5b67fe3f12c7c73e0c0f4bb6_27x14.jpg)对样本集D的训练,得到一个最好的矩![](https://img.kancloud.cn/6a/37/6a3763934ae3ca97a4e7842acba5d128_23x10.jpg),使其![](https://img.kancloud.cn/d1/b8/d1b8433f059616b0c44aed6deafcdcca_66x18.jpg)最小。所以,问题的关键就是机器学习中如何选择到最好的矩![](https://img.kancloud.cn/6a/37/6a3763934ae3ca97a4e7842acba5d128_23x10.jpg)。 考虑有这样一种方法,对M个模型分别计算使![](https://img.kancloud.cn/5b/cf/5bcf9eebe555c8380ea4c84aea710839_23x14.jpg)最小的矩g,再横向比较,取其中能使![](https://img.kancloud.cn/5b/cf/5bcf9eebe555c8380ea4c84aea710839_23x14.jpg)最小的模型的矩![](https://img.kancloud.cn/6a/37/6a3763934ae3ca97a4e7842acba5d128_23x10.jpg): ![这里写图片描述](https://img.kancloud.cn/cf/c4/cfc4bd0010630d72cc254233357ca622_272x54.jpg) 但是![](https://img.kancloud.cn/5b/cf/5bcf9eebe555c8380ea4c84aea710839_23x14.jpg)足够小并不能表示模型好,反而可能表示训练的矩![](https://img.kancloud.cn/6a/37/6a3763934ae3ca97a4e7842acba5d128_23x10.jpg)发生了过拟合,泛化能力很差。而且这种“模型选择+学习训练”的过程,它的VC Dimension是![](https://img.kancloud.cn/8f/1a/8f1a8e3c55bce947c8d19e840fe3a6be_98x18.jpg),模型复杂度增加。总的来说,泛化能力差,用![](https://img.kancloud.cn/5b/cf/5bcf9eebe555c8380ea4c84aea710839_23x14.jpg)来选择模型是不好的。 另外一种方法,如果有这样一个独立于训练样本的测试集,将M个模型在测试集上进行测试,看一下![](https://img.kancloud.cn/d2/84/d284a15cfc886dddd01bfa54b2211a1e_30x14.jpg)的大小,则选取![](https://img.kancloud.cn/d2/84/d284a15cfc886dddd01bfa54b2211a1e_30x14.jpg)最小的模型作为最佳模型: ![这里写图片描述](https://img.kancloud.cn/ba/c7/bac7d025f86ea2c43a771c23fb2a1766_273x48.jpg) 这种测试集验证的方法,根据finite-bin Hoffding不等式,可以得到: 由上式可以看出,模型个数M越少,测试集数目越大,那么![](https://img.kancloud.cn/49/38/4938d48d795384dc992a6295253ef631_83x41.jpg)越小,即![](https://img.kancloud.cn/d2/84/d284a15cfc886dddd01bfa54b2211a1e_30x14.jpg)越接近于![](https://img.kancloud.cn/d1/b8/d1b8433f059616b0c44aed6deafcdcca_66x18.jpg)。 下面比较一下之前讲的两种方法,第一种方法使用![](https://img.kancloud.cn/5b/cf/5bcf9eebe555c8380ea4c84aea710839_23x14.jpg)作为判断基准,使用的数据集就是训练集D本身;第二种方法使用![](https://img.kancloud.cn/d2/84/d284a15cfc886dddd01bfa54b2211a1e_30x14.jpg)作为判断基准,使用的是独立于训练集D之外的测试集。前者不仅使用D来训练不同的![](https://img.kancloud.cn/f1/3b/f13b04c0ac0e0a2a8740bb6d170e51ec_19x10.jpg),而且又使用D来选择最好的![](https://img.kancloud.cn/6a/37/6a3763934ae3ca97a4e7842acba5d128_23x10.jpg),那么![](https://img.kancloud.cn/6a/37/6a3763934ae3ca97a4e7842acba5d128_23x10.jpg)对未知数据并不一定泛化能力好。举个例子,这相当于老师用学生做过的练习题再来对学生进行考试,那么即使学生得到高分,也不能说明他的学习能力强。所以最小化![](https://img.kancloud.cn/5b/cf/5bcf9eebe555c8380ea4c84aea710839_23x14.jpg)的方法并不科学。而后者使用的是独立于D的测试集,相当于新的考试题能更好地反映学生的真实水平,所以最小化![](https://img.kancloud.cn/d2/84/d284a15cfc886dddd01bfa54b2211a1e_30x14.jpg)更加理想。 ![这里写图片描述](https://img.kancloud.cn/18/38/1838872514eb3e9433ff84bbd6212a56_565x142.jpg) 但是,我们拿到的一都是训练集D,测试集是拿不到的。所以,寻找一种折中的办法,我们可以使用已有的训练集D来创造一个验证集validation set,即从D中划出一部分![](https://img.kancloud.cn/13/dd/13dda61bb54614a8280b36e509487068_28x14.jpg)作为验证集。D另外的部分作为训练模型使用,![](https://img.kancloud.cn/13/dd/13dda61bb54614a8280b36e509487068_28x14.jpg)独立开来,用来测试各个模型的好坏,最小化![](https://img.kancloud.cn/4d/24/4d24643e6d4a16f2093805d591a1ff89_27x14.jpg),从而选择最佳的![](https://img.kancloud.cn/6a/37/6a3763934ae3ca97a4e7842acba5d128_23x10.jpg)。 ![这里写图片描述](https://img.kancloud.cn/dc/21/dc21caebda10b8df7ec0ccb663380e98_280x138.jpg) ### **二、Validation** 从训练集D中抽出一部分K个数据作为验证集![](https://img.kancloud.cn/13/dd/13dda61bb54614a8280b36e509487068_28x14.jpg),![](https://img.kancloud.cn/13/dd/13dda61bb54614a8280b36e509487068_28x14.jpg)对应的error记为![](https://img.kancloud.cn/4d/24/4d24643e6d4a16f2093805d591a1ff89_27x14.jpg)。这样做的一个前提是保证![](https://img.kancloud.cn/13/dd/13dda61bb54614a8280b36e509487068_28x14.jpg)独立同分布(iid)于P(x,y),也就是说![](https://img.kancloud.cn/13/dd/13dda61bb54614a8280b36e509487068_28x14.jpg)的选择是从D中平均随机抽样得到的,这样能够把![](https://img.kancloud.cn/4d/24/4d24643e6d4a16f2093805d591a1ff89_27x14.jpg)与![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)联系起来。D中去除![](https://img.kancloud.cn/13/dd/13dda61bb54614a8280b36e509487068_28x14.jpg)后的数据就是供模型选择的训练数据![](https://img.kancloud.cn/80/33/80339ac589f42f97131228e8a6f52069_40x14.jpg),其大小为N-k。从![](https://img.kancloud.cn/80/33/80339ac589f42f97131228e8a6f52069_40x14.jpg)中选择最好的矩,记为![](https://img.kancloud.cn/f1/3b/f13b04c0ac0e0a2a8740bb6d170e51ec_19x10.jpg)。 ![这里写图片描述](https://img.kancloud.cn/74/69/746966c50c143373e7f98b2fb16fd46c_566x154.jpg) 假如D共有1000个样本,那么可以选择其中900个![](https://img.kancloud.cn/80/33/80339ac589f42f97131228e8a6f52069_40x14.jpg),剩下的100个作为![](https://img.kancloud.cn/13/dd/13dda61bb54614a8280b36e509487068_28x14.jpg)。使用![](https://img.kancloud.cn/80/33/80339ac589f42f97131228e8a6f52069_40x14.jpg)训练模型,得到最佳的![](https://img.kancloud.cn/f1/3b/f13b04c0ac0e0a2a8740bb6d170e51ec_19x10.jpg),使用![](https://img.kancloud.cn/f1/3b/f13b04c0ac0e0a2a8740bb6d170e51ec_19x10.jpg)对![](https://img.kancloud.cn/13/dd/13dda61bb54614a8280b36e509487068_28x14.jpg)进行验证,得到如下Hoffding不等式: 假设有M种模型hypothesis set,![](https://img.kancloud.cn/13/dd/13dda61bb54614a8280b36e509487068_28x14.jpg)的数量为K,那么从每种模型m中得到一个在![](https://img.kancloud.cn/13/dd/13dda61bb54614a8280b36e509487068_28x14.jpg)上表现最好的矩,再横向比较,从M个矩中选择一个最好的![](https://img.kancloud.cn/18/41/1841a81e0cae9a806abba95319a711da_22x8.jpg)作为我们最终得到的模型。 ![这里写图片描述](https://img.kancloud.cn/83/51/835154d4ccd80cb6e8d33c8b3e6a6322_320x49.jpg) 现在由于数量为N的总样本D的一部分K作为验证集,那么只有N-k个样本可供训练。从![](https://img.kancloud.cn/80/33/80339ac589f42f97131228e8a6f52069_40x14.jpg)中得到最好的![](https://img.kancloud.cn/6a/37/6a3763934ae3ca97a4e7842acba5d128_23x10.jpg),而总样本D对应的最好的矩为![](https://img.kancloud.cn/6a/37/6a3763934ae3ca97a4e7842acba5d128_23x10.jpg)。根据之前的leraning curve很容易知道,训练样本越多,得到的模型越准确,其hypothesis越接近target function,即D的![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)比![](https://img.kancloud.cn/80/33/80339ac589f42f97131228e8a6f52069_40x14.jpg)的![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)要小: ![这里写图片描述](https://img.kancloud.cn/c5/d0/c5d06a8d31f4c872e7a26b14132f889e_292x107.jpg) 所以,我们通常的做法是通过![](https://img.kancloud.cn/13/dd/13dda61bb54614a8280b36e509487068_28x14.jpg)来选择最好的矩![](https://img.kancloud.cn/6a/37/6a3763934ae3ca97a4e7842acba5d128_23x10.jpg)对应的模型![](https://img.kancloud.cn/2b/46/2b46d2ec0ad1409a33acff21456e55a6_20x12.jpg),再对整体样本集D使用该模型进行训练,最终得到最好的矩![](https://img.kancloud.cn/6a/37/6a3763934ae3ca97a4e7842acba5d128_23x10.jpg)。 总结一下,使用验证集进行模型选择的整个过程为:先将D分成两个部分,一个是训练样本![](https://img.kancloud.cn/80/33/80339ac589f42f97131228e8a6f52069_40x14.jpg),一个是验证集![](https://img.kancloud.cn/13/dd/13dda61bb54614a8280b36e509487068_28x14.jpg)。若有M个模型,那么分别对每个模型在![](https://img.kancloud.cn/80/33/80339ac589f42f97131228e8a6f52069_40x14.jpg)上进行训练,得到矩![](https://img.kancloud.cn/ba/c0/bac00faa5d1ba3f8ef86b9bc051d9758_19x13.jpg),再用![](https://img.kancloud.cn/13/dd/13dda61bb54614a8280b36e509487068_28x14.jpg)对每个![](https://img.kancloud.cn/ba/c0/bac00faa5d1ba3f8ef86b9bc051d9758_19x13.jpg)进行验证,选择表现最好的矩![](https://img.kancloud.cn/6a/37/6a3763934ae3ca97a4e7842acba5d128_23x10.jpg),则该矩对应的模型被选择。最后使用该模型对整个D进行训练,得到最终的![](https://img.kancloud.cn/6a/37/6a3763934ae3ca97a4e7842acba5d128_23x10.jpg)。下图展示了整个模型选择的过程: ![这里写图片描述](https://img.kancloud.cn/ad/4b/ad4b21397189121e9dc162946bf81b08_287x332.jpg) 不等式关系满足: 下面我们举个例子来解释这种模型选择的方法的优越性,假设有两个模型:一个是5阶多项式![](https://img.kancloud.cn/7a/2c/7a2c964e4cf12d84e867903e760b4527_26x15.jpg),一个是10阶多项式![](https://img.kancloud.cn/53/80/5380def45aaadba61719638d9328bac5_31x16.jpg)。通过不使用验证集和使用验证集两种方法对模型选择结果进行比较,分析结果如下: ![这里写图片描述](https://img.kancloud.cn/74/46/744663110896bca2fb789df18e2ce703_366x280.jpg) 图中,横坐标表示验证集数量K,纵坐标表示![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)大小。黑色水平线表示没有验证集,完全使用![](https://img.kancloud.cn/5b/cf/5bcf9eebe555c8380ea4c84aea710839_23x14.jpg)进行判断基准,那么![](https://img.kancloud.cn/53/80/5380def45aaadba61719638d9328bac5_31x16.jpg)更好一些,但是这种方法的![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)比较大,而且与K无关。黑色虚线表示测试集非常接近实际数据,这是一种理想的情况,其![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)很小,同样也与K无关,实际中很难得到这条虚线。红色曲线表示使用验证集,但是最终选取的矩是![](https://img.kancloud.cn/6a/37/6a3763934ae3ca97a4e7842acba5d128_23x10.jpg),其趋势是随着K的增加,它对应的![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)先减小再增大,当K大于一定值的时候,甚至会超过黑色水平线。蓝色曲线表示也使用验证集,最终选取的矩是![](https://img.kancloud.cn/6a/37/6a3763934ae3ca97a4e7842acba5d128_23x10.jpg),其趋势是随着K的增加,它对应的![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)先缓慢减小再缓慢增大,且一直位于红色曲线和黑色直线之下。从此可见,蓝色曲线对应的方法最好,符合我们之前讨论的使用验证集进行模型选择效果最好。 这里提一点,当K大于一定的值时,红色曲线会超过黑色直线。这是因为随着K的增大,![](https://img.kancloud.cn/13/dd/13dda61bb54614a8280b36e509487068_28x14.jpg)增大,但可供模型训练的![](https://img.kancloud.cn/80/33/80339ac589f42f97131228e8a6f52069_40x14.jpg)在减小,那得到的![](https://img.kancloud.cn/6a/37/6a3763934ae3ca97a4e7842acba5d128_23x10.jpg)不具有很好的泛化能力,即对应的![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)会增大,甚至当K增大到一定值时,比![](https://img.kancloud.cn/5b/cf/5bcf9eebe555c8380ea4c84aea710839_23x14.jpg)模型更差。 那么,如何设置验证集K值的大小呢?根据之前的分析: ![这里写图片描述](https://img.kancloud.cn/a4/61/a4618808c0f7de0ffa1392fb877177c2_566x71.jpg) 当K值很大时,![](https://img.kancloud.cn/4d/24/4d24643e6d4a16f2093805d591a1ff89_27x14.jpg),但是![](https://img.kancloud.cn/f1/3b/f13b04c0ac0e0a2a8740bb6d170e51ec_19x10.jpg)与![](https://img.kancloud.cn/f1/3b/f13b04c0ac0e0a2a8740bb6d170e51ec_19x10.jpg)相差很大;当K值很小是,![](https://img.kancloud.cn/f1/3b/f13b04c0ac0e0a2a8740bb6d170e51ec_19x10.jpg),但是![](https://img.kancloud.cn/4d/24/4d24643e6d4a16f2093805d591a1ff89_27x14.jpg)与![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)可能相差很大。所以有个折中的办法,通常设置![](https://img.kancloud.cn/5b/b2/5bb256517890ba92fcb8118b661c5df1_48x33.jpg)。值得一提的是,划分验证集,通常并不会增加整体时间复杂度,反而会减少,因为![](https://img.kancloud.cn/80/33/80339ac589f42f97131228e8a6f52069_40x14.jpg)减少了。 ### **三、Leave-One-Out Cross Validation** 假如考虑一个极端的例子,k=1,也就是说验证集大小为1,即每次只用一组数据对![](https://img.kancloud.cn/f1/3b/f13b04c0ac0e0a2a8740bb6d170e51ec_19x10.jpg)进行验证。这样做的优点是![](https://img.kancloud.cn/f1/3b/f13b04c0ac0e0a2a8740bb6d170e51ec_19x10.jpg),但是![](https://img.kancloud.cn/4d/24/4d24643e6d4a16f2093805d591a1ff89_27x14.jpg)与![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)可能相差很大。为了避免![](https://img.kancloud.cn/4d/24/4d24643e6d4a16f2093805d591a1ff89_27x14.jpg)与![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)相差很大,每次从D中取一组作为验证集,直到所有样本都作过验证集,共计算N次,最后对验证误差求平均,得到![](https://img.kancloud.cn/c8/aa/c8aaa1ba9eebec3bf2da34460c724dc6_84x18.jpg),这种方法称之为留一法交叉验证,表达式为: 这样求平均的目的是为了让![](https://img.kancloud.cn/c8/aa/c8aaa1ba9eebec3bf2da34460c724dc6_84x18.jpg)尽可能地接近![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)。 下面用一个例子图解留一法的过程: ![这里写图片描述](https://img.kancloud.cn/aa/71/aa716e12e3863fd98cf0c50264bcfb01_566x347.jpg) 如上图所示,要对二维平面上的三个点做拟合,上面三个图表示的是线性模型,下面三个图表示的是常数模型。对于两种模型,分别使用留一交叉验证法来计算![](https://img.kancloud.cn/43/80/43800452ee325390a59a222a3d077406_39x14.jpg),计算过程都是每次将一个点作为验证集,其他两个点作为训练集,最终将得到的验证误差求平均值,就得到了![](https://img.kancloud.cn/43/80/43800452ee325390a59a222a3d077406_39x14.jpg)和![](https://img.kancloud.cn/43/80/43800452ee325390a59a222a3d077406_39x14.jpg),比较两个值的大小,取值小对应的模型即为最佳模型。 ![这里写图片描述](https://img.kancloud.cn/37/39/3739b9d41af372c670990cd772ad604e_372x53.jpg) 接下来,我们从理论上分析Leave-One-Out方法的可行性,即![](https://img.kancloud.cn/c8/aa/c8aaa1ba9eebec3bf2da34460c724dc6_84x18.jpg)是否能保证![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)的矩足够好?假设有不同的数据集D,它的期望分布记为![](https://img.kancloud.cn/44/cd/44cdcb62db2af58f098705f91ca538b0_18x10.jpg),则其![](https://img.kancloud.cn/c8/aa/c8aaa1ba9eebec3bf2da34460c724dc6_84x18.jpg)可以通过推导,等于![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)的平均值。由于N-1近似为N,![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)的平均值也近似等于![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)的平均值。具体推导过程如下: ![这里写图片描述](https://img.kancloud.cn/61/ec/61ecfb75f08234cc4c2a99c1fd04c777_566x257.jpg) 最终我们得到的结论是![](https://img.kancloud.cn/c8/aa/c8aaa1ba9eebec3bf2da34460c724dc6_84x18.jpg)的期望值和![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)的期望值是相近的,这代表得到了比较理想的![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg),Leave-One-Out方法是可行的。 举一个例子,使用两个特征:Average Intensity和Symmetry加上这两个特征的非线性变换(例如高阶项)来进行手写数字识别。平面特征分布如下图所示: ![这里写图片描述](https://img.kancloud.cn/3c/63/3c631d8fc5a0c1f61b4531231a7316d3_302x296.jpg) Error与特征数量的关系如下图所示: ![这里写图片描述](https://img.kancloud.cn/46/17/4617a2f04f3aff68c41cb35aaace2509_414x337.jpg) 从图中我们看出,随着特征数量的增加,![](https://img.kancloud.cn/5b/cf/5bcf9eebe555c8380ea4c84aea710839_23x14.jpg)不断减小,![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)先减小再增大,虽然![](https://img.kancloud.cn/5b/cf/5bcf9eebe555c8380ea4c84aea710839_23x14.jpg)是不断减小的,但是它与![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)的差距越来越大,发生了过拟合,泛化能力太差。而![](https://img.kancloud.cn/71/f6/71f6e53be64f54109e174ca39d576fc4_23x14.jpg)与![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)的分布基本一致,能较好地反映![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)的变化。所以,我们只要使用Leave-One-Out方法得到使![](https://img.kancloud.cn/71/f6/71f6e53be64f54109e174ca39d576fc4_23x14.jpg)最小的模型,就能保证其![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)足够小。下图是分别使用![](https://img.kancloud.cn/5b/cf/5bcf9eebe555c8380ea4c84aea710839_23x14.jpg)和![](https://img.kancloud.cn/dd/0f/dd0f9962b91f91dfa644b8d9c6d853d2_29x14.jpg)进行训练得到的分类曲线: ![这里写图片描述](https://img.kancloud.cn/83/c5/83c5273d69ff36ad2763d18e82090e3c_538x309.jpg) 很明显可以看出,使用![](https://img.kancloud.cn/5b/cf/5bcf9eebe555c8380ea4c84aea710839_23x14.jpg)发生了过拟合,而![](https://img.kancloud.cn/43/80/43800452ee325390a59a222a3d077406_39x14.jpg)分类效果更好,泛化能力强。 ### **四、V-Fold Cross Validation** 接下来我们看看Leave-One-Out可能的问题是什么。首先,第一个问题是计算量,假设N=1000,那么就需要计算1000次的![](https://img.kancloud.cn/43/80/43800452ee325390a59a222a3d077406_39x14.jpg),再计算其平均值。当N很大的时候,计算量是巨大的,很耗费时间。第二个问题是稳定性,例如对于二分类问题,取值只有0和1两种,预测本身存在不稳定的因素,那么对所有的![](https://img.kancloud.cn/43/80/43800452ee325390a59a222a3d077406_39x14.jpg)计算平均值可能会带来很大的数值跳动,稳定性不好。所以,这两个因素决定了Leave-One-Out方法在实际中并不常用。 针对Leave-One-Out的缺点,我们对其作出了改进。Leave-One-Out是将N个数据分成N分,那么改进措施是将N个数据分成V份(例如V=10),计算过程与Leave-One-Out相似。这样可以减少总的计算量,又能进行交叉验证,得到最好的矩,这种方法称为V-折交叉验证。其实Leave-One-Out就是V-折交叉验证的一个极端例子。 所以呢,一般的Validation使用V-折交叉验证来选择最佳的模型。值得一提的是Validation的数据来源也是样本集中的,所以并不能保证交叉验证的效果好,它的模型一定好。只有样本数据越多,越广泛,那么Validation的结果越可信,其选择的模型泛化能力越强。 ### **五、总结** 本节课主要介绍了Validation验证。先从如何选择一个好的模型开始切入,例如使用![](https://img.kancloud.cn/5b/cf/5bcf9eebe555c8380ea4c84aea710839_23x14.jpg)、![](https://img.kancloud.cn/d2/84/d284a15cfc886dddd01bfa54b2211a1e_30x14.jpg)都是不太好的,最终使用![](https://img.kancloud.cn/4d/24/4d24643e6d4a16f2093805d591a1ff89_27x14.jpg)来进行模型选择。然后详细介绍了Validation的过程。最后,介绍了Leave-One-Out和V-Fold Cross两种验证方法,比较它们各自的优点和缺点,实际情况下,V-Fold Cross更加常用。 **_注明:_** 文章中所有的图片均来自台湾大学林轩田《机器学习基石》课程