龐泰吾 胡春燕 尹鐘



摘? 要: 快速地建立預測模型并且完成準確的分類在某些特殊的醫療診斷場合下具有重要的意義。從連續特征離散化入手,本文提出了一種改進的隨機森林算法。之后使用改進的算法建立了分類模型,并在三個常用的醫療數據集上進行了實驗。實驗結果表明改進的隨機森林算法不僅運行時間顯著縮減,同時預測精度也得到了提升。更進一步的,初始的連續特征經過離散化之后變得簡潔明了,這可以方便研究人員的理解。
關鍵詞: 隨機森林;連續特征離散化;決策樹;算法改進;醫療診斷;分類算法
中圖分類號: TP301.6 ???文獻標識碼: A??? DOI:10.3969/j.issn.1003-6970.2020.07.032
本文著錄格式:龐泰吾,胡春燕,尹鐘. 一種改進的隨機森林在醫療診斷中的應用[J]. 軟件,2020,41(07):159-163
An Improved Random Forest for Medical Diagnosis
PANG Tai-wu, HU Chun-yan, YIN Zhong
(School of Optical-Electrical and Computer Engineering, University of Shanghai for Science and Technology, Shanghai 200093, China)
【Abstract】: The rapid building of predictive models and accurate classification is of great significance in some special medical diagnosis situations. Based on the discretization of continuous features, an improved random forest algorithm was proposed in this paper. Then the classification model was built by using the improved algorithm and experiments were carried out on three widely used medical data sets. Experimental results show that the improved random forest algorithm not only reduces the running time significantly, but also improves the prediction accuracy. Furthermore, discretization makes the initial continuous feature concise, which is convenient for researchers to understand.
【Key words】: Random forest; Discretization of continuous features; Decision tree; Algorithm improvement; Medical diagnosis; Classification algorithm
0? 引言
機器學習可謂當下最炙手可熱的人工智能技術。如何將它與傳統行業相結合成為了許多企業所面臨的新課題。機器學習可以看作一個通過挖掘數據中存在的潛在規律來構建學習器的過程。學習器通常可以分為淺層網絡與深層網絡兩種。前者是由一些傳統的機器學習方法構建的,如邏輯回歸、支持向量機等。它們雖然結構簡單,訓練省時,且針對小樣本數據也有不錯的預測精度,但卻普遍存在著過擬合的問題[1]。深層網絡包括結構各異的人工神經網絡(Artificial Neural Network,ANN),如卷積神經網絡、循環神經網絡等。ANN相較于傳統學習器更能挖掘出數據背后的本質規律,從而達到更好的學習效果。但是ANN具有眾多的超參數。實現對這些參數的精確調控需要大量的數據作為支撐。而獲得大量的標記樣本往往并不是一件容易的事。
為了解決數據樣本較少和淺層網絡存在的過擬合問題,集成學習是一個不錯的選擇。它是一種將多個弱學習器進行整合從而得到更好預測效果的方法[2]。其主要包括三種構造思想:bagging[3]、boosting[4]和stacking[5]。隨機森林(Random Forest,RF)作為bagging方法的代表,已經在軟件工程[6]、機械設計制造[7]、模式識別[8]、金融科技[9]等諸多領域取得了廣泛的應用。因為醫療數據采集比較困難且涉及患者隱私,所以樣本規模通常不大。這便給RF提供了廣泛的應用前景[10-11]。但RF構建了多個學習器,所以它的運行效率顯著低于單個淺層網絡。而在一些特殊的情況下,時間是最重要的評估因素。同時,RF的預測精度還有進一步提升的空間。據此,本文提出一種基于連續屬性離散化的改進方法,力求在保證模型預測精度的同時,使模型的訓練時間盡可能地縮短。更進一步的,離散化也可以為連續數據提供一個簡明的概括,從而方便研究人員的理解。
1? 算法研究
隨機森林是多個決策樹集成的產物。因為每棵樹的特性各不相同,即針對測試集的表現各有千秋。所以將它們進行結合可以顯著地降低結果方差,從使模型的整體預測精度得到提升。據此,本文首先對決策樹的有關概念進行闡述。
1.1? 決策樹
決策樹是一種經典的學習器,它由根節點、葉子節點、中間節點及各節點之間的路徑組成。其中節點表示若干樣本的集合,而路徑表示某種分類的規則。根據節點分裂方法的不同,現在廣泛使用的決策樹包括C4.5和CART(Classification And Regression Tree)兩種。本文中的隨機森林是使用CART構建的。該種樹采取Gini系數作為節點分裂的指標。CART的生成過程如下。
計算當前節點中樣本的Gini系數可表示為。
式中Sr表示節點的樣本集,n表示類標的種數,Pi表示類標為i的樣本占總樣本的比例。之后分別計算每種劃分情況下的Gini系數,下式以一個二元屬性x為例。
式中|Sx1|表示x屬性值為1的樣本個數。接著選擇Gini系數最小的屬性作為節點劃分的依據。需要說明的是,針對連續屬性,CART會先將其離散化之后再按照離散變量處理。最終以遞歸的形式重復上述步驟直到決策樹的完全構建。
觀察上述過程不難看出,決策樹每一步的分裂都依據了貪婪的思想,這便使其很容易陷入到局部最優中。同時從根節點到葉子節點的路徑往往非常復雜,這使得決策樹對噪聲很敏感,且容易出現過擬合現象。為了解決這一問題,隨機森林應運而生。
1.2? 隨機森林
1.2.1? 隨機森林簡述
隨機森林是一種基于決策樹的集成學習方法。它的具體工作流程如下圖所示。
現有大量實驗證明,相較于決策樹,隨機森林的泛化誤差得到了顯著的降低[12-13]。這與它的隨機特性是密切相關的。隨機森林的隨機性主要表現在兩個方面:①訓練集的隨機性,即采用一種有放回的抽樣法獲取多個不盡相同的樣本集;②屬性的隨機性,即僅使用樣本集中部分的特征變量來訓練決策樹。有了上述隨機性的保證,隨機森林便不會像單個決策樹那樣產生嚴重的過擬合現象了。下文中的定理2充分說明了這一點。
1.2.2? 隨機森林的數學描述[14]
定義1? 隨機森林的本質為一個集成分類器,為了對其置信度進行度量,引入邊緣函數(Marginal Function)的定義是十分必要的。設隨機森林是由Nt棵決策樹構成的,且基分類器表示為h(X,θk),其中X表示輸入向量,θk是一個用來刻畫第k棵決策樹構造過程的隨機向量。
式中:Y為正確的預測類標;avg為求平均的函數;I為示性函數;k為從1~Nt的整數;j為某一個不正確的類標。根據上式可以看出,函數mf表示了正確分類的平均得票數超過最大的錯誤分類平均得票數的程度。顯然,mf函數的輸出值越大,分類器的置信度便越高。
定義2? 根據邊緣函數的定義,隨機森林的泛化誤差可以表示為。
式中:P表示錯誤分類的概率,其下標刻畫了該式中的概率空間。根據上述兩個定義和大數定理,可以得到定理1。
定理1? 當隨機森林中基分類器的個數增加時,其泛化誤差均收斂于。
定理1? 說明了隨著樹數目的增加,森林的泛化誤差會趨向某一個上界。這表明了隨機森林相較于決策樹具有很好的抗過擬合能力。
定理2? 泛化誤差的上界可表示為。
式中:表示森林中決策樹的平均相關度;s2表示決策樹強度的平均值。根據式(6)可以看出,降低隨機森林的泛化誤差主要有兩種方法:增加單棵樹的預測能力;降低森林中各棵樹之間的相關性。在前文中已經提到,上述的兩點正是由隨機森林的隨機性保證的。
1.2.3? 隨機森林的缺陷
縱使隨機森林在很大程度上解決了決策樹面臨的過擬合問題,但它所使用的bagging算法也增加了計算成本。而使RF運行效率降低的另一個主要因素便是CART對連續特征的處理方法,即逐一針對每個分裂點進行二分處理,之后根據GINI系數選擇劃分方案。顯然,這樣的處理方法具有一定的盲目性。同時,隨機森林模型的預測精度也有進一步提升的空間。
1.3? 算法改進
如前文所介紹的,本文主要通過引入一種連續特征離散化的方法來改進隨機森林的算法的性能[15]。當前,連續特征離散化存在著眾多方法。依據劃分起點的不同,它們可以分為自底向上的和自頂向下的兩種。當連續屬性的取值個數遠大于目標劃分區間的種數時,后者的運行效率顯然會高于前者。所以本文決定選擇CACC(Class-Attribute Contingency Coe?cient)算法作為連續屬性離散化的方法[16]。不同于CART以GINI系數作為劃分的依據,CACC算法引入了一個新的指標cacc。其計算過程如下。
式中:M表示數據集中樣本的總個數;qir表示類標為i且在第r個特征劃分(dr-1,dr]內的樣本的個數;S表示類標的種數;n表示特征劃分的種數;Mi+為類標為i的樣本的總個數;M+r為在特征劃分(dr-1,dr]內的樣本的總個數;log表示求自然對數的函數。之后CACC算法以分治和貪心的思想[17]逐步遞歸便可以完成連續屬性的離散化了。
2? 實驗
2.1? 數據集及實驗環境
本文實驗中所使用的數據集均源于UCI機器學習數據庫。它們分別是關于如下三種疾病的數據:糖尿病、心臟病和癌癥。數據集的具體信息如表1所示。
在對數據進行了預處理之后,實驗在一臺6核16G的計算機上進行。其操作系統為Windows 10;程序設計語言為Python 3.7。
2.2? 參數配置
不同于神經網絡,隨機森林算法僅涉及兩個超參數的配置[18]。它們是森林中樹的棵數Nt和構造單個決策樹時選用特征的個數Nf。由定理1可以看出,Nt的增加并不會導致森林出現嚴重的過擬合。但是隨著樹數目的增多,模型所花費的時間成本與空間成本都會上升。而且邊際效用遞減法則同樣適用于此[14]。Nf如果取值過小,則單棵決策樹的強度無法得到保證;但隨著Nf的增大,森林中樹間的相關度有可能也會增大。經過上述分析我們不難發現Nt和Nf的設置對于模型性能的影響是很大的。經過大量實驗,本文對隨機森林的兩個超參數的設置如表2所示。
2.3? 評估指標
對于類標為兩種的醫療診斷問題,結果通常可分為以下四種:患者本身沒病但被診斷為有病(False Positive,FP);患者本身有病但被診斷為沒病(False Negative,FP);患者有病且被診斷為有病(True Positive,TP);患者沒病且被診斷為沒病(True Negative,TN)。本文選用醫學中最常用的三個指標作為模型評估的依據。它們是:特異性(Specificity)、靈敏度(Sensitivity)和準確性(Accuracy)。其可通過如下的公式計算得出。
2.4? 結果及分析
考慮到一次實驗可能存在著偶然性,本文將每組實驗重復50次,之后取各個評估指標的平均值作為最終的結果。需要說明的是,實驗中訓練集與測試集的比例為4∶1。同時,本文將引入CACC算法的RF記為IRF(Improved Random Forest)。
2.4.1? 模型訓練速度
為了測試改進的隨機森林算法的運行效率,本文使用傳統的隨機森林算法建立了模型以與其形成對比。上述兩種算法運行的具體時間如下表所示。
通過上表我們可以看出,IRF在三個數據集上的表現均要優于RF。其中運行時間縮短幅度最大可以達到24.48%;平均的縮減幅度可以達到12.11%。這說明IRF的運行效率相較于RF得到了提升,而隨著數據集規模的增大,前者的優勢也將得到擴大。
2.4.2? 模型預測精度
為了檢測CACC對IRF算法性能所造成的影響,實驗使用RF與IRF構建了分類模型,之后將三個數據集分別代入其中完成了模型的訓練與預測。RF和IRF模型的診斷結果如表4、表5所示。
從表4、表5可以看出,相較于RF模型,IRF模型的預測準確性在糖尿病樣本集上保持穩定,而在另兩個數據集上均略有提升。同時特異性和靈敏度也均穩步提升。這一結果與引入的連續特征離散化的方法是密切相關的。CACC算法對相依系數的概念進行拓展[16],從而使得生成的規則更加符合樣本間的內在聯系。這與預期的結果是相符的。
3? 結束語
本文從連續變量離散化入手,對隨機森林算法進行了改進。通過實驗證明,改進的隨機森林算法在運行時間上顯著縮短,且預測精度也有所提升。更進一步的,連續特征離散化后變得更加簡潔明了,這無疑可以方便研究人員的理解。縱使IRF相較于RF展現出了一定的優越性,但仍存在著很大的改進空間。本文提出的算法僅是針對處理連續特征的方法進行了優化,如若對特殊的數據集采取相應的預處理,抑或對節點的分裂算法進行改進,想必都可以使算法的性能得到提升。當下知識更新迅速,新的技術與算法層出不窮,只有不斷地學習,完善自身才是正道。
參考文獻
Larasati A, DeYong C, Slevitch L. The Application of Neural Network and Logistics Regression Models on Predicting Customer Satisfaction in a Student-Operated Restaurant[J]. Procedia-Social and Behavioral Sciences, 2012, (65): 94-99.
Nath A, Sahu G K. Exploiting ensemble learning to improve prediction of phospholipidosis inducing potential[J]. Journal of Theoretical Biology, 2019, (479): 37-47.
張春霞,郭高. Out-of-bag樣本的應用研究[J]. 軟件, 2011, 32(3): 1-4.
Pooja S B, Balan S R V, Anisha M, et al. Techniques Tanimoto correlated feature selection system and hybridization of clustering and boosting ensemble classification of remote se?n?sed big data for weather forecasting[J]. Computer Commun?i?c?ations, 2020, (151): 266-274.
李昆明, 厲文婕. 基于利用BP神經網絡進行Stacking模型融合算法的電力非節假日負荷預測研究[J]. 軟件, 2019, 40(9): 176-181.
張洋. 一種基于Logicboost的軟件缺陷預測方法[J]. 軟件, 2019, 40(8): 79-83.
Tao Hongfei, Chen Ran, Xuan Jianping, et al. Prioritization analysis and compensation of geometric errors for ultra-? pre?cision lathe based on the random forest methodology[J]. Precision Engineering, 2020, (61): 23-40.
全雪峰. 基于奇異熵和隨機森林的人臉識別[J]. 軟件, 2016, 37(2): 35-38.
Gupta D, Pierdzioch C, Vivian A J, et al. The predictive value of inequality measures for stock returns: An analysis of long- span UK data using quantile random[J]. Finance Research Letters, 2019, (29): 315-322.
張雨琦, 林勇. 基于機器學習的腫瘤免疫治療應答預測研究[J]. 軟件, 2019, 40(1): 97-102.
全雪峰. 基于隨機森林的乳腺癌計算機輔助診斷[J]. 軟件, 2017, 38(3): 57-59.
Fratello M, Tagliaferri R. Decision Trees and Random For?ests[J]. Encyclopedia of Bioinformatics and Computational Biology, 2019, (1): 374-383.
Akhoondzadeh M. Decision Tree, Bagging and Random For?est methods detect TEC seismo-ionospheric anomalies around the time of the Chile, (Mw=8.8) earthquake of 27 February 2010[J]. Advances in Space Research, 2016, 57(12): 374-383.
Breiman L. Random Forests[J]. Machine Learning, 2001, 45(1): 44-51.
沈學華, 周志華, 吳建鑫, 等. Boosting和Bagging綜述[J]. 計算機工程與應用, 2000, 36(12): 31-32, 40.
Tsai C J, Lee C I, Yang Weipang. A discretization algorithm based on Class-Attribute Contingency Coefficient[J]. Neuro?biology of Aging, 2008, 178(3): 180-191.
Cormen T H, Leiserson C E, Rivest R L, et al. Introduction to Algorithms[M]. Beijing: China Machine Press, 2012: 16-19, 242-244 (in Chinese).
方匡南, 吳見彬, 朱建平, 等. 隨機森林方法研究綜述[J]. 統計與信息論壇, 2011, 26(3): 32-38.