国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于隨機(jī)森林的光譜分類模型研究

2021-10-16 16:01袁正熙
現(xiàn)代信息科技 2021年7期
關(guān)鍵詞:隨機(jī)森林

摘要:文章第一節(jié)介紹集成算法原理;第二節(jié)系統(tǒng)理論地說(shuō)明了Bagging算法;第三節(jié)介紹隨機(jī)森林算法;第四節(jié)介紹實(shí)驗(yàn)內(nèi)容以及程序模塊,利用Python實(shí)現(xiàn)光譜數(shù)據(jù)的分類并評(píng)估結(jié)果,然后實(shí)行調(diào)參,得到最優(yōu)的參數(shù)搭配;第五節(jié)對(duì)優(yōu)化模型進(jìn)行測(cè)試,與原模型比較準(zhǔn)確率、查準(zhǔn)率、召回率、F-score值等指標(biāo),發(fā)現(xiàn)優(yōu)化后的結(jié)果優(yōu)良;第六節(jié)總結(jié)隨機(jī)森林算法的優(yōu)缺點(diǎn)。

關(guān)鍵詞:集成學(xué)習(xí);Bagging;隨機(jī)森林

中圖分類號(hào):TP273.4 文獻(xiàn)標(biāo)識(shí)碼:A? 文章編號(hào):2096-4706(2021)07-0081-04

Study on Spectral Classification Model Based on Random Forest

YUAN Zhengxi

(South China Normal University,Guangzhou? 510631,China)

Abstract:In this paper,the first section introduces the principle of the ensemble algorithm;in the second section,the Bagging algorithm is explained systematically and theoretically;the third section introduces the random forest algorithm;the fourth section introduces the experimental content and program modules,Python is used to classify the spectral data and evaluate the results,and then adjust the parameters to obtain the optimal parameter matching;the fifth section tests the optimized model and compares the indexes of the accuracy,precision,recall and F-score value with the original model. It is found that the optimized result is excellent;the sixth section summarizes the advantages and disadvantages of random forest algorithm.

Keywords:ensemble learning;Bagging;random forest

收稿日期:2021-03-20

0? 引? 言

機(jī)器學(xué)習(xí),一般來(lái)說(shuō)是致力于研究如何通過(guò)計(jì)算的手段、利用經(jīng)驗(yàn)來(lái)改善系統(tǒng)自身性能的一種方法。對(duì)于機(jī)器學(xué)習(xí)而言,“經(jīng)驗(yàn)”往往是以數(shù)據(jù)形式儲(chǔ)存起來(lái)的。機(jī)器改善性能的方法是通過(guò)數(shù)據(jù)的不斷訓(xùn)練產(chǎn)生“模型”,繼而使得該“模型”能夠盡可能地適用于更多的數(shù)據(jù)。目前,機(jī)器學(xué)習(xí)有多種算法,比如:決策樹(shù)、神經(jīng)網(wǎng)絡(luò)、支持向量機(jī)、貝葉斯分類、LDA,等等。通常來(lái)說(shuō),一個(gè)研究可以使用多種算法,而集成學(xué)習(xí)則能夠結(jié)合多個(gè)算法使得機(jī)器學(xué)習(xí)具有更好的效果以及更優(yōu)越的泛化性能。

1? Bagging算法

集成學(xué)習(xí)的方法有并行和串行兩種,Bagging算法是并行式集成學(xué)習(xí)方法最著名的代表。Bagging是基于Boostrap Sampling采樣方法,給定m個(gè)樣本的數(shù)據(jù)集,隨機(jī)取出一個(gè)樣本,接著再把剛才抽到的樣本放回?cái)?shù)據(jù)集中,由此使得下一次抽樣的數(shù)據(jù)集與上一次的情形完全相同。這樣,經(jīng)過(guò)m次抽取,我們得到m個(gè)樣本集。根據(jù)Boostrap Sampling采樣方法,這m個(gè)樣本集里的某些元素可能重復(fù)多次,也可能有部分樣本未出現(xiàn)在樣本集中。

相比于其他集成學(xué)習(xí)方法,Bagging算法更為高效,其學(xué)習(xí)復(fù)雜度和學(xué)習(xí)器是同階的。另外,Bagging可以直接用于多分類和回歸等任務(wù)。再者,Bagging可以降低方差,因此把它使用到不剪枝的決策樹(shù)上效果非常好。這也為隨機(jī)森林算法的出現(xiàn)奠定了基礎(chǔ)。

