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

基于Spark框架XGBoost的林業文本并行分類方法研究

2019-06-27 06:06:40崔曉暉師棟瑜陳志泊
農業機械學報 2019年6期
關鍵詞:分類文本模型

崔曉暉 師棟瑜 陳志泊 許 福

(北京林業大學信息學院, 北京 100083)

0 引言

信息資源的開發利用是國家信息化的核心,隨著我國信息化建設的深入,物聯網、大數據等技術與林業快速融合,大量涉林的信息網站、數據庫、林業監測與評估系統等涌現,從而積累了豐富的林業文本信息,亟待挖掘。但是,各系統間的信息缺乏規劃與共享,導致林業文本的信息整合水平不足、利用率低下[1]。因此,對互聯網中海量林業文本自動進行精準、快速的分類將有助于推進林業信息化進程,為林業信息的挖掘、熱點提取、輿情分析、智能信息推送等研究提供科學的理論與技術支持。

文本分類[2]考慮的首要問題是如何準確判斷未知樣本的類別,常用于文本分類的算法包括K最近鄰(K-nearest neighbor,KNN)[3]、樸素貝葉斯(Naive Bayesian,NB)[4]、最大熵[5]、支持向量機(Support vector machine,SVM)[6]、決策樹[7]、深度神經網絡[8]等。文獻[9]將SVM算法應用于Web農業文本,依據數據采集源將文本分為8個產品類別,結果顯示SVM分類性能優于NB、決策樹等算法。

文本分類算法中的另一個問題是如何提高算法的執行效率,目前較可靠的優化方式是將算法并行化,而基于Spark環境實現算法的并行化是較為常見的解決方案[10]。

在林業文本分類領域,文獻[11]提出使用TF-IDF方法結合差分演化算法對ELM極端學習機優化的分類算法,文獻[12]則使用高斯混合的分類算法,文獻[13]引入LM模糊神經網絡優化的分類算法,三者以花、樹、蟲、土壤和水作為分類標簽進行實驗。實驗結果證明,三者使用的算法在其數據集上的表現均較好。但其數據采集不夠全面,標簽設定不夠科學,導致其分類模型無法適用于互聯網中現有的林業文本的分類,且算法均在單機環境中實現,未考慮算法的并行性,難以應對大批量數據分類[14]。

由相關文獻可知,林業文本分類的相關研究尚不成熟,其亟待解決的問題可概述為兩點:① 分類標簽設置不科學,其分類體系與林業結合程度低、領域覆蓋面不足,無法直接應用于互聯網中的涉林文本的分類。②分類算法多在單機環境下實現,缺乏算法并行方面的考慮,不具備應對實際大規模數據場景的能力。為解決上述林業文本分類問題,本文建立一套較為科學、完善的林業文本分類標簽,提出一種Spark框架下的XGBoost算法的并行實現方式,基于該設計構建并行化分類器,衡量不同數據集下該算法的效率和準確率,探索其在海量林業文本分類問題上的有效性。

1 相關技術

1.1 文本預處理流程

預處理是文本分類中最為重要的步驟之一,其處理結果直接影響到后續的分類精度。預處理步驟可概括如下:

(1)采用爬蟲技術獲取相應的涉林文本,去除異常數據后進行內容解析,使用正則表達式對網頁標簽進行過濾,建立符合條件的標題與正文。

(2)引入開源工具ANSJ包進行中文分詞。該分詞工具基于n-Gram+CRF+HMM并使用Java實現,分詞速度達到200萬字/s,準確率可達到96%以上,適用于當前對分詞效果要求較高的各類項目,其分詞效果如圖1所示。

(3)使用停用詞集合過濾無用的詞匯,構建文本的特征詞集合。

圖1 林業文本的分詞結果Fig.1 Word segmentation result of forestry text

1.2 基于TF-IDF的特征工程

