999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于隨機森林的光譜分類模型研究

2021-10-16 16:01:54袁正熙
現代信息科技 2021年7期

摘要:文章第一節介紹集成算法原理;第二節系統理論地說明了Bagging算法;第三節介紹隨機森林算法;第四節介紹實驗內容以及程序模塊,利用Python實現光譜數據的分類并評估結果,然后實行調參,得到最優的參數搭配;第五節對優化模型進行測試,與原模型比較準確率、查準率、召回率、F-score值等指標,發現優化后的結果優良;第六節總結隨機森林算法的優缺點。

關鍵詞:集成學習;Bagging;隨機森林

中圖分類號:TP273.4 文獻標識碼:A? 文章編號: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? 引? 言

機器學習,一般來說是致力于研究如何通過計算的手段、利用經驗來改善系統自身性能的一種方法。對于機器學習而言,“經驗”往往是以數據形式儲存起來的。機器改善性能的方法是通過數據的不斷訓練產生“模型”,繼而使得該“模型”能夠盡可能地適用于更多的數據。目前,機器學習有多種算法,比如:決策樹、神經網絡、支持向量機、貝葉斯分類、LDA,等等。通常來說,一個研究可以使用多種算法,而集成學習則能夠結合多個算法使得機器學習具有更好的效果以及更優越的泛化性能。

1? Bagging算法

集成學習的方法有并行和串行兩種,Bagging算法是并行式集成學習方法最著名的代表。Bagging是基于Boostrap Sampling采樣方法,給定m個樣本的數據集,隨機取出一個樣本,接著再把剛才抽到的樣本放回數據集中,由此使得下一次抽樣的數據集與上一次的情形完全相同。這樣,經過m次抽取,我們得到m個樣本集。根據Boostrap Sampling采樣方法,這m個樣本集里的某些元素可能重復多次,也可能有部分樣本未出現在樣本集中。

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

2? 隨機森林

隨機森林是使用多棵決策樹對樣本進行訓練并預測的一種集成分類器,該分類器最早由Leo Breiman和Adele Cutler于1995年提出。它以決策樹為基學習器,使用Bagging集成方法,并在此基礎上引入隨機屬性的選擇。隨機森林有許多優勢:算法簡單、易于實現、計算開銷小等,其甚至被譽為“代表集成學習技術水平的方法”。

簡單來說,隨機森林分為四個步驟:第一,使用Bagging方法形成每棵樹的訓練樣本集;第二,隨機選取分裂屬性集,假設當前節點共有d個可用屬性,指定一個屬性數k(k≤d),從d個屬性中隨機抽取k個屬性作為分裂屬性集,并從分裂屬性集中選擇最優屬性用于數據劃分;第三,每棵樹任其生長,不進行剪枝;第四,根據投票法則對樣本類別進行投票。

具體形式如圖1所示,設數據集為D且創建k棵決策樹,則對應有k個隨機向量θi(其中i=1,2,…,k),數據集D在每個θi對應有一個子集數據集供Di第i棵決策樹學習,得到決策樹分類結果i。最后利用投票決定最優的分類結果。

3? 實驗及調參優化

3.1? 數據預處理

3.1.1? 標準化處理

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

(1)

3.1.2? 連續值處理

一般地,我們考慮將連續值離散化以適應決策樹模型。這里,我們應用二分法對連續值進行處理。

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

(2)

即把區間[ai,ai+1)的中位點作為劃分點。然后,我們就可以像離散屬性值一樣來考察這些劃分點,選取最優的劃分點進行樣本集合的劃分。

3.2? 實驗流程

我們采用隨機森林算法,使用Matlab實現對數據的分類,將代碼劃分為訓練、測試、調度三個模塊。

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

訓練模型為整個實驗的核心,因此將訓練模塊的關鍵代碼特別進行展示,以下為代碼清單:

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

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

%? ?其中train_y 為k*1矩陣;矩陣存放標簽

%? ?數據都已標準化

%? ?test與train數據結構類似

%? ?N:為隨機森林內決策樹的數量

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

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

%% 初始化隨機森林

theTrees=[];

global Tree;

%%循環N次生成隨機森林

for i=1:N

%%單棵樹的初始化

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',[]);

%%有放回采樣訓練集

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));

%利用二分法將連續屬性離散化

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

end

%% 開始生成樹

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

Tree(1)=[];

theTrees{i}=Tree;

end

end

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

在調度模塊中,如表3所示,首先讀取訓練數據、測試數據、標簽集和光譜型的7種類型;第一步,調用訓練模塊;第二步,調用測試模塊;第三步,評估結果即測試隨機森林的精度;最后,計算程序運行時間并輸出分類準確率。

3.3? 實驗數據

本文運用的數據是LAMOST平臺提供的恒星光譜數據,該樣本數據有481個屬性,其中訓練集保存了159條樣本數據和標簽,測試集保存了200條樣本數據和標簽。每條數據的標簽有三列信息,第一列是對應光譜數據的光譜型,第二列是光譜次型,第三列是光度型。本文只對第一列的光譜型數據進行分類,其他兩列類同。

3.4? 實驗結果

運行程序,我們得到隨機森林算法對數據庫的分類效果。默認使用50個子樹數量、8個特征數量,得到準確率約為82%。

4? 模型優化及測試

4.1? 模型優化