2? 隨機(jī)森林

隨機(jī)森林是使用多棵決策樹(shù)對(duì)樣本進(jìn)行訓(xùn)練并預(yù)測(cè)的一種集成分類器,該分類器最早由Leo Breiman和Adele Cutler于1995年提出。它以決策樹(shù)為基學(xué)習(xí)器,使用Bagging集成方法,并在此基礎(chǔ)上引入隨機(jī)屬性的選擇。隨機(jī)森林有許多優(yōu)勢(shì):算法簡(jiǎn)單、易于實(shí)現(xiàn)、計(jì)算開(kāi)銷小等,其甚至被譽(yù)為“代表集成學(xué)習(xí)技術(shù)水平的方法”。

簡(jiǎn)單來(lái)說(shuō),隨機(jī)森林分為四個(gè)步驟:第一,使用Bagging方法形成每棵樹(shù)的訓(xùn)練樣本集;第二,隨機(jī)選取分裂屬性集,假設(shè)當(dāng)前節(jié)點(diǎn)共有d個(gè)可用屬性,指定一個(gè)屬性數(shù)k(k≤d),從d個(gè)屬性中隨機(jī)抽取k個(gè)屬性作為分裂屬性集,并從分裂屬性集中選擇最優(yōu)屬性用于數(shù)據(jù)劃分;第三,每棵樹(shù)任其生長(zhǎng),不進(jìn)行剪枝;第四,根據(jù)投票法則對(duì)樣本類別進(jìn)行投票。

具體形式如圖1所示,設(shè)數(shù)據(jù)集為D且創(chuàng)建k棵決策樹(shù),則對(duì)應(yīng)有k個(gè)隨機(jī)向量θi(其中i=1,2,…,k),數(shù)據(jù)集D在每個(gè)θi對(duì)應(yīng)有一個(gè)子集數(shù)據(jù)集供Di第i棵決策樹(shù)學(xué)習(xí),得到?jīng)Q策樹(shù)分類結(jié)果i。最后利用投票決定最優(yōu)的分類結(jié)果。

3? 實(shí)驗(yàn)及調(diào)參優(yōu)化

3.1? 數(shù)據(jù)預(yù)處理

3.1.1? 標(biāo)準(zhǔn)化處理

采用z-score標(biāo)準(zhǔn)化。這種方法基于原始數(shù)據(jù)的均值和標(biāo)準(zhǔn)差進(jìn)行數(shù)據(jù)的標(biāo)準(zhǔn)化。定義均值為u,方差為σ,x為原始數(shù)據(jù),則標(biāo)準(zhǔn)化后新數(shù)據(jù)x'計(jì)算方式如式(1)所示:

(1)

3.1.2? 連續(xù)值處理

一般地,我們考慮將連續(xù)值離散化以適應(yīng)決策樹(shù)模型。這里,我們應(yīng)用二分法對(duì)連續(xù)值進(jìn)行處理。

給定樣本集D和連續(xù)屬性a,假定a在D上有n個(gè)不同的取值,將這些值從小到大進(jìn)行排序,得到序列(a1,a2,…,an)。對(duì)于該序列,選擇一個(gè)a屬性取值m,則可以把D分成兩個(gè)子集A、B。第一個(gè)子集A包含那些在屬性a上取值不大于m的樣本,另一子集B則包含那些在屬性a上取值大于m的樣本。如此,只要取值m在[ai,ai+1)上,m的劃分結(jié)果就不變。這樣,n個(gè)屬性值就形成n-1個(gè)離散值。由此,我們定義一個(gè)長(zhǎng)度為n-1的序列M,第i個(gè)元素取值如式(2)所示:

(2)

即把區(qū)間[ai,ai+1)的中位點(diǎn)作為劃分點(diǎn)。然后,我們就可以像離散屬性值一樣來(lái)考察這些劃分點(diǎn),選取最優(yōu)的劃分點(diǎn)進(jìn)行樣本集合的劃分。

3.2? 實(shí)驗(yàn)流程