高維度和高稀疏的向量矩陣給計算機的計算量和學習訓練過程增加機器負擔,且會影響分類精度,為進一步實現特征矩陣降維,需要對文本特征進行特征選擇。

向量空間模型(Vector space model,VSM)[15]是文本分類中最常見的特征標識形式。通過使用這種模型,每篇文檔被表示為一組特征向量D={(w1,f1),(w2,f2),…,(wi,fi),…,(wn,fn)},其中wi表示在D中出現的特征詞,fi是特征詞wi的權值。其中,i的取值為1,2,…,n,wi經由特征詞篩選得到,本文中的fi值將通過經典的詞頻-逆文件頻率算法(Term frequency-inverse document frequency,TF-IDF)[16]進行計算。

TF-IDF是文本挖掘中常用的加權技術之一,用于衡量一個字或詞在語料庫中的重要程度,其計算公式為

VTF-IDF=VTFVIDF

(1)

式中VTF——特征詞在文本中出現的頻率

VIDF——特征詞的逆向文檔頻率

1.3 XGBoost算法原理

XGBoost[17]是基于Gradient Boosting算法的一個優化版本,其通過將多個回歸樹模型集成在一起,形成一個強分類器,具有訓練速度快、可并行處理和泛化能力強等優勢。

該算法的基本思想[18-19]是選擇部分樣本和特征生成一個簡單模型作為基本分類器,在生成新模型時,學習以前模型的殘差,最小化目標函數并生成新模型,此過程重復執行,最終產生由成百上千的線性或樹模型,組合為準確率很高的綜合模型。它的目標函數Oobj經過泰勒公式展開后,最終化簡為

(2)

式中γ——學習率λ——正則化參數

T——回歸樹的葉子數量

Gj——一階導數Hj——二階導數

其中,Oobj的大小依賴于Gj和Hj的值,Oobj值越小,XGBoost模型的預測和泛化能力就越強。

1.4 Spark框架

Apache Spark[20]是UC Berkeley開源、類Hadoop MapReduce的通用并行計算框架,不同的是,Spark的Job中間結果可以保存在內存中,而不需要讀寫HDFS,因此,Spark是基于內存的并行化計算框架,其執行效率較Hadoop快數十倍乃至百倍。Spark通過基于彈性分布式數據集(Resilient distributed dataset,RDD)的編程模式,使得大部分數據并行算法均可運行于Spark集群中。

2 Spark下林業文本分類算法的并行化

2.1 林業分類標簽的設定

文獻[21]經調研將林業信息中各個類別的內容具體化,設計出科技、生產資料、市場、花卉、政策等類別,經過對爬蟲獲取數據的相似性比對,生產資料類與市場類文本存在大量的信息重疊,故將兩者合并為林業市場與產業類。根據文獻[22]提出林業科技類成果所具有的特點,將科技類報道與技術類成果組合為林業科學與技術類(包含林業論文、林業專利和科學類新聞等)。文獻[23]指出林業資源監管中主要包含森林資源、濕地資源以及生物多樣性資源等,而花卉植被屬植物類,占生物多樣性較大比重,因此,將生物多樣性資源分類為動物類與植物類。至此,在總結前人研究的基礎上,將整體樣本分為林業新聞與政策類(A類)、林業科學與技術類(B類)、林業市場與產業類(C類)以及林業資源類(D類)4類,并將采集到樣本量最多的林業資源類文本分成4個子類,即森林類(D1類)、植物類(D2類)、動物類(D3類)、濕地類(D4類)。相較以往分類體系,該體系分類標簽設定更為科學、全面,使得分類模型與林業領域結合更為緊密,也有利于未來更細層面的林業文本分類研究。

根據文獻[24]提供的爬蟲思路,從互聯網中采集原始數據,爬蟲語料中約75%的文本來源于中國林業新聞網、中國林業政府網、林業信息網、林業產業網等林業相關網站,其余約25%來源于新聞刊物,如新華網、綠色時報、百度新聞等綜合型新聞網站。隨后,從每類中提取3 000篇文章,即所有實驗樣本數為21 000,將數據按各自標簽存入Hadoop Hive數據倉庫作林業語料。