為了得到更滿意的學習效果,本文需要盡量遍歷盡可能多的組合方式,找到最優分類效果。假設樣本特征數為N,我們分別使用“50、100、1 000、1 500”子樹數量與N個、8個、log2N個、 √N個特性數量兩兩搭配,運行結果如表4所示。

由表4可知,當取子樹棵樹為1 500、特征數量為√N時,能達到最高86%的準確率。因此對于本次分類任務,本文認為使用上述搭配效果最佳。

4.2? 模型測試

雖然得到了更好的參數搭配,但是我們還要測試優化模型在該參數搭配下的其他性能。為此我們重復100次實驗,統計每次實驗下原模型和優化模型的準確率,計算100次實驗中兩個模型的平均準確率。

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

原模型取子樹棵樹為50,特征數量為8時的預測準確率波動圖;優化模型選取子樹棵樹為1 500,特征數量為√N的預測準確率波動圖。兩模型均值和方差對比如表5所示。

對比發現,原模型平均準確率是82.48%,優化后的預測準確率在85.22%上下波動,比原來提高2.00%以上。另外,原模型準確率最低是77.80%,最高是86.70%,最大波幅4.00%以上;優化模型準確率最低為83.10%,最高為87.30%,波幅不超過2.20%,最大波幅比原來減小2.00%以上。

由表5可以看出,調參之后隨著生成子樹的數量的提高,模型的穩定性也提高了,同時隨著選取特征數量的調整,預測準確率也有所上升,達到了預期目標。

接著,再來看看原模型和優化模型在micro算法下運行100次的查準率、召回率以及F-score值這三種分類指標的均值,如表6所示。

顯然,優化模型三種分類指標均有明顯提升。綜上所述,優化后的模型具有比原模型更好的穩定性以及更高的預測準確率,甚至可以有更高的查準率、召回率以及F-score值。故此可以采納該參數配置的隨機森林算法。

5? 結? 論

本文介紹了機器學習,講解了集成學習的Bagging算法,重點放在Bagging中的隨機森林上,并用Matlab代碼實現了隨機森林算法。

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

用Matlab實現隨機森林算法的難點在于算法的子函數很多,邏輯關系較為復雜,代碼需要調試很久。

應用隨機森林算法的難點在于參數調整是否合適,另外,訓練樣本集、隨機劃分和選擇屬性也很重要。

參考文獻:

[1] 周志華.機器學習 [M].北京:清華大學出版社,2016.

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

[3] 董樂紅,耿國華,高原.Boosting算法綜述 [J].計算機應用與軟件,2006,23(8):27-29.

[4] 胡永德.海量光譜數據降維方法的研究與應用 [D].濟南:山東大學,2021.

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

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

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

作者簡介:袁正熙(2000—),男,漢族,廣東東莞人,本科在讀,研究方向:應用統計。

主站蜘蛛池模板: 欧美午夜视频在线| 国产欧美一区二区三区视频在线观看| 亚洲日本韩在线观看| 国产成人无码AV在线播放动漫| 亚洲人成人无码www| 国产尤物视频网址导航| 国产成人综合久久| 男人天堂亚洲天堂| 久久综合AV免费观看| 国内精品一区二区在线观看| 97在线观看视频免费| 亚洲一区色| 日本成人一区| 日本道综合一本久久久88| 免费一级毛片| 久久一日本道色综合久久| 激情六月丁香婷婷四房播| 国产精品自在在线午夜区app| 免费毛片网站在线观看| 国产乱人免费视频| 免费高清毛片| 尤物国产在线| 色综合五月| 99热最新在线| 原味小视频在线www国产| 人妻精品久久无码区| 国产网友愉拍精品视频| 不卡网亚洲无码| 亚洲黄网在线| 国产91九色在线播放| 国产大片黄在线观看| 婷婷色狠狠干| 中文成人在线视频| 亚洲人网站| 伊人久久大香线蕉aⅴ色| 91亚洲视频下载| 91极品美女高潮叫床在线观看| 国产日韩AV高潮在线| 国产高潮视频在线观看| 亚洲Av激情网五月天| 精品国产网站| 狠狠操夜夜爽| 午夜电影在线观看国产1区| 日本人真淫视频一区二区三区| 538国产在线| 亚洲Aⅴ无码专区在线观看q| 国产国语一级毛片| 国产成人精品在线| 97久久精品人人| 亚洲高清中文字幕| 国产精品无码AV片在线观看播放| 欧美一级黄片一区2区| 日本人妻丰满熟妇区| 国产精品黄色片| 国产视频大全| 国产福利小视频在线播放观看| 国产视频a| 片在线无码观看| 99草精品视频| 国产性精品| 香蕉伊思人视频| 青青久视频| 91福利国产成人精品导航| 国产高清毛片| 日韩小视频网站hq| 日本免费福利视频| 亚洲精品无码av中文字幕| 欧美亚洲国产日韩电影在线| 亚洲午夜18| 99无码中文字幕视频| 国产综合另类小说色区色噜噜| 夜夜拍夜夜爽| 亚洲成综合人影院在院播放| 在线播放91| 99这里只有精品在线| 三上悠亚在线精品二区| 欧美精品在线观看视频| 午夜a级毛片| 自拍偷拍欧美| 人妻91无码色偷偷色噜噜噜| 国产福利一区在线| 2048国产精品原创综合在线|