我們采用隨機(jī)森林算法,使用Matlab實(shí)現(xiàn)對(duì)數(shù)據(jù)的分類,將代碼劃分為訓(xùn)練、測(cè)試、調(diào)度三個(gè)模塊。

在訓(xùn)練模塊中,如表1所示,首先輸入訓(xùn)練集;第一步,初始化隨機(jī)森林;第二步,循環(huán)生成N次隨機(jī)森林,其中每次循環(huán)都對(duì)單棵樹(shù)進(jìn)行初始化,然后使用有放回采樣的方法從訓(xùn)練集中抽樣,使用的函數(shù)有“sort”和“randsample”;第三步,利用二分法將所選擇的連續(xù)屬性離散化;最后,輸出含N棵決策樹(shù)的隨機(jī)森林。

訓(xùn)練模型為整個(gè)實(shí)驗(yàn)的核心,因此將訓(xùn)練模塊的關(guān)鍵代碼特別進(jìn)行展示,以下為代碼清單:

#-*-coding: utf-8 -*-

%train為存放train_x(trian{1}), train_y(train{2})的cell 1*2

%? ?其中train_y 為k*1矩陣;矩陣存放標(biāo)簽

%? ?數(shù)據(jù)都已標(biāo)準(zhǔn)化

%? ?test與train數(shù)據(jù)結(jié)構(gòu)類似

%? ?N:為隨機(jī)森林內(nèi)決策樹(shù)的數(shù)量

%? ?m:為抽取樣本量占總樣本量的比例

%? ?theTrees:為含有N棵決策樹(shù)的隨機(jī)森林(cell*N)

%% 初始化隨機(jī)森林

theTrees=[];

global Tree;

%%循環(huán)N次生成隨機(jī)森林

for i=1:N

%%單棵樹(shù)的初始化

TrainIndex=[];

train_x=[];

train_y=[];

Tree=[];

attr_list = cell(size(train{1},2), 1);

attr_value_list=[];

Tree=struct('father_Node_name',[],'Node_name',[], 'best_Attr',[], ... 'best_breakpoint',[],'MostVal',[]);

%%有放回采樣訓(xùn)練集

TrainIndex =sort(randsample(size(train{1},1),round(size(train{1},1)*m),true));

train_x=train{1}(TrainIndex,:);

train_y=train{2}(TrainIndex,:);

%% 以下步驟為把所選的屬性離散化

for i1 = 1 : size(train{1},2)

attr_value_list = unique(train_x(:,i1));

%利用二分法將連續(xù)屬性離散化

attr_list{i1} = (attr_value_list(2 : end) + attr_value_list(1 : end - 1)) / 2;

end

%% 開(kāi)始生成樹(shù)

TreeGenerate('root', train_x, train_y, attr_list);

Tree(1)=[];

theTrees{i}=Tree;

end

end

在測(cè)試模塊中,如表2所示,首先輸入測(cè)試集;第一步,初始化數(shù)據(jù),添加若干空列表用于接下來(lái)儲(chǔ)存數(shù)據(jù);第二步,利用訓(xùn)練模塊得到的隨機(jī)森林模型對(duì)測(cè)試機(jī)數(shù)據(jù)進(jìn)行預(yù)測(cè);第三步,根據(jù)投票原則生最終預(yù)測(cè)結(jié)果,投票采用的方法是“相對(duì)多數(shù)投票法”。使用Matlab里的“tabulate”函數(shù),計(jì)算出某樣本不同類別對(duì)應(yīng)的分類概率,從而選擇概率最高的一類作為最終的所屬類別;最后,輸出測(cè)試集的分類結(jié)果。

在調(diào)度模塊中,如表3所示,首先讀取訓(xùn)練數(shù)據(jù)、測(cè)試數(shù)據(jù)、標(biāo)簽集和光譜型的7種類型;第一步,調(diào)用訓(xùn)練模塊;第二步,調(diào)用測(cè)試模塊;第三步,評(píng)估結(jié)果即測(cè)試隨機(jī)森林的精度;最后,計(jì)算程序運(yùn)行時(shí)間并輸出分類準(zhǔn)確率。

3.3? 實(shí)驗(yàn)數(shù)據(jù)