2.2 基于Spark文本分類的并行化設計

基于Spark的林業文本分類流程主要分為預處理過程、訓練與測試過程。其中,文本預處理中的預處理、特征值計算以及特征詞的選取均基于RDD并行化實現(圖2)。該預處理程序由Driver模塊、Mapper模塊以及Reducer模塊組成。Driver用于與底層溝通,初始化集群組件;Mapper模塊用于將包含原始文本的RDD_data進行去噪、分詞形成新的RDD_words,隨后執行Reducer模塊,基于CHI值進行篩選并使用TD-IDF進行各個特征詞的權重計算,隨后生成詞向量形式的RDD_vec。

圖2 文本預處理的并行化實現Fig.2 Parallelization of text preprocessing

基于Spark框架下XGBoost的并行化思想是通過RDD算子與框架的內存迭代機制提高算法的執行效率來實現的。其中,Spark集群各節點讀取訓練數據RDD_vec存于內存中。Mapper部分主要完成決策樹的學習過程:在選取分裂節點時,并行計算各個特征的增益,選取增益最大的特征進行分裂以進行樹的構建;樹的各分支的節點選取都通過并行化進行訓練,在達到建樹的最大深度或分類增益小于設定閾值后停止建樹,從而完成一次算法中的多個樹模型的生成工作;隨后由Reducer比較并構建準確率相對更高的樹模型,輸出一輪迭代的結果,隨后將迭代結果輸入到下次迭代中,直到選取出最優模型。

林業文本的訓練與測試過程主要分為如下步驟(圖3):

(1)對語料中的文本進行自動分詞,去除低頻詞與停用詞,構建為〈標簽,(文本,特征詞集)〉的鍵值對形式,存入RDD_data。

(2)通過利用TF-IDF進行特征詞的權重計算并進行特征向量化,形成〈標簽,(文本,特征詞集,TF-IDF權值)〉鍵值對形式的RDD_vec。

(3)提取RDD_vec中的〈標簽,(特征詞集,TF-IDF權值)〉,通過Spark提供的轉換算子與執行算子構造XGBoost與其他4種算法的并行分類器。

(4)以隨機選取的方式將90%的鍵值對作為訓練集RDD_train傳入分類器,分類器進行迭代訓練,并將結果與模型保存。

(5)將余下10%的鍵值對作為測試集RDD_test對保存模型的精準率進行驗證。

(6)重復步驟(4)~(5),選取最優參數組合,將最優模型保存在Hive數據倉庫中;基于此,模型將不斷進行新數據的訓練,從而積累較為科學的林業語料。

圖3 基于Spark的文本分類處理流程圖Fig.3 Process of forestry text classification based on Spark

3 實驗與結果分析

3.1 實驗環境與評價指標

采用的硬件環境是Centos7、Hadoop 2.7.0、Spark 2.2.0、Hive 2.1.1構成的仿真平臺。實驗環境共由5臺主機構成Spark計算集群,其中1臺為Master 節點,其余4臺為 Slave節點,各工作節點的運行內存為4 GB。

對分類效果的評價采用精準率P(precision)、召回率R(recall)、綜合評價指標F1(F1-measure)、準確率A(accuracy)等指標,其計算公式為[25]

(3)

(4)

(5)

(6)

式中TP——將正類預測為正類的樣本數

TN——將正類預測為負類的樣本數

FP——將負類預測為正類的樣本數

FN——將負類預測為負類的樣本數

精準率衡量類別的查準率,召回率衡量類別的查全率,F1則綜合了P和R的結果,所以F1越高則說明實驗方法越有效,分類器的分類性能越好。

3.2 語料的特征詞分析

