機(jī)器學(xué)習(xí)第17篇 - 特征變量篩選(1)
高維數(shù)據(jù)包括的檢測(cè)變量越來(lái)越多,如基因表達(dá)數(shù)據(jù)中檢測(cè)到的基因數(shù)目、擴(kuò)增子測(cè)序中的OTU數(shù)目等。在訓(xùn)練模型時(shí)通常需要先對(duì)數(shù)據(jù)去冗余,提取一些關(guān)鍵變量。這不只可以加速模型的構(gòu)建還可以降低模型的復(fù)雜度,使其更易于解釋 (而不只是一個(gè)預(yù)測(cè)黑盒子)。同時(shí)也有助于提高模型的性能(或在不損失太多模型性能的基礎(chǔ)上獲得更簡(jiǎn)單的模型),降低過(guò)擬合問(wèn)題的出現(xiàn)。
主成分分析、奇異值分解是常用的降維方式。如PCA通過(guò)把原始變量進(jìn)行線(xiàn)性組合獲得主成分就是一個(gè)特征選擇的過(guò)程。在使用tSNE算法進(jìn)行單細(xì)胞聚類(lèi)時(shí)使用的就是核心的主成分。但PCA等未考慮原始特征值與其所屬分類(lèi)或響應(yīng)值的關(guān)系。因此并不適用于所有的情況。
有一些算法如隨機(jī)森林等在構(gòu)建模型時(shí)可以自己選擇有最合適的分類(lèi)或預(yù)測(cè)能力的特征集合。前面隨機(jī)森林算法之理論概述提到,基于隨機(jī)置換的變量的整體重要性得分(ACS)是評(píng)估變量重要性的一個(gè)比較可靠的方式。但這種方式獲得的ACS Z-score只能用于排序確定哪些變量更重要,但不能根據(jù)統(tǒng)計(jì)顯著性獲得所有重要的變量。因此如果我們的目的還希望鑒定出哪些特征對(duì)分類(lèi)或預(yù)測(cè)有貢獻(xiàn)時(shí),還需要借助其他的方式。
特征遞歸消除(RFE, recursive feature elimination)是一個(gè)常用的方法;它基于模型預(yù)測(cè)性能評(píng)估指標(biāo)如準(zhǔn)確性等選擇一個(gè)性能較佳的最小集合的特征變量。它首先應(yīng)用所有的特征變量構(gòu)建模型,然后移除對(duì)模型最不重要的一定比例的變量再次構(gòu)建模型;持續(xù)迭代直至獲得準(zhǔn)確性最高的模型。
在后續(xù)應(yīng)用預(yù)測(cè)模型時(shí),只需要使用數(shù)目比較少的變量,這樣的好處是便于新樣品的變量檢測(cè)。但在臨床應(yīng)用時(shí),不同的數(shù)據(jù)集包含的變量可能相差較大,共有的變量較少,但卻可以獲得相似的預(yù)測(cè)性能。其中一個(gè)主要原因是組學(xué)數(shù)據(jù)中,很多變量之間是相關(guān)性比較強(qiáng)的。因此不同的變量集合可能會(huì)獲得同樣的預(yù)測(cè)性能。而在構(gòu)建模型時(shí)保留這些相關(guān)的冗余變量可以獲得更穩(wěn)定、準(zhǔn)確的預(yù)測(cè)結(jié)果,同時(shí)對(duì)病理機(jī)制也能提供更全面的解釋。
其它變量選擇方法不去除冗余變量,而是通過(guò)估計(jì)不相干變量的重要性值的分布,選擇具有顯著更高重要性值的變量作為預(yù)測(cè)變量。這些方法越來(lái)越受歡迎。包括permutation (Perm)和它的參數(shù)化版本Altmann,Boruta, r2VIM (recurrent relative variable importance)和Vita。在2019年的一篇基于組學(xué)數(shù)據(jù)的評(píng)估文章中得出結(jié)論:Boruta和Vita算法的穩(wěn)定性最好,適合分析高維數(shù)據(jù)。Vita的計(jì)算速度比Boruta快很多更適合大數(shù)據(jù)集,但只有Boruta可用于低維數(shù)據(jù)。(https://doi.org/10.1093/bib/bbx124)
| Abbreviation | Name | Goal | Approach | R package | Citationsa |
|---|---|---|---|---|---|
| Altmann | Altmann | All relevant variables | Permutation of outcome; parametric P-value | R code on first author’s Web site (http://www.altmann.eu/documents/PIMP.R) Implemented in ranger package (https://cran.r-project.org/web/packages/ranger/index.html) and vita package (https://cran.r-project.org/web/packages/vita/index.html) | 511 |
| Boruta | Boruta | All relevant variables | Importance significantly larger than those of shadow variables | Boruta (https://cran.r-project.org/web/packages/Boruta/index.html) | 1271 |
| Perm | Permutation | All relevant variables | Permutations of outcome; nonparametric P-value | No specific implementation for RF | – |
| r2VIM | Recurrent relative variable importance | All relevant variables | Relative importance based on minimal observed importance; several runs of RF | r2VIM (http://research.nhgri.nih.gov/software/r2VIM) | 35 |
| RFE | Recursive feature elimination | Minimal set | RF with smallest error based on iterative removal of least important variables | varSelRF (https://cran.r-project.org/web/packages/varSelRF/index.html) | 2668 |
| Vita | Vita | All relevant variables | P-values based on empirical null distribution based on non-positive importance scores calculated using hold-out approach | Vita (https://cran.r-project.org/web/packages/vita/index.html) Implemented in ranger package (https://cran.r-project.org/web/packages/ranger/index.html) | 82 |
下面我們就逐個(gè)實(shí)戰(zhàn)比較下這些方法!機(jī)器學(xué)習(xí)系列教程
從隨機(jī)森林開(kāi)始,一步步理解決策樹(shù)、隨機(jī)森林、ROC/AUC、數(shù)據(jù)集、交叉驗(yàn)證的概念和實(shí)踐。
文字能說(shuō)清的用文字、圖片能展示的用、描述不清的用公式、公式還不清楚的寫(xiě)個(gè)簡(jiǎn)單代碼,一步步理清各個(gè)環(huán)節(jié)和概念。
再到成熟代碼應(yīng)用、模型調(diào)參、模型比較、模型評(píng)估,學(xué)習(xí)整個(gè)機(jī)器學(xué)習(xí)需要用到的知識(shí)和技能。
機(jī)器學(xué)習(xí)算法-隨機(jī)森林之決策樹(shù)R 代碼從頭暴力實(shí)現(xiàn)(2)
機(jī)器學(xué)習(xí)算法-隨機(jī)森林之決策樹(shù)R 代碼從頭暴力實(shí)現(xiàn)(3)