本文運(yùn)用的數(shù)據(jù)是LAMOST平臺(tái)提供的恒星光譜數(shù)據(jù),該樣本數(shù)據(jù)有481個(gè)屬性,其中訓(xùn)練集保存了159條樣本數(shù)據(jù)和標(biāo)簽,測(cè)試集保存了200條樣本數(shù)據(jù)和標(biāo)簽。每條數(shù)據(jù)的標(biāo)簽有三列信息,第一列是對(duì)應(yīng)光譜數(shù)據(jù)的光譜型,第二列是光譜次型,第三列是光度型。本文只對(duì)第一列的光譜型數(shù)據(jù)進(jìn)行分類,其他兩列類同。

3.4? 實(shí)驗(yàn)結(jié)果

運(yùn)行程序,我們得到隨機(jī)森林算法對(duì)數(shù)據(jù)庫(kù)的分類效果。默認(rèn)使用50個(gè)子樹(shù)數(shù)量、8個(gè)特征數(shù)量,得到準(zhǔn)確率約為82%。

4? 模型優(yōu)化及測(cè)試

4.1? 模型優(yōu)化

為了得到更滿意的學(xué)習(xí)效果,本文需要盡量遍歷盡可能多的組合方式,找到最優(yōu)分類效果。假設(shè)樣本特征數(shù)為N,我們分別使用“50、100、1 000、1 500”子樹(shù)數(shù)量與N個(gè)、8個(gè)、log2N個(gè)、 √N(yùn)個(gè)特性數(shù)量?jī)蓛纱钆?,運(yùn)行結(jié)果如表4所示。

由表4可知,當(dāng)取子樹(shù)棵樹(shù)為1 500、特征數(shù)量為√N(yùn)時(shí),能達(dá)到最高86%的準(zhǔn)確率。因此對(duì)于本次分類任務(wù),本文認(rèn)為使用上述搭配效果最佳。

4.2? 模型測(cè)試

雖然得到了更好的參數(shù)搭配,但是我們還要測(cè)試優(yōu)化模型在該參數(shù)搭配下的其他性能。為此我們重復(fù)100次實(shí)驗(yàn),統(tǒng)計(jì)每次實(shí)驗(yàn)下原模型和優(yōu)化模型的準(zhǔn)確率,計(jì)算100次實(shí)驗(yàn)中兩個(gè)模型的平均準(zhǔn)確率。

由于隨機(jī)森林采取的是有放回的隨機(jī)抽樣,因此每次運(yùn)行的準(zhǔn)確率略有不同,故通過(guò)這種方法得到的準(zhǔn)確率波動(dòng)是具有參考價(jià)值的。通過(guò)這樣的比較,我們希望看到的是優(yōu)化后的模型比原模型具有更好的穩(wěn)定性以及更高的預(yù)測(cè)準(zhǔn)確率,甚至可以有更高的查準(zhǔn)率、召回率以及F-score值。于是,我們分別運(yùn)行原模型和優(yōu)化模型,得到各自的預(yù)測(cè)準(zhǔn)確率,繪制它們的對(duì)比圖,詳情如圖2所示。

原模型取子樹(shù)棵樹(shù)為50,特征數(shù)量為8時(shí)的預(yù)測(cè)準(zhǔn)確率波動(dòng)圖;優(yōu)化模型選取子樹(shù)棵樹(shù)為1 500,特征數(shù)量為√N(yùn)的預(yù)測(cè)準(zhǔn)確率波動(dòng)圖。兩模型均值和方差對(duì)比如表5所示。

對(duì)比發(fā)現(xiàn),原模型平均準(zhǔn)確率是82.48%,優(yōu)化后的預(yù)測(cè)準(zhǔn)確率在85.22%上下波動(dòng),比原來(lái)提高2.00%以上。另外,原模型準(zhǔn)確率最低是77.80%,最高是86.70%,最大波幅4.00%以上;優(yōu)化模型準(zhǔn)確率最低為83.10%,最高為87.30%,波幅不超過(guò)2.20%,最大波幅比原來(lái)減小2.00%以上。

由表5可以看出,調(diào)參之后隨著生成子樹(shù)的數(shù)量的提高,模型的穩(wěn)定性也提高了,同時(shí)隨著選取特征數(shù)量的調(diào)整,預(yù)測(cè)準(zhǔn)確率也有所上升,達(dá)到了預(yù)期目標(biāo)。

