機(jī)器學(xué)習(xí)第17篇 - 特征變量篩選(1)
高維數(shù)據(jù)包括的檢測變量越來越多,如基因表達(dá)數(shù)據(jù)中檢測到的基因數(shù)目、擴(kuò)增子測序中的OTU數(shù)目等。在訓(xùn)練模型時(shí)通常需要先對數(shù)據(jù)去冗余,提取一些關(guān)鍵變量。這不只可以加速模型的構(gòu)建還可以降低模型的復(fù)雜度,使其更易于解釋 (而不只是一個(gè)預(yù)測黑盒子)。同時(shí)也有助于提高模型的性能(或在不損失太多模型性能的基礎(chǔ)上獲得更簡單的模型),降低過擬合問題的出現(xiàn)。
主成分分析、奇異值分解是常用的降維方式。如PCA通過把原始變量進(jìn)行線性組合獲得主成分就是一個(gè)特征選擇的過程。在使用tSNE算法進(jìn)行單細(xì)胞聚類時(shí)使用的就是核心的主成分。但PCA等未考慮原始特征值與其所屬分類或響應(yīng)值的關(guān)系。因此并不適用于所有的情況。
有一些算法如隨機(jī)森林等在構(gòu)建模型時(shí)可以自己選擇有最合適的分類或預(yù)測能力的特征集合。前面隨機(jī)森林算法之理論概述提到,基于隨機(jī)置換的變量的整體重要性得分(ACS)是評估變量重要性的一個(gè)比較可靠的方式。但這種方式獲得的ACS Z-score只能用于排序確定哪些變量更重要,但不能根據(jù)統(tǒng)計(jì)顯著性獲得所有重要的變量。因此如果我們的目的還希望鑒定出哪些特征對分類或預(yù)測有貢獻(xiàn)時(shí),還需要借助其他的方式。
特征遞歸消除(RFE, recursive feature elimination)是一個(gè)常用的方法;它基于模型預(yù)測性能評估指標(biāo)如準(zhǔn)確性等選擇一個(gè)性能較佳的最小集合的特征變量。它首先應(yīng)用所有的特征變量構(gòu)建模型,然后移除對模型最不重要的一定比例的變量再次構(gòu)建模型;持續(xù)迭代直至獲得準(zhǔn)確性最高的模型。
在后續(xù)應(yīng)用預(yù)測模型時(shí),只需要使用數(shù)目比較少的變量,這樣的好處是便于新樣品的變量檢測。但在臨床應(yīng)用時(shí),不同的數(shù)據(jù)集包含的變量可能相差較大,共有的變量較少,但卻可以獲得相似的預(yù)測性能。其中一個(gè)主要原因是組學(xué)數(shù)據(jù)中,很多變量之間是相關(guān)性比較強(qiáng)的。因此不同的變量集合可能會獲得同樣的預(yù)測性能。而在構(gòu)建模型時(shí)保留這些相關(guān)的冗余變量可以獲得更穩(wěn)定、準(zhǔn)確的預(yù)測結(jié)果,同時(shí)對病理機(jī)制也能提供更全面的解釋。
其它變量選擇方法不去除冗余變量,而是通過估計(jì)不相干變量的重要性值的分布,選擇具有顯著更高重要性值的變量作為預(yù)測變量。這些方法越來越受歡迎。包括permutation (Perm)和它的參數(shù)化版本Altmann,Boruta, r2VIM (recurrent relative variable importance)和Vita。在2019年的一篇基于組學(xué)數(shù)據(jù)的評估文章中得出結(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ī)森林開始,一步步理解決策樹、隨機(jī)森林、ROC/AUC、數(shù)據(jù)集、交叉驗(yàn)證的概念和實(shí)踐。
文字能說清的用文字、圖片能展示的用、描述不清的用公式、公式還不清楚的寫個(gè)簡單代碼,一步步理清各個(gè)環(huán)節(jié)和概念。
再到成熟代碼應(yīng)用、模型調(diào)參、模型比較、模型評估,學(xué)習(xí)整個(gè)機(jī)器學(xué)習(xí)需要用到的知識和技能。
