subset selection

这几天看the elements of statistical learning,觉得非常吃力,可能自己水平还不够,觉得这书不适合初学者看,就从Subset Selection 这一章节来说,本文说了主要说了三个点,best-subset selection,stepwise selection and stagewise selection,但是后面两个并没有特别详细的做法步骤,看的似懂非懂,后来在网上各种查,花钱买vpn上谷歌,我也是蛮拼的。

本节主要想表述选取子集的方法,就是在很多个variable里面选择其中比较好的几个来regression,而不是用所有的variable来做regression,那如何衡量选取的好坏呢?还是用那个最小二乘的方法。

1best-subset selection:

这个方法显得非常直观,对于选取k个variable,就是花极高的复杂度,来枚举所有情况求出最小的,下图很好的说明了这个:


红色点为当前k个variable能达到的最小二乘,灰色点为其他非最优的情况,值得说明的两点是:

1 红点的值随着k增大肯定是不递增的,可以思考下为什么?

2 若k的时候求最优选择了某个variable,那么大于k的情况求最优不一定会选择该variable。

2 stepwise selection:

这个方法是一个基于贪心的方法,但是他只是局部最优,并不是全局最优的,但是在一定程度上,已经非常接近全局的最优解了。它又可以分为两种,一种是forward,另外一种是backward,前一种是在空的variableset中add variable,后一种则是满的variableset中delete variable,详细说明下前一种,过程如下:

1初始每个特征的系数为0,初始残差为y。

2每次从没被选过的variable中选择与y相关性最大的variable,加入到当前的集合中,然后对新的集合做regression,做完regression后又产生了新的残差赋给y,重复这一步,直到选了k个variable。

值得说明的是,每次加入一个新的variable,对于入选集合中的所有variable会做一下regression,所以所有variable的系数都会改变。

对于backward,则是刚好相反,每次都是从集合中删去相关性最小的variable,直到只剩下k个variable。

这里说明下,k是做这个selection之前要确定的一个数。

3 stagewise selection:

这个方法和上一个有一些类似,但是又有很大不同,每次也是根据和残差相关性最大来选择一个variable,但是每次选择都是从所有variable集合中选,而不是在没被选择过的variable中选,那么显然,这样选过了又会被选到,就会大大的增加这个过程的执行时间。过程如下:

1初始每个特征的系数为0,初始残差为y。

2每次从所有feature中选择与y相关性最大的variable,然后对选入的variable按照这个variable做regression的方向移动一段较小的位置,之后又产生了新的残差赋给y,重复这一步。




附一张截图,可以看出这四种方法的关系,由于stepwise selection并不是全局最优,但是他能节省很多计算时间并且非常接近最优,也是一种不错的方法,而对于stagewise selection,可以看到它递减得特别慢,这是因为它每一个step走的非常少。

另外,下次我想写Least angle regression,希望我能尽量理解那篇93页的论文吧!!!



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章