本發(fā)明涉及文本分類領(lǐng)域,更具體地,涉及一種基于Xgboost分類算法的文本分類方法。
背景技術(shù):
:文本分類方法已經(jīng)在搜索引擎、個(gè)性化推薦系統(tǒng)、輿情監(jiān)控等領(lǐng)域得到了廣泛的應(yīng)用,是實(shí)現(xiàn)高效管理和準(zhǔn)確定位海量信息的重要一環(huán)。文本分類方法的常用框架是基于機(jī)器學(xué)習(xí)分類算法,即包含數(shù)據(jù)預(yù)處理、接著特征提取、特征選擇、特征分類等步驟。特征提取即利用統(tǒng)一的方法和模型對(duì)文本進(jìn)行標(biāo)識(shí),該方法或者模型可以表示文本的特征并且能夠方便的轉(zhuǎn)化成數(shù)學(xué)語言,進(jìn)而轉(zhuǎn)化成計(jì)算機(jī)能夠處理的數(shù)學(xué)模型。現(xiàn)有的比較流行的文本表示方法有向量空間模型和潛在的語言分析模型。向量空間模型具有簡單、計(jì)算方便、預(yù)處理少等優(yōu)點(diǎn),當(dāng)然也具有忽略特征與特征之間的語義關(guān)系、表示文本的深度不夠等缺點(diǎn)。特征選擇是機(jī)器學(xué)習(xí)的關(guān)鍵問題之一,特征選擇結(jié)果的好壞直接影響著分類器的分類精度和泛化性能。特征選擇是從一組特征中挑選出一些最有效的特征從而降低特征空間的維數(shù),并達(dá)到剔除不相關(guān)或冗余的特征、減少運(yùn)行時(shí)間提高分析結(jié)果的可理解性、發(fā)現(xiàn)高維數(shù)據(jù)中隱藏的結(jié)構(gòu)等效果。依據(jù)數(shù)據(jù)是否具有類別信息,特征選擇可分為有監(jiān)督和無監(jiān)督兩類。文本分類中常用的特征選擇方法有:文檔頻次、互信息量、信息增益和卡方統(tǒng)計(jì)量(CHI)等方法。特征分類是文本分類中最后也是最重要的一環(huán)。樸素貝葉斯分類算法是一種典型的特征分類算法,根據(jù)貝葉斯公式,算出文本屬于某特定類別的概率,其所需估計(jì)的參數(shù)很少,對(duì)缺失數(shù)據(jù)不太敏感,算法也比較簡單,計(jì)算速度快,理論上與其他分類算法相比具有最小的誤差率,但實(shí)際上并非總是如此,因?yàn)樵摲椒僭O(shè)屬性之間相互獨(dú)立,這個(gè)假設(shè)在實(shí)際應(yīng)用中往往是不成立的。決策樹算法易于理解和解釋,能夠同時(shí)處理數(shù)據(jù)型和常規(guī)型屬性,在相對(duì)短的時(shí)間內(nèi)能夠?qū)Υ笮蛿?shù)據(jù)源做出可行且效果良好的結(jié)果,但決策樹處理缺失數(shù)據(jù)時(shí)比較困難,容易忽略數(shù)據(jù)集中屬性之間的相關(guān)性。其余的特征分類方法還包括有LR、KNN和SVM等。這些都是基學(xué)習(xí)器,集成學(xué)習(xí)通過將多個(gè)學(xué)習(xí)器進(jìn)行結(jié)合,??色@得比單一學(xué)習(xí)器顯著優(yōu)越的泛化性能。根據(jù)個(gè)體學(xué)習(xí)器的生成方式,目前集成學(xué)習(xí)方法大致可分為兩類,即個(gè)體學(xué)習(xí)器間存在強(qiáng)依賴關(guān)系、必須串行生成的序列化方法,以及個(gè)體學(xué)習(xí)器間不存在強(qiáng)依賴關(guān)系、可同時(shí)生成的并行化方法,前者代表是Boosting,后者代表是Bagging和“隨機(jī)森林”。從偏差-方差分解的角度看,Boosting主要關(guān)注降低偏差,因此Boosting能基于泛化性能相當(dāng)弱的學(xué)習(xí)器構(gòu)建出很強(qiáng)的集成。Bagging主要關(guān)注降低方差,因此它在不剪枝決策樹、神經(jīng)網(wǎng)絡(luò)等易受樣本擾動(dòng)的學(xué)習(xí)器上效用更為明顯。Xgboost分類算法是基于Boosting的一種集成學(xué)習(xí)方法,相比傳統(tǒng)的集成學(xué)習(xí)GBDT算法,Xgboost分類算法主要有以下八大優(yōu)點(diǎn):一、傳統(tǒng)GBDT以CART作為基分類器,Xgboost分類算法還支持線性分類器。二、傳統(tǒng)GBDT在優(yōu)化時(shí)只用到一階導(dǎo)數(shù)信息,Xgboost分類算法則對(duì)代價(jià)函數(shù)進(jìn)行了二階泰勒展開,同時(shí)用到了一階和二階導(dǎo)數(shù)。三、Xgboost分類算法在代價(jià)函數(shù)里加入了正則項(xiàng),用于控制模型的復(fù)雜度。正則項(xiàng)里包含了樹的葉子節(jié)點(diǎn)個(gè)數(shù)、每個(gè)葉子節(jié)點(diǎn)上輸出的分?jǐn)?shù)的L2模的平方和。從偏差-方差權(quán)衡角度來講,正則項(xiàng)降低了模型的方差,使學(xué)習(xí)出來的模型更加簡單,防止過擬合。四、縮減:相當(dāng)于學(xué)習(xí)速率。Xgboost分類算法在進(jìn)行完一次迭代后,會(huì)將葉子節(jié)點(diǎn)的權(quán)重乘上該系數(shù),主要是為了削弱每棵樹的影響,讓后面有更大的學(xué)習(xí)空間。五、列抽樣:Xgboost分類算法借鑒了隨機(jī)森林的做法,支持列抽樣,不僅能降低過擬合,還能減少計(jì)算。六、對(duì)缺失值的處理:對(duì)于特征的值有缺失的樣本,Xgboost分類算法可以自動(dòng)學(xué)習(xí)出它的分裂方向。七、支持并行。boosting是一種串行的結(jié)構(gòu),Xgboost分類算法的并行不是tree粒度的并行,Xgboost分類算法也是一次迭代完才能進(jìn)行下一次迭代的(第t次迭代的代價(jià)函數(shù)里包含了前面t-1次迭代的預(yù)測值)。Xgboost分類算法的并行是在特征粒度上的。決策樹的學(xué)習(xí)最耗時(shí)的一個(gè)步驟就是對(duì)特征的值進(jìn)行排序(因?yàn)橐_定最佳分割點(diǎn)),Xgboost分類算法在訓(xùn)練之前,預(yù)先對(duì)數(shù)據(jù)進(jìn)行了排序,然后保存為塊結(jié)構(gòu),后面的迭代中重復(fù)地使用這個(gè)結(jié)構(gòu),大大減小計(jì)算量。這個(gè)block結(jié)構(gòu)也使得并行成為了可能,在進(jìn)行節(jié)點(diǎn)的分裂時(shí),需要計(jì)算每個(gè)特征的增益,最終選增益最大的那個(gè)特征去做分裂,那么各個(gè)特征的增益計(jì)算就可以開多線程進(jìn)行。八、可并行的近似直方圖算法。樹節(jié)點(diǎn)在進(jìn)行分裂時(shí),需要計(jì)算每個(gè)特征的每個(gè)分割點(diǎn)對(duì)應(yīng)的增益,即用貪心法枚舉所有可能的分割點(diǎn)。當(dāng)數(shù)據(jù)無法一次載入內(nèi)存或者在分布式情況下,貪心算法效率就會(huì)變得很低,所以Xgboost分類算法還提出了一種可并行的近似直方圖算法,用于高效地生成候選的分割點(diǎn)。技術(shù)實(shí)現(xiàn)要素:本發(fā)明為解決以上現(xiàn)有技術(shù)提供的方法分類性能低、耗費(fèi)內(nèi)存大、分類準(zhǔn)確率低的缺陷,提供了一種基于Xgboost分類算法的文本分類方法。為實(shí)現(xiàn)以上發(fā)明目的,采用的技術(shù)方案是:一種基于Xgboost分類算法的文本分類方法,包括以下步驟:S1.獲取多個(gè)樣本,所述每個(gè)樣本包括文本內(nèi)容和文本的標(biāo)簽;S2.將步驟S1獲取的所有樣本按照一定比例劃分成訓(xùn)練樣本和預(yù)測樣本,其中訓(xùn)練樣本組成訓(xùn)練集,預(yù)測樣本組成預(yù)測集;S3.對(duì)于每個(gè)訓(xùn)練樣本,將其文本內(nèi)容中任意相鄰的兩個(gè)字用空格隔開,然后將該訓(xùn)練樣本的標(biāo)簽作為Labeled-LDA的標(biāo)簽輸入,并該訓(xùn)練樣本的文本內(nèi)容作為Labeled-LDA的文本輸入;S4.設(shè)置Labeled-LDA迭代次數(shù)為K,然后對(duì)訓(xùn)練樣本進(jìn)行迭代訓(xùn)練;S5.每個(gè)訓(xùn)練樣本經(jīng)過迭代后得到兩份文檔,一份是關(guān)于字及其對(duì)應(yīng)字編碼的,一份是關(guān)于主題與字編碼的,即每個(gè)主題下相應(yīng)字編碼出現(xiàn)的次數(shù);整合兩份文檔,得到訓(xùn)練樣本中每個(gè)字在每個(gè)主題下出現(xiàn)的次數(shù);對(duì)于每個(gè)主題,按照對(duì)應(yīng)的字的出現(xiàn)次數(shù)排序,選取與該主題最相關(guān)的m個(gè)字作為訓(xùn)練樣本的LLDA字;S6.對(duì)于每個(gè)訓(xùn)練樣本,統(tǒng)計(jì)其經(jīng)過步驟S5得到的各個(gè)LLDA字在其文本內(nèi)容中的出現(xiàn)次數(shù),并將該次數(shù)作為該特征的值,將得到每個(gè)樣本關(guān)于每個(gè)LLDA字的值,輸入至Xgboost分類算法中,然后對(duì)Xgboost分類算法進(jìn)行訓(xùn)練;S7.至此模型已經(jīng)訓(xùn)練好,需要對(duì)預(yù)測集進(jìn)行預(yù)測,即對(duì)預(yù)測集進(jìn)行步驟S3~S5的步驟,然后利用訓(xùn)練好的模型對(duì)預(yù)測集中的每個(gè)預(yù)測樣本進(jìn)行預(yù)測分類。優(yōu)選地,所述步驟S6中,若存在LLDA字在文本中的出現(xiàn)次數(shù)為0,則不將該LLDA字輸入至Xgboost分類算法中,即普通的分類算法輸入是矩陣形式,該方法輸入是字典形式,節(jié)省內(nèi)存,更方便快速合理地處理缺失值。優(yōu)選地,所述K為1000。與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:本發(fā)明提供的方法通過Labeled-LDA提取特征字來計(jì)算特征值,然后用Xgboost分類算法來進(jìn)行文本分類。其與普通的向量空間模型來做特征空間,普通的分類算法來進(jìn)行文本分類的方法相比所需耗費(fèi)的內(nèi)存得到了降低,這是由于中文文本中所包含的詞成百上千萬,維度較高,若以詞為特征,耗費(fèi)內(nèi)存巨大,甚至無法單機(jī)處理,而常用漢字不超過一萬個(gè),經(jīng)常出現(xiàn)的甚至只有兩三千個(gè),維度大大降低,而且Xgboost支持以字典而不是矩陣形式作為輸入。同時(shí)本發(fā)明提出一種新穎的具有潛在語義的有監(jiān)督特征選擇算法Labeled-LDA算法,用Labeled-LDA來做特征選擇既能利用LDA來挖掘大量語料的語義信息又能利用文本所包含的類別信息。而且預(yù)處理簡單,不需要精心提取特征,加上強(qiáng)大的支持分布式的集成學(xué)習(xí)算法Xgboost,提高了分類的準(zhǔn)確性和性能。附圖說明圖1為方法的流程圖。具體實(shí)施方式附圖僅用于示例性說明,不能理解為對(duì)本專利的限制;以下結(jié)合附圖和實(shí)施例對(duì)本發(fā)明做進(jìn)一步的闡述。實(shí)施例1本實(shí)施案例包括3個(gè)具體案例,分別對(duì)3個(gè)具有不同特點(diǎn)的文本語料庫進(jìn)行分類,即一個(gè)公開的英文語料庫WebKB,剔除掉沒有任何內(nèi)容的樣本,和兩個(gè)中文語料庫,其中一個(gè)是公開的長文本語料庫:復(fù)旦大學(xué)文本分類語料庫,另一個(gè)是中文短文本樣本非常不平衡的語料庫:新聞評(píng)論,分為正常和廣告兩種類別,正負(fù)比例達(dá)到2742/42416=0.065這樣的級(jí)別。表1文本分類數(shù)據(jù)集概要情況如圖1所示,本發(fā)明所述基于Xgboost分類算法用Labeled-LDA做特征提取的文本分類方法的具體實(shí)施步驟如下:步驟1:文本預(yù)處理預(yù)先準(zhǔn)備一批已分類的文本集,如3個(gè)案例,按照8:2的比例隨機(jī)劃分訓(xùn)練集和預(yù)測集(新聞評(píng)論),如公開的數(shù)據(jù)集已經(jīng)存在劃分則直接采用(WebKB和復(fù)旦文本分類),對(duì)所有文本進(jìn)行去燥,統(tǒng)一編碼為UTF-8,對(duì)于中文文本,用空格區(qū)分每一個(gè)字方便后面的程序處理,由于本發(fā)明是基于字特征的,常用的字加上標(biāo)點(diǎn)符號(hào)也不會(huì)超過一萬個(gè),而Labeled-LDA有強(qiáng)大的特征選擇能力,故中文文本分類常用的去掉標(biāo)點(diǎn)符號(hào)、數(shù)字、停用詞等預(yù)處理過程都可以省略掉,從實(shí)驗(yàn)結(jié)果也可以看出,這樣的預(yù)處理不是必須的,對(duì)于英文文本,則其預(yù)處理包括全部大寫轉(zhuǎn)為小寫、標(biāo)點(diǎn)符號(hào)用空格代替,這樣更能區(qū)分單詞的界限和符合英文的書寫習(xí)慣。步驟2:用Labeled-LDA對(duì)訓(xùn)練集進(jìn)行特征選擇本發(fā)明實(shí)驗(yàn)使用的是斯坦福自然語言處理工具TMT。先設(shè)置Labeled-LDA的各種參數(shù),包括文本分割方式和文本過濾方式、標(biāo)簽個(gè)數(shù)、迭代次數(shù)等,文本分割方式采用空格區(qū)分,標(biāo)簽個(gè)數(shù)看具體的語料集實(shí)際情況,迭代次數(shù)統(tǒng)一為1000次,訓(xùn)練結(jié)束后,得到兩個(gè)文件,一個(gè)是字對(duì)編碼的文件,一個(gè)是每個(gè)字編碼在每個(gè)主題下出現(xiàn)的次數(shù)的文件,合并這兩個(gè)文件得到每個(gè)字在每個(gè)主題下出現(xiàn)的次數(shù)的文件,然后在每個(gè)主題下,對(duì)每個(gè)字出現(xiàn)次數(shù)排序,取出出現(xiàn)次數(shù)最高的前N個(gè),則得到的這些字就是經(jīng)過Labeled-LDA特征選擇后留下的字,這些字可能存在重復(fù),排除冗余后計(jì)這些詞為LLDA詞,具有較豐富的語義信息,同時(shí)又是在標(biāo)簽這個(gè)強(qiáng)有力的監(jiān)督信息下訓(xùn)練得到的結(jié)果,具有很強(qiáng)的特征表達(dá)能力。步驟3:把訓(xùn)練集合預(yù)測集處理成Xgboosts的輸入格式Xgboost的輸入格式非常簡單方便和合理,對(duì)于訓(xùn)練集和預(yù)測集的每一個(gè)樣本,因?yàn)榘炎挚闯墒翘卣?,處理到?dāng)前字,如果該字是LLDA字,則相應(yīng)的LLDA字所對(duì)應(yīng)的特征的特征值加1,對(duì)于每一個(gè)樣本,沒有出現(xiàn)過的LLDA字,則相應(yīng)的LLDA字所對(duì)應(yīng)的特征的特征值為0,這個(gè)特征不用作為Xgboost的輸入;步驟4:Xgboost分類算法的參數(shù)設(shè)置,訓(xùn)練和預(yù)測設(shè)置Xgboost分類算法的參數(shù),選擇綜合效果最優(yōu)的參數(shù),最終設(shè)置的Xgboost分類算法參數(shù)為:迭代次數(shù)為200,類別數(shù)目(具體而定)、分類器類型為gbtree、目標(biāo)函數(shù)為multi:softmax、學(xué)習(xí)速率eta=0.3、樹的最大深度max_depth=6等,訓(xùn)練得到的模型對(duì)預(yù)測集進(jìn)行分類;步驟5:評(píng)估模型性能由于各個(gè)數(shù)據(jù)集差異較大,故針對(duì)不同的數(shù)據(jù)集采用不同的評(píng)判標(biāo)準(zhǔn),使得評(píng)判標(biāo)準(zhǔn)更具合理性。對(duì)于WebKB,有4個(gè)類別,采用微平均F1值(micro-F1)和宏平均F1值(macro-F1)來評(píng)估;定義如下:Pi為第i個(gè)類別的準(zhǔn)確率,Ri為第i個(gè)類別的召回率,n為類別綜述。復(fù)旦文本分類用微平均準(zhǔn)確率(micro-P)來評(píng)估;新聞評(píng)論由于類別特別不平衡,采用負(fù)樣本的準(zhǔn)確率P、召回率R以及F值來評(píng)估。本發(fā)明定義的模型記為LLDA-XG,實(shí)驗(yàn)結(jié)果如下:表2WebKB語料集上的分類性能實(shí)驗(yàn)結(jié)果RCCCentroidNBWinnowSVMLLDA-XGmicro_F189.6479.9586.4581.4089.2691.40macro_F188.0278.4786.0177.8587.6690.48表3新聞評(píng)論語料集上的分類性能實(shí)驗(yàn)結(jié)果BayesSGDCBagging+KNNSVMRFGBDTAdaboostLLDA-XGP69.5577.7197.0093.6596.492.2295.8094.52R91.6291.9885.2086.8189.8488.7785.5692.34F值79.0884.2490.7090.1092.9990.4690.4093.42表4復(fù)旦文本分類語料集上的分類性能實(shí)驗(yàn)結(jié)果從表2、表3和表4可以看出LLDA-XG模型性能在WebKB語料集、新聞評(píng)論語料集以及復(fù)旦本文分類語料集上都取得很好的效果,在WebKB語料集上micro_F1和macro_F1值都超過了90;在新聞評(píng)論語料集上LLDA-XG模型的準(zhǔn)確率不是最高的,但是召回率和F值都是最高的,說明LLDA-XG模型既能保持很高的準(zhǔn)確率又能保持很高的召回率,更加注重性能的均衡。在復(fù)旦文本分類語料集上,實(shí)驗(yàn)結(jié)果參考的是中國科學(xué)院大學(xué)研究神經(jīng)網(wǎng)絡(luò)和詞向量結(jié)合的來斯惟博士的畢業(yè)論文,LLDA-XG模型表現(xiàn)出非常出色,分類準(zhǔn)確率比循環(huán)卷積神經(jīng)網(wǎng)絡(luò)還要高,而且預(yù)處理非常少,運(yùn)行時(shí)間也快,單機(jī)性能普通的計(jì)算機(jī)四五分鐘就能得到結(jié)果,而神經(jīng)網(wǎng)絡(luò)則需要大量的計(jì)算時(shí)間。表5LLDA-XG在WebKB語料集上的分類時(shí)間性能實(shí)驗(yàn)結(jié)果特征數(shù)2154119257288micro-F190.2490.8291.4091.61macro-F189.1989.9890.4890.69時(shí)間(秒)3.7404.5605.7598.984表6LLDA-XG在新聞評(píng)論語料集上的分類時(shí)間性能實(shí)驗(yàn)結(jié)果特征數(shù)1542896744154P94.3993.9194.5394.13R90.0290.7392.3491.44F92.1592.2993.4292.77時(shí)間(秒)6.7397.7168.75610.589表7LLDA-XG在復(fù)旦文本分類語料集上的分類時(shí)間性能實(shí)驗(yàn)結(jié)果特征數(shù)40866513296707準(zhǔn)確率94.5995.2095.4195.39時(shí)間(秒)145.701206.362278.52351899874816342.354表5中,特征數(shù)從215增加到411個(gè)時(shí),micro-F1增長了0.58,macro-F1增長了0.79;特征數(shù)從411增加到925時(shí),micro-F1增長了0.58,macro-F1增長了0.5,;特征數(shù)從925增加到7288時(shí),特征數(shù)增長了7倍左右,而micro-F1和macro-F1都僅增長了0.21,非常不明顯,運(yùn)行時(shí)間將近增長一倍。表6中,特征數(shù)從154增加到289時(shí),準(zhǔn)確率P反而下降0.48,召回率R增長了0.71,F(xiàn)值增長了0.14;特征數(shù)從289增加到674時(shí),準(zhǔn)確率增長了0.62,召回率增長了1.61,F(xiàn)值增長了1.13,但是特征數(shù)從674增加到4154時(shí),準(zhǔn)確率下降0.4,召回率下降0.9,F(xiàn)值下降0.65。在復(fù)旦文本分類任務(wù)上,特征數(shù)從408增加到665時(shí),準(zhǔn)確率增長了0.61,特征數(shù)從665增加到1329時(shí),準(zhǔn)確率增長了0.21,特征數(shù)從1329增加到6707時(shí),準(zhǔn)確率下降了0.02。從表5、表6和表7可以看出,LLDA-XG模型在特征數(shù)上,特征數(shù)越多消耗時(shí)間越長,但是分類性能增長緩慢,甚至到后期特征數(shù)越多反而分類性能下降,這可能是訓(xùn)練過度造成過擬合了。這也說明特征選擇的重要性,對(duì)于分類性能影響最大的往往是少數(shù)的特征,特征中存在大量的冗余特征甚至是噪音特征,特征越多消耗運(yùn)算時(shí)間越多,性能提升卻非常有限甚至產(chǎn)生過擬合。同時(shí)也說明Labeled-LDA具有很強(qiáng)的特征選擇能力,不管是對(duì)中文還是英文,不管是長文本還是短文本,從大量的特征中選出非常優(yōu)質(zhì)的特征,使得整體運(yùn)算時(shí)間下降,性能穩(wěn)定高效。而且本發(fā)明的特征提取是基于字的,提取非常方便,不需要人工也不需要專家知識(shí)去耗費(fèi)大量資源去提取特征,預(yù)處理簡單運(yùn)算時(shí)間少,結(jié)合Xgboost分類算法的快速高效、可處理缺失值的強(qiáng)大能力,整體性能優(yōu)越穩(wěn)定??傊?,通過實(shí)驗(yàn)驗(yàn)證,本發(fā)明所提出的文本分類模型LLDA-XG,能廣泛應(yīng)用于各自文本分類任務(wù),其預(yù)處理簡單快速,整體運(yùn)算時(shí)間和性能都非常突出,具有很高的穩(wěn)健性和實(shí)用價(jià)值。顯然,本發(fā)明的上述實(shí)施例僅僅是為清楚地說明本發(fā)明所作的舉例,而并非是對(duì)本發(fā)明的實(shí)施方式的限定。對(duì)于所屬領(lǐng)域的普通技術(shù)人員來說,在上述說明的基礎(chǔ)上還可以做出其它不同形式的變化或變動(dòng)。這里無需也無法對(duì)所有的實(shí)施方式予以窮舉。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明權(quán)利要求的保護(hù)范圍之內(nèi)。當(dāng)前第1頁1 2 3