Stanford大学Statistical Learning 公开课——Resampling Methods

年初的时候希望今年多学一点python,但是没想到Stanford大学的公开课程这么有意思,提供免费教材及data,免费的教材写得通俗易懂:An Introduction to Statistical Learning with Applications in R。看名字就知道是用R来完成实验的,搞得我欲罢不能,花了些时间来学,实际上没看什么视频,主要看ppt和教程中的实验部分,有点意思,希望能跟完...

其中第1~3部分我很快略过了,从第4部分开始,记录一点笔记,纯流水帐。

Lec5 Resampling Methods

Resampling methods are an indispensable tool in modern statistics. They involve repeatedly drawing samples from a training set and refitting a model of interest on each sample in order to obtain additional information about the fitted model.

为什么有resampling这个奇怪的东西存在呢?也许是过去获得数据的成本太高了?Wikipedia上有个相关的词条,介绍了很多方法,不过看得迷迷糊糊的。介绍了两种方法two resampling methods:cross-validation and the bootstrap.

  • Cross validation

Wiki上居然有中文词条,但是不如一个中文博客讲得很详细。大概意思是有一堆数据,把其中一部分作为train set,另一部分作为validation set,那么如何去选择哪些作为train哪些作为validation就很重要了,为了保证结论能反应真实情况,研究出了很多种方法,比如K-fold Cross-validation(K-fold CV),把数据分成K份,其中1份作为validation set,剩下的K-1份就是train set,那么让这K份数据中的每一份数据都当一次validation set,那么最后的结果就比较容易让人接受了。实际上关于CV的几种方法均可以认为是K-fold的变形,比如Hold-out Method可以认为是2-fold CV,而Leave-One-Out Cross Validation(LOOCV)可以认为是n-fold CV.

这么做的目的是什么呢?用train set对分类器进行训练,利用volidation来测试模型(model),以此来做为评价分类器的性能指标,实质也就是用来评价model的好坏的。比如说选择的高阶多项式模型中,到底该用几阶?看上去有道理,不过感觉要完成这样一项工作,需要的计算量不小。

需要注意的问题是,只有train set才可以用在model的训练过程中,validation set则必须在模式完成之后才被用来评估模式优劣的依据。也就是说,train set和validation set必须要分开,不能有数据既属于train又属于validation。

  • Bootstrap

似乎搞明白了什么是Bootstrap。有一个初始数据集data,假如数据大小是N,通过Bootstrap从数据集中抽取出N个数据,这N个数据有可能和原来的数据集一模一样(当N很大时,这种可能性比较小),也可能不一样,但新数据集中的任意数据均来自原来的数据集,比如其中有x个data[i],有y个data[j],但是没有data[k],只要满足总数等于N,且每一个数据都来自原始的data数据集(Each bootstrap data set contains n observations, sampled with replacement from the original data set),也就是不需要去重新收集新的数据了。通过多次抽取,比如100次、1000次抽取,得到的每一个新数据集都可以用来做各种估计和运算,最后将所有的抽样的估计值进行算术平均,会很接近真实值,标准误SE(standard error)也很低。

Bootstrap需要谨慎应用:In more complex data situations, figuring out the appropriate way to generate bootstrap samples can require some thought.

  • In cross-validation, each of the K validation folds is distinct from the other K-1 folds used for training: there is no overlap. This is crucial for its success.

  • To estimate prediction error using the bootstrap, we could think about using each bootstrap dataset as our training sample, and the original sample as our validation sample.

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注