特征選擇是機(jī)器學(xué)習(xí)非常重要的一環(huán)。之所以要考慮特征選擇蔬将,是因?yàn)闄C(jī)器學(xué)習(xí)經(jīng)常面臨過(guò)擬合的問(wèn)題。
過(guò)擬合的表現(xiàn)是模型參數(shù)太貼合訓(xùn)練集數(shù)據(jù),模型在訓(xùn)練集上效果很好而在測(cè)試集上表現(xiàn)不好屋休,也就是在高方差。簡(jiǎn)言之模型的泛化能力差备韧。過(guò)擬合的原因是模型對(duì)于訓(xùn)練集數(shù)據(jù)來(lái)說(shuō)太復(fù)雜劫樟,要解決過(guò)擬合問(wèn)題,一般考慮如下方法:
- 收集更多數(shù)據(jù)
- 通過(guò)正則化引入對(duì)復(fù)雜度的懲罰
- 選擇更少參數(shù)的簡(jiǎn)單模型
- 對(duì)數(shù)據(jù)降維
其中第1條一般是很難做到的织堂,這篇我們主要梳理第2和第4點(diǎn)
通過(guò)正則化:
對(duì)于參數(shù)模型(parametric model)叠艳,最簡(jiǎn)單直接的方法是L1正則化來(lái)降維。參數(shù)模型是什么易阳?是可由公式表達(dá)的附较、有或
參數(shù)的模型。這種模型在訓(xùn)練集上學(xué)習(xí)得到一個(gè)公式表達(dá)式潦俺,對(duì)于新的測(cè)試數(shù)據(jù)拒课,可以直接由表達(dá)式算出預(yù)測(cè)結(jié)果,預(yù)測(cè)的時(shí)候不再需要訓(xùn)練集事示。參數(shù)模型的代表有邏輯回歸早像,線性回歸,神經(jīng)網(wǎng)絡(luò)等肖爵。正則化分為L(zhǎng)1和L2卢鹦, L1用L1范數(shù)最小化代價(jià)函數(shù)的SSE,可以把某些特征壓縮到0劝堪,相當(dāng)于特征選擇了法挨。而L2用L2范數(shù)最小化代價(jià)函數(shù)的SSE,只能把某些特征壓縮到很小的值幅聘,但不可能是0凡纳。
對(duì)于非參數(shù)模型(nonparametric model) , 很有用的辦法是通過(guò)特征選擇來(lái)降維帝蒿。
降維有兩種方式:特征選擇和特征抽取荐糜。特征選擇是直接選特征子集(本篇寫(xiě)的是特征選擇)。特征抽取是把特征映射到低維空間(PCA是代表之一,在另一篇里已經(jīng)寫(xiě)過(guò)了)暴氏。
特征選擇有三個(gè)層面的方法:這里分別介紹延塑。
-
Wrapper方法。屬于Wrapper的還有exhaustive search BFS (Breadth First Search), Non-exhaustive search (Branch and Bound Search), heuristic search(SFS, SBS, SDS), Random Search (RGSS) . 總體來(lái)講答渔,Wrapper的實(shí)現(xiàn)原理是:基于hold-out方法关带,對(duì)于每一個(gè)待選的特征子集,都在訓(xùn)練集上訓(xùn)練一遍模型沼撕,然后在測(cè)試集上根據(jù)誤差大小選擇出特征子集宋雏。
這里重點(diǎn)寫(xiě)heuristic search(SFS, SBS, SDS)里的SBS。 heuristic search一般也被稱(chēng)為Sequential feature selection务豺。這是一種貪婪搜索算法磨总,可以將d維數(shù)據(jù)篩選到k維。它可以去除無(wú)關(guān)的特征或嗓音笼沥,保留對(duì)目標(biāo)最有用的特征蚪燕, 它的目標(biāo)就是減少誤差(模型方差),它其中又以Sequential Backward Selection(SBS)為代表奔浅。
SBS的工作原理是:從特征全集里逐個(gè)去除單個(gè)特征馆纳,直至剩余的特征子集達(dá)到期望的維度。那么如何逐個(gè)去除呢汹桦?我們先定義一個(gè)標(biāo)準(zhǔn)函數(shù)J鲁驶,借助J的變化來(lái)判斷每一步應(yīng)該去除哪個(gè)特征。一般而言营勤,J就是模型的代價(jià)函數(shù)灵嫌,這里記住我們降維的最終目標(biāo)是讓代價(jià)函數(shù)最優(yōu)(最小化)壹罚。所以最簡(jiǎn)單的方法可以是:葛作,我們用作為判斷標(biāo)準(zhǔn),每一步的時(shí)候哪個(gè)特征讓這個(gè)標(biāo)準(zhǔn)最大化猖凛,我們就去除哪個(gè)標(biāo)準(zhǔn)赂蠢。或者可以這樣理解辨泳,我們?cè)诿恳徊綍r(shí)選擇去掉的是最不會(huì)導(dǎo)致模型變更差的那個(gè)特征虱岂。
但是SBS在SKLEARN里沒(méi)有現(xiàn)成的包。這里給出偽代碼:
Screen Shot 2018-09-05 at 10.19.28 AM.png Embedded 方法
故名思義菠红,Embedded是指特征選擇算法是學(xué)習(xí)算法的一部分第岖,已經(jīng)被整合進(jìn)學(xué)習(xí)算法里了。最具代表性的如決策樹(shù)算法试溯,因?yàn)樗旧砭褪腔谛畔⒃鲆娴囊环N算法蔑滓,一個(gè)特征里包括的同一分類(lèi)的孩子節(jié)點(diǎn)越多,這個(gè)特征就越顯著(白種人里有美英法意等等,黃種人里有中日韓等等键袱,人的分類(lèi)可以根據(jù)膚色往下細(xì)分燎窘。所以膚色就是決策樹(shù)首先考慮的一個(gè)顯著特征)。所以蹄咖,決策樹(shù)本身的生成就是在做特征選擇褐健。決策樹(shù)有ID3, C4.5, CART樹(shù)。其中ID3只用于連續(xù)型變量澜汤,C4.5和CART樹(shù)可以用于連續(xù)變量也可以用于分類(lèi)變量蚜迅。Filter方法
就是對(duì)特征打分,再根據(jù)閾值選擇特征银亲。Filter方法獨(dú)立于模型本身慢叨,它的結(jié)果比Wrapper方法更有普適性,計(jì)算性能好于Wrapper务蝠,所以有時(shí)候它被用于Wrapper方法之前的預(yù)處理拍谐。
Filter方法包括:distance metrics, correlation, mutual information, and consistency metrics
其中correlation方法是計(jì)算特征之間的獨(dú)立性。通常用皮爾遜相關(guān)系數(shù)為指標(biāo)馏段。mutual information比correlation更有普適性轩拨,它描述了p(x,y)和p(x)*p(y)有多么相關(guān)。consistency metrics通常用卡方檢驗(yàn)院喜,其思想是找出和預(yù)測(cè)目標(biāo)不相關(guān)的特征亡蓉,所以其過(guò)程是計(jì)算每個(gè)特征和預(yù)測(cè)目標(biāo)的卡方統(tǒng)計(jì)量。
福利:
貪婪搜索算法(greedy search)是局部最優(yōu)算法喷舀。與之對(duì)應(yīng)的是窮舉算法 (exhaustive search)砍濒,窮舉算法是遍歷所有可能的組合達(dá)到全局最優(yōu)級(jí),但是計(jì)算復(fù)雜度是2^n硫麻,一般是不太實(shí)際的算法爸邢。