崔喆森,吳金冉
(1.長治學院計算機系,山西長治046000;2.昆士蘭科技大學數(shù)學科學學院,澳大利亞布里斯班4001)
數(shù)據(jù)分類一直以來都是數(shù)據(jù)挖掘方向很重要的一個研究領域,其中利用分類算法進行數(shù)據(jù)預測也是近些年研究的熱點,現(xiàn)在利用機器學習算法針對各個行業(yè)數(shù)據(jù)進行分類和預測的應用很多。在這里,通過對優(yōu)秀分類算法隨機森林進行分析和應用,總結出算法的性能優(yōu)勢和特點,為之后的進一步研究做準備。
這些年衍生出了很多數(shù)據(jù)挖掘分類算法,應用比較廣泛的分類算法有:決策樹[1]、貝葉斯[2]、神經(jīng)網(wǎng)絡、KNN、支持向量機[3]和基于關聯(lián)規(guī)則[4]的分類等,相關的改進算法也很多。
由于隨機森林算法優(yōu)良的特性,應用比較廣泛,其原理就是把決策樹看作一個個的單元,然后將這些決策樹單元集成在一起,其原理體現(xiàn)了機器學習領域中的集成學習[5](Ensemble Learning)的思想。隨機森林中的森林指的就是將很多顆決策樹集成在一起。每一顆決策樹都可以作為一個分類器(假設現(xiàn)在針對分類問題進行處理),針對同一個輸入數(shù)據(jù),可能每顆決策樹的輸出分類結果都不一樣,這時候就需要對多種分類結果進行統(tǒng)計,統(tǒng)計次數(shù)最多的類別就是最終的分類結果,這種解決問題的思路充分體現(xiàn)了集成思想。
信息是用來消除變量的隨機不確定性。熵用來度量變量的不確定性,熵的取值大小和變量的不確定性成正比關系。具體到使用隨機森林算法進行數(shù)據(jù)分類的問題,熵越大說明輸入的數(shù)據(jù)樣本的分類確定性越高,反之分類確定性會越低。在隨機森林中,根據(jù)信息增益[6]的取值大小選擇符合條件的特征,信息增益值越大,這個特征的可選擇性越好。
決策樹顧名思義其形狀就是樹形結構,由邊和節(jié)點構成。決策樹的集成就可以構成隨機森林,這樣決策樹和隨機森林的關系就很明白了。決策樹中的每一個分支節(jié)點表示其屬性的不同取值,到達葉結點的輸出就是決策樹對于輸入數(shù)據(jù)樣本的最終分類判斷。
集成學習的核心思想就是算法集成,通過對幾種算法的整合給出最終分類。具體工作原理就是由每種算法構成的分類器對輸入數(shù)據(jù)樣本進行預測,然后對輸出預測結果進行整合,最后得出最終結果。此預測結果一般都優(yōu)于只使用一種分類算法的預測。探索的隨機森林算法充分體現(xiàn)了集成思想的精髓,通過整合多顆決策樹的輸出結果,給出最終預測。
使用python語言實現(xiàn)了隨機森林算法的整個流程,并且在泰坦尼克乘客數(shù)據(jù)集上驗證隨機森林算法的有效性,使用此算法對泰坦尼克號輪船上的乘客進行命運預測。
首先要導入泰坦尼克乘客數(shù)據(jù)集,并對數(shù)據(jù)集做相關的處理。
2.1.1 數(shù)據(jù)探索
在做進一步數(shù)據(jù)建模前,首先需要對數(shù)據(jù)變量名、數(shù)值分布和缺失值情況等等有初步了解。圖1是針對變量age的傾斜度畫出的直方圖。
圖1 變量age傾斜度示意圖
為了更好的展現(xiàn)數(shù)據(jù)集中的特征的情況,可以通過箱型圖的形式展示age變量的數(shù)值分布以及異常值,如圖2所示。
圖2 變量age箱型圖
2.1.2 數(shù)據(jù)劃分
通常定義分類錯誤的樣本個數(shù)占樣本總數(shù)的比例作為錯誤率(error rate),即如果在m個樣本中有n個樣本分類錯誤,則錯誤率公式為E=n/m;與之對應,精度公式1-n/m。模型在訓練集上的誤差稱為訓練誤差,在新樣本上的誤差稱為泛化誤差[7](generalization error)。
2.1.3 數(shù)據(jù)填充
本模型要求數(shù)據(jù)樣本完全沒有缺失值。所以用中位數(shù)填充所有訓練集中的數(shù)值變量。做數(shù)據(jù)填充時,無論是用統(tǒng)計量還是機器學習模型,都必須用訓練集中的信息。在做模型測試前對測試集做數(shù)據(jù)填充時,也需要用訓練集的統(tǒng)計量或基于訓練集訓練的機器學習模型。
2.1.4 類別變量處理
由于數(shù)據(jù)集中類別變量其值不是數(shù)值型,因此需要將類別型變量轉換為數(shù)值型變量。采用獨熱編碼為每個獨立值創(chuàng)建一個啞變量[8]。
特征選擇是指在數(shù)據(jù)集中選取若干代表性強或預測能力強的變量子集,使得機器學習模型訓練更高效且性能不下降。
使用特征選擇器的屬性得到特征的重要性,利用柱狀圖可視化顯示特征排序如圖3所示。
圖3 特征排序柱狀圖
在這里,選擇80%的變量即10 個重要性最高的變量作為特征。
創(chuàng)建隨機森林模型對象,由于該模型有一系列超參數(shù),需要在訓練模型前人工指定。對于具體問題,無法事先明確知道哪一組超參數(shù)會取得最佳效果,因此需要做超參數(shù)調優(yōu)得到最佳的超參數(shù)組合。超參數(shù)調優(yōu)需要指定以下幾個選項:超參數(shù)的搜索范圍;調優(yōu)算法;評估方法,即重采樣策略和評估指標。調優(yōu)的超參數(shù)范圍為最大深度:3、4和5;最小摻雜度減少比例:0.001和0.005。重采樣會將訓練集按照一定比例進一步劃分成訓練集和驗證集,在這里選擇的重采樣策略是交叉驗證法[9],共需要搜索6組超參數(shù)組合,計算每組超參數(shù)的驗證集平均精度,確定了最佳的超參數(shù)組合是最大深度和最小摻雜度減少比例。調用網(wǎng)格搜索[10]超參數(shù)調優(yōu)器做超參數(shù)調優(yōu),得到最優(yōu)超參數(shù)組合的隨機森林模型。調優(yōu)結果展示如圖4所示。
圖4 超參數(shù)調優(yōu)圖
在選出了最優(yōu)的超參數(shù)組合后,調用全部的訓練集數(shù)據(jù)和確定的超參數(shù)組合訓練模型,最終得到我們需要的隨機森林模型。
在訓練集上做完超參數(shù)調優(yōu)和模型訓練后,需要在測試集上對模型做一次性公正的評估。對于二分類問題,常用ROC 曲線下面積(area under curve,AUC)作為模型性能指標,在介紹該指標之前,首先需要給出下面4 種預測結果。真陽性、假陽性、真陰性、假陰性。
另外常用的還有查準率(precision)、查全率(recall)和兩者都考慮的F1。受試者工作特征曲線(ROC 曲線),即假陽性率(FPR)為橫軸、真陽性率(TPR)為縱軸所畫出的曲線。分類閾值分別取0 到1 中的各個數(shù),計算不同閾值對應的FPR和TPR,然后描點得到ROC曲線。
AUC會出現(xiàn)如下3種情況:
(1)0.5 (2)AUC=0.5,AUC=0.5時,模型無意義; (3)0<=AUC<0.5,0<=AUC<0.5 時,模型差于隨機猜測,但如果總是反預測而行,反而能產(chǎn)生預測價值。 最終的ROC曲線圖如圖5所示。 圖5 ROC曲線圖 ROC 曲線下面積(AUC)值為0.852,表現(xiàn)較好,優(yōu)于隨機猜測,說明本模型能夠起到很好的泰坦尼克乘客命運預測作用。 探索了隨機森林算法在分類問題上的應用,并且針對泰坦尼克乘客數(shù)據(jù)集進行了乘客命運預測,通過實驗驗證證明此算法有著很好的分類作用。下一步的研究工作是針對隨機森林算法的超參數(shù)調優(yōu)尋找更好的方法。5 總結