對預處理后的21 000個林業文本語料進行分詞統計,共計4 402 145個有用詞條,無重復詞集共計264 423個,平均一篇文章中影響分類的詞數約為209個;篇幅最長的樣本包含詞數為11 806個,最短一篇包含詞數為34個。現分別為每個類別計算候選詞的TF-IDF值,并選取每個類別的前10個特征詞,如表1所示。

由表1可見,語料中各類別中最為靠前的10個特征詞頻中,僅存在少量交集,且與該標簽對應的林業專題動態信息的主題相符,“改革”與“林權”等詞匯高頻出現與國家推動林業改革的情形相符,說明該分類體系可用于進一步提取林業領域的“熱詞”;而科學與技術類、市場與產業類以及植物類的高頻詞匯,一定程度上反映出林業研究多集中于花卉、林木,出現這些詞頻的樣本在結合“花瓣”、“花種”等領域專屬名詞集合時,即可為挖掘文章主題、提取信息主干等研究提供新思路。因此,本文設計的分類標簽相比原有分類標簽更為科學,且有益于林業文本的拓展研究。

表1 各類別林業文本的前10個特征詞Tab.1 Top 10 characteristic entries of each category

3.3 各并行算法評價指標的對比

使用前文中敘述的分類實驗方法,從Hive數據倉庫中,每類調取3 000個樣本作為實驗數據,隨機選取其中90%樣本為訓練集,其余10%的樣本為測試集。為驗證并行化環境下,XGBoost與傳統機器學習算法、基于神經網絡的算法的性能,實驗選取了NB、GBDT決策樹代表傳統機器學習,選用ELM極端學習機和BP神經網絡(Back propagation neural network,BPNN)作為神經網絡算法的代表,將經過網格搜索獲取其最優參數的5種并行化算法測試結果的F1記錄為表2。

圖4 各算法的準確率與訓練時間對比Fig.4 Comparison of accuracy value and training time of each parallel algorithm on 100% data

由表2可知,在100%的數據集下,XGBoost在每個類別上的F1均高于其他4種機器學習算法。模型訓練過程與XGBoost相似的GBDT的性能僅次于XGBoost算法。在面對海量文本的分類場景中,兩種基于神經網絡的算法ELM與BPNN整體分類效果不如其他3種算法。

XGBoost算法在A、C、D4這3類上的F1分別為0.998 4、0.982 9和0.945 6,尤其A類與C類的F1幾乎達到1.0,說明林業新聞與政策類和林業市場與產業類的文本較其他5個類別更易被區分,其次更易被分類的是動物類文本,而在B、D1、D2、D3類別上的表現并不突出,其值均在0.85~0.9之間,即科學與技術類、森林類、植物類、濕地類文章的部分樣本具有相似性,這也與實際情況相符,林業的研究多集中于森林與濕地兩大生態系統,并以林木花草等為研究主體,而在表1中也可以明顯看到,“花卉”、“林木”、“研究”等詞在類別中有交叉,與當前的實驗結果相吻合。

表2 各文本分類算法的F1對比Tab.2 Comparison of F1 values of each text classification parallel algorithm

在其他4種算法的結果中,GBDT在A和C類的F1高于0.9,但在D1類低于0.7;NB算法在A、D2、D4類上的F1達到0.8以上;ELM與BPNN在各類別上的精度略有差距,兩者整體的分類精度不高,說明在應對海量數據的分類場景時,兩分類算法需進一步優化。

顯然,XGBoost算法在各個類別數據上的精準度、召回率以及F1上有明顯的優勢,在優勢類別中的文本分類精度極高,且該算法訓練的模型更符合實際場景,從而驗證了XGBoost在海量林業文本分類問題上的有效性。

