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頁的論文吧!!!



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