路佳佳
(山西工商學(xué)院 計算機(jī)信息工程學(xué)院,山西 太原 030006)
隨機(jī)森林是一種可以處理分類問題和回歸問題的算法,該算法一般采用bootstrap sampling 方法進(jìn)行抽樣,但是在抽樣中存在“包外估計”。為了減少包外估計的誤差,本文考慮對樣本進(jìn)行合理的數(shù)據(jù)切分[1]來有效提高模型的性能,減少誤差。本文應(yīng)用簡單隨機(jī)抽樣的方法將大小為n的數(shù)據(jù)集分成不相交的兩份,并且進(jìn)行相同的抽樣P次,得到2P份大小為的數(shù)據(jù)集。然后從中選擇一份建立隨機(jī)森林,其中的個樣本作為訓(xùn)練集,另外的個樣本作為驗證集,通過誤差來分析[2-4]驗證切分方法的有效性。
隨機(jī)森林是含有多個決策樹的集成分類器[5],其中{αk}是獨立同分布的隨機(jī)向量,k表示隨機(jī)森林中決策樹的個數(shù)。改進(jìn)的隨機(jī)森林算法主要是從數(shù)據(jù)切分的角度來改進(jìn)隨機(jī)森林。本文研究的改進(jìn)的隨機(jī)森林方法應(yīng)用于回歸任務(wù)和分類任務(wù)中。
隨機(jī)森林回歸的方法一般針對連續(xù)型隨機(jī)變量,也就是研究輸出變量y和輸入變量X之間的關(guān)系建立數(shù)學(xué)模型。隨機(jī)森林中的參數(shù)一般有兩個,一個是樹的棵目數(shù)Ntree,另一個是隨機(jī)特征數(shù)Mtry。即
隨機(jī)森林分類的方法一般針對離散型隨機(jī)變量[3],假設(shè)輸入變量X,通過樹的分類結(jié)果進(jìn)行投票,將多數(shù)的投票結(jié)果作為最終的預(yù)測結(jié)果,即
其中L(x)為聯(lián)合分類的結(jié)果,Pi(x)為第i個分類樹的結(jié)果。
改進(jìn)的隨機(jī)森林算法預(yù)測步驟包括以下三步。
(1)產(chǎn)生數(shù)據(jù)集。
(2)應(yīng)用簡單隨機(jī)抽樣的方法對數(shù)據(jù)集進(jìn)行切分,抽取的一半數(shù)據(jù)記為D1,剩余的另一半數(shù)據(jù)記為D2,D1與D2互不相交。進(jìn)行相同的抽取P次,將數(shù)據(jù)集切分成2P份。
(3)切分之后選取的數(shù)據(jù)中一半作為訓(xùn)練集,另一半作為驗證集建立隨機(jī)森林模型。將數(shù)據(jù)集中的輸入變量X輸入到使用訓(xùn)練集得到的模型中,在回歸任務(wù)中采用簡單平均法計算出的平均值作為預(yù)測值。在分類任務(wù)中采用投票法將分類結(jié)果中出現(xiàn)次數(shù)最多的結(jié)果作為最終分類結(jié)果。
在具體實驗過程中借助R 統(tǒng)計軟件中的包random forest 庫函數(shù)實現(xiàn)上述步驟。
模擬出n=1 000,p=150(數(shù)據(jù)個數(shù)為1 000,維數(shù)為150)的多元正態(tài)數(shù)據(jù)集,x為150 維,y為標(biāo)準(zhǔn)正態(tài)分布下的隨機(jī)數(shù),然后對模擬的數(shù)據(jù)集進(jìn)行3 次切分,其中250 個樣本作為訓(xùn)練集,另外的250 個樣本作為驗證集,設(shè)置隨機(jī)森林中樹的棵目數(shù)ntree的值,從2 到500 變化。通過UCI數(shù)據(jù)集下載的iris 數(shù)據(jù)集作為真實數(shù)據(jù)。該數(shù)據(jù)集包含150 個樣本,每個數(shù)據(jù)包含四個特征和對應(yīng)的樣本類別信息。
均方根誤差從一定程度上可以描述偏差,設(shè)obi(i=1,2,…,n)表示觀測值,用ti表示預(yù)測值,則均方根誤差的計算公式為
隨機(jī)切分情況下模擬實驗的結(jié)果如圖1 所示。
從圖1 可以看出隨著樹的棵目數(shù)的增加,均方根誤差rsme逐漸減少,當(dāng)樹的棵數(shù)在100 左右時,隨機(jī)森林的rsme幾乎穩(wěn)定在0.96。圖2 是切分情況下計算的偏差和樹的棵數(shù)的散點圖,可以看出當(dāng)樹的棵數(shù)在100 時,偏差穩(wěn)定在10 左右。
圖3 是不進(jìn)行隨機(jī)切分的情況下,模擬實驗結(jié)果。從圖中可以看出,隨著樹的棵數(shù)的增加,均方根誤差rsme逐漸減少,當(dāng)增加到一定程度時rsme穩(wěn)定在1.00。表明對數(shù)據(jù)進(jìn)行隨機(jī)切分對隨機(jī)森林的偏差有一定程度的影響,可以減少偏差,并且當(dāng)樹的棵數(shù)在100 左右和500 時可以達(dá)到幾乎相同的偏差。
圖3 不切分時ntree 與rsme 關(guān)系圖
對于分類問題,模擬數(shù)據(jù)集x為150 維,y為0 或1 的二分類任務(wù),不進(jìn)行隨機(jī)切分的情況下,樹的棵目數(shù)(ntree)與分類準(zhǔn)確率(accuracy)的關(guān)系圖如圖4 所示,進(jìn)行隨機(jī)切分的數(shù)據(jù)處理結(jié)果如圖5 所示。從圖4 可以看出,不進(jìn)行切分的隨機(jī)森林的準(zhǔn)確率隨著樹的棵目數(shù)的增大穩(wěn)定在0.85。從圖5 可以看到,隨著樹的棵目數(shù)的增加,分類的準(zhǔn)確率在逐漸增大,當(dāng)樹的棵目數(shù)增大到100 時,分類的準(zhǔn)確率逐漸穩(wěn)定在0.9。
圖4 不進(jìn)行切分ntree 與accuracy 關(guān)系圖
圖5 進(jìn)行切分ntree 與accuracy 關(guān)系圖
用隨機(jī)切分的隨機(jī)森林做100 次實驗,平均誤差率,典型結(jié)果見圖7。從圖中可見,平均誤差率為4.974 2%;用沒有隨機(jī)切分的隨機(jī)森林做100次實驗,典型結(jié)果見圖8。從圖中可知,平均誤差率為6.595 2%。
圖7 切分處理情況下的誤差率
圖8 不進(jìn)行切分情況下的誤差率
繪制不經(jīng)切分處理的隨機(jī)森林和經(jīng)切分處理的隨機(jī)森林情況下的均方差圖,見圖9 和圖10。從兩個圖中可以看出,經(jīng)過切分的均方差圖誤差較為穩(wěn)定,誤差值也較小。
圖9 不進(jìn)行切分情況下的均方差
圖10 進(jìn)行切分情況下的均方差
應(yīng)用隨機(jī)切分?jǐn)?shù)據(jù)集的方法對分類任務(wù)的準(zhǔn)確率的提高和回歸任務(wù)的偏差都有一定的提高。方法應(yīng)用與iris 數(shù)據(jù)集表現(xiàn)出較高的穩(wěn)定性。