接著,再來(lái)看看原模型和優(yōu)化模型在micro算法下運(yùn)行100次的查準(zhǔn)率、召回率以及F-score值這三種分類指標(biāo)的均值,如表6所示。

顯然,優(yōu)化模型三種分類指標(biāo)均有明顯提升。綜上所述,優(yōu)化后的模型具有比原模型更好的穩(wěn)定性以及更高的預(yù)測(cè)準(zhǔn)確率,甚至可以有更高的查準(zhǔn)率、召回率以及F-score值。故此可以采納該參數(shù)配置的隨機(jī)森林算法。

5? 結(jié)? 論

本文介紹了機(jī)器學(xué)習(xí),講解了集成學(xué)習(xí)的Bagging算法,重點(diǎn)放在Bagging中的隨機(jī)森林上,并用Matlab代碼實(shí)現(xiàn)了隨機(jī)森林算法。

對(duì)于隨機(jī)森林,其優(yōu)點(diǎn)是具有極高的準(zhǔn)確率;它引入隨機(jī)性,使得隨機(jī)森林不容易過(guò)擬合,具有很好的抗噪聲能力,對(duì)異常點(diǎn)/離群點(diǎn)不敏感;而且它能夠處理很高維度的數(shù)據(jù),并且不用做特征選擇;隨機(jī)森林還可以得到變量重要性排序。其缺點(diǎn)是相比于其他算法,隨機(jī)森林的輸出預(yù)測(cè)可能較慢。

用Matlab實(shí)現(xiàn)隨機(jī)森林算法的難點(diǎn)在于算法的子函數(shù)很多,邏輯關(guān)系較為復(fù)雜,代碼需要調(diào)試很久。

應(yīng)用隨機(jī)森林算法的難點(diǎn)在于參數(shù)調(diào)整是否合適,另外,訓(xùn)練樣本集、隨機(jī)劃分和選擇屬性也很重要。

參考文獻(xiàn):

[1] 周志華.機(jī)器學(xué)習(xí) [M].北京:清華大學(xué)出版社,2016.

[2] 方匡南,吳見(jiàn)彬,朱建平,等.隨機(jī)森林方法研究綜述 [J].統(tǒng)計(jì)與信息論壇,2011,26(3):32-38.

[3] 董樂(lè)紅,耿國(guó)華,高原.Boosting算法綜述 [J].計(jì)算機(jī)應(yīng)用與軟件,2006,23(8):27-29.

[4] 胡永德.海量光譜數(shù)據(jù)降維方法的研究與應(yīng)用 [D].濟(jì)南:山東大學(xué),2021.

[5] BREIMAN L. Random forests [J].Machine Learning,2001,45(1):5-32.

[6] 周惠慧.恒星天文光譜數(shù)據(jù)分類方法探究 [J].信息與電腦(理論版),2021,33(7):84-86.

[7] 劉曼云,趙正旭,王威,等.LAMOST恒星光譜數(shù)據(jù)分析 [J].信息技術(shù)與信息化,2019(11):193-197.

作者簡(jiǎn)介:袁正熙(2000—),男,漢族,廣東東莞人,本科在讀,研究方向:應(yīng)用統(tǒng)計(jì)。

猜你喜歡
隨機(jī)森林
隨機(jī)森林算法在中藥指紋圖譜中的應(yīng)用:以不同品牌夏桑菊顆粒指紋圖譜分析為例
基于隨機(jī)森林的登革熱時(shí)空擴(kuò)散影響因子等級(jí)體系挖掘
基于隨機(jī)森林的HTTP異常檢測(cè)
個(gè)人信用評(píng)分模型比較數(shù)據(jù)挖掘分析
隨機(jī)森林在棉蚜蟲害等級(jí)預(yù)測(cè)中的應(yīng)用
基于二次隨機(jī)森林的不平衡數(shù)據(jù)分類算法
拱壩變形監(jiān)測(cè)預(yù)報(bào)的隨機(jī)森林模型及應(yīng)用
基于隨機(jī)森林算法的飛機(jī)發(fā)動(dòng)機(jī)故障診斷方法的研究
基于奇異熵和隨機(jī)森林的人臉識(shí)別
基于隨機(jī)森林算法的B2B客戶分級(jí)系統(tǒng)的設(shè)計(jì)