圖4是基于Spark并行環境下的各分類算法的準確率與執行效率的對比,其準確率與表2中F1的分布一致:XGBoost算法的分類準確率最高,為0.923 4。從圖4b可看出,BP神經網絡的訓練時間最長,為2 182 s,其次是ELM算法,這與神經網絡算法的執行時間常高于傳統機器學習算法的情形相符。因此,XGBoost在保持極高準確率的情況下,時間執行效率方面遠優于兩種神經網絡算法,略慢于傳統機器學習算法。

3.4 不同訓練集對分類結果的影響

依照林業文本分類流程,從語料的各個類別中分別隨機取數量為90、150、300、600、1 200、1 800、2 400、2 700、3 000的樣本構成信息量不同的實驗數據集;其中,90%用于模型訓練,10%用于測試,由交叉驗證求取不同訓練集下XGBoost最優分類結果如表3所示,并以同樣流程求取其他算法的分類結果進行對比分析,對比結果如圖5所示。

表3 訓練樣本量對XGBoost算法F1的影響Tab.3 Influence of number of training samples on XGBoost classification F1 value

圖5 訓練數量對各并行算法分類結果的影響Fig.5 Influence of number of training samples on results of each parallel algorithm

由表3與圖5可以看出,樣本數量對分類算法的精準率影響較大,在低于600(20%)個訓練樣本下,各算法分類精度均不穩定,某些類別上的分類精準率會低于0.7。隨著訓練樣本數量的增加,XGBoost精度穩定提升,而兩類神經網絡算法對新數據的支持能力較差,導致其精度不穩定。當樣本文本數量增加到約2 400(80%)個后,繼續增加樣本文本的數量,XGBoost分類精準率提升緩慢直至趨于穩定;而GBDT和NB在多數類別上逐漸趨于穩定,少數類別伴隨有輕微下減的趨勢。由圖5h可見,隨著樣本的繼續增加,XGBoost算法的準確率扔保持緩慢上升的趨勢。

最后,為驗證XGBoost算法模型的實用性,選取中國林業網的20條最新新聞進行模型驗證,驗證集的準確率為0.95,說明該分類器在實際場景下的林業文本分類應用性好,可直接用于互聯網中的涉林文本的分類。

3.5 加速比

加速比通常用于衡量平臺的計算節點數量對算法并行效率的影響。實驗將計算節點數由單機模式逐漸增加工作節點到4個,將2.1萬條、4.2萬條、8.4萬條訓練集下的實驗結果記錄為表4。

表4 Spark集群不同節點數對加速比的影響Tab.4 Effect of number of distributed nodes on speedup ratio

由表4可以看出,在僅有一個工作節點的集群模式下,Spark集群運行效率不及單機算法,原因在于Spark本身的資源調度需占用一部分資源和時間。在數據集僅有2.1萬條時,加速比僅為2.13,并不夠明顯;而增加1倍數據時,加速比提升至3.47;增加至4倍時,加速比提升為3.82。其中,當數據為2.1萬條時,從單機至4個節點的運行時間分別為902、930、423 s。可以看出,隨著節點數的增加,實驗所需要的訓練時間呈下降趨勢。

綜上,該并行算法較單機版本效率提升明顯,且數據量越大,該算法的并行效率越高。

4 結論

(1)針對現有林業分類研究中暴露出的分類標簽設定不科學、實驗訓練產出的模型不具有實用性的問題,借鑒林業專家提出的林業主題信息種類,重新進行分類標簽的設定;基于林業爬蟲技術采集涉林文本,從林業需求出發,設計出分類粒度更細致的分類體系,使得分類模型可直接用于互聯網中的海量涉林文本分類;將分類后的樣本以統一的格式保存后,可逐漸積累林業語料,為后續層次更為細致的林業文本分類研究做鋪墊。

(2)針對傳統林業文本分類中執行效率低、精準度不高的問題,提出一種基于Spark計算環境的XGBoost并行化方法。各算法的對比結果表明,在包含不同比例的數據集上,該并行設計XGBoost算法較其他算法的優勢表現在3個方面:① 各個類別的精度均高于其他算法,在優勢類別上的F1可達到0.998 4。② 模型通過訓練達到精度峰值所需的樣本量較其他算法相對更少。③ 模型的精準率趨于穩定后,隨著樣本的增加,其精準率保持穩定緩慢增長,并未呈現出明顯的下降趨勢,適用于未來更多新語料加入模型進行訓練的場景。此外,由加速比實驗可以看出,該并行化算法較單機算法提升明顯,且數據量越大,并行效率越高。綜上,并行XGBoost算法可有效解決海量林業文本的高效、精準分類問題。

(3)本文的分類結果并未達到完全正確的水平,除受算法本身的限制外,類別之間的少量樣本存在交叉現象也是原因之一。因此,本文建立的分類體系仍可以從細化分類粒度的層面加以改進。

猜你喜歡
分類文本模型
一半模型
分類算一算
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
在808DA上文本顯示的改善
分類討論求坐標
基于doc2vec和TF-IDF的相似文本識別
電子制作(2018年18期)2018-11-14 01:48:06
數據分析中的分類討論
教你一招:數的分類
3D打印中的模型分割與打包
主站蜘蛛池模板: 小说区 亚洲 自拍 另类| 理论片一区| 青青青视频蜜桃一区二区| 久久青草精品一区二区三区| 亚洲综合一区国产精品| 亚洲欧美自拍视频| 国产精品自在自线免费观看| 欧美精品二区| 国产精品污视频| 国产精品女人呻吟在线观看| 久久夜色精品国产嚕嚕亚洲av| 欧美午夜一区| 在线精品亚洲一区二区古装| 久久伊人色| 正在播放久久| 青青青视频91在线 | 国产精品护士| 久久免费精品琪琪| 无码av免费不卡在线观看| 91最新精品视频发布页| 国产97视频在线| 日本不卡免费高清视频| 欧美成人影院亚洲综合图| 亚洲综合九九| 亚洲国产日韩在线成人蜜芽| 精品国产自| 最新国语自产精品视频在| 国产日韩欧美精品区性色| 色欲不卡无码一区二区| 国产va欧美va在线观看| 亚洲成人精品| 爱爱影院18禁免费| 国产成人精品一区二区秒拍1o| 色综合热无码热国产| 日韩麻豆小视频| 欧美性色综合网| 毛片基地美国正在播放亚洲| 日韩精品久久久久久久电影蜜臀| 精品国产香蕉在线播出| 国国产a国产片免费麻豆| 成人国产一区二区三区| 高清不卡一区二区三区香蕉| 午夜福利网址| 中文字幕资源站| 蜜桃视频一区二区| 亚洲精品无码av中文字幕| 成人无码一区二区三区视频在线观看| 国产综合日韩另类一区二区| 亚洲成A人V欧美综合天堂| 国产理论一区| 欧美午夜久久| AV不卡无码免费一区二区三区| 99视频精品在线观看| 久久精品亚洲热综合一区二区| 亚洲视频免| 亚洲欧美极品| 成人在线亚洲| 丝袜国产一区| 18禁不卡免费网站| 日本不卡在线视频| 在线免费看片a| 国产精品久久久久久影院| 亚洲性视频网站| 国产69精品久久久久妇女| 日韩人妻无码制服丝袜视频| 欧美亚洲激情| 日本www在线视频| 国产爽歪歪免费视频在线观看 | 亚洲人成在线精品| 亚洲精品你懂的| 色婷婷久久| 欧美一区中文字幕| 国产91高清视频| 亚洲一区二区三区中文字幕5566| 亚洲AV成人一区二区三区AV| 67194亚洲无码| 高清无码一本到东京热| 在线日本国产成人免费的| 国产主播在线观看| 国产JIZzJIzz视频全部免费| 狠狠色婷婷丁香综合久久韩国| 国产成人91精品|