一種基于層次隨機森林的多標簽分類方法
【專利摘要】本發明公開了一種基于層次隨機森林的多標簽分類方法,所述方法包括:從訓練數據集中隨機抽取一部分數據,使用這部分隨機抽取的數據訓練一棵層次樹,層次樹中節點的分列基于節點中所有數據的標簽的聚類結果,重復建立多棵層次樹,進而建立層次隨機森林作為多標簽分類器,并使用建立的層次隨機森林多標簽分類器對無標簽的對象進行分類。該方法利用數據的多個標簽之間總有一定的關聯性的基本思想,基于標簽的聚類結果建立層次樹,并為樹的每個節點都建立一個分類器;使用隨機森林的思想,建立層次隨機森林,充分考慮標簽之間關聯的各種可能性,泛化層次樹的分類誤差,提高多標簽分類問題的速度和準確度。
【專利說明】
一種基于層次隨機森林的多標簽分類方法
技術領域
[0001] 本發明涉及涉及多標簽分類領域,具體涉及基于層次隨機森林的多標簽分類方 法。
【背景技術】
[0002] 多標簽分類問題是分類問題中比較復雜的問題,不同于兩類分類問題,它允許問 題中存在多個類別;不同于多類分類問題,它允許分類對象同時屬于多個類別。現實中存在 許多多標簽分類問題。一個比較常見的問題是為電影分類,電影的類別有很多種,比如,科 幻、喜劇、動作、劇情等,一部電影可以同時屬于喜劇和劇情,即同時屬于不止一個類別,而 且絕大多數電影都是屬于多個類別的。在文本分類中,可以將一篇文章分到多個話題中,比 如,社會、科學、體育、娛樂、教育等;在風景圖像分類中,一幅圖像可以有多個主題,比如,樹 林、海灘、山、草原等。多標簽問題在現實生活中具有極其廣泛的應用,因此對多標簽分類問 題的研究無疑具有非常重大的現實意義。目前,多標簽分類問題的算法主要有兩大類,一類 是基于數據集分解的方法,另一類是基于單個優化問題的方法。雖然對多標簽分類問題的 研究已經有了一定的成果,但是在分類的速度和準確度上仍然有待提高。
【發明內容】
[0003] 本發明的目的是提供一種基于層次隨機森林的多標簽分類方法,克服現有技術存 在的上述不足。
[0004] 本發明的目的可以通過采取如下技術方案實現。
[0005] -種基于層次隨機森林的多標簽分類方法,包括如下步驟:
[0006] S1、從訓練數據集中隨機抽取一部分數據;
[0007] S2、使用步驟S1抽取的數據建立一棵層次樹;
[0008] S3、重復步驟S1-S2,建立層次隨機森林作為多標簽分類器;
[0009] S4、使用步驟S3建立的多標簽分類器對無標簽的對象進行分類。
[0010] 作為一種具體的實施方案,步驟S1中,所述的從訓練數據集中隨機抽取一部分數 據,具體方法為:使用bagging方法對訓練數據集進行有放回地抽樣,隨機抽取N次,將隨機 抽取的數據中重復出現的數據刪除。
[0011] 作為一種具體的實施方案,步驟S2中,所述的建立一棵層次樹,具體方法包括以下 步驟:
[0012] S31、創建一個根節點,此節點包含數據所有的標簽和步驟S1中抽取的所有訓練數 據;
[0013] S32、使用平衡k-means算法對層次樹中的父節點中的標簽進行聚類;
[0014] S33、根據步驟S32中對父節點中的標簽聚類的數量建立相同個數的子節點,將每 個簇劃分到不同的子節點中,第c個子節點包含的標簽用集合L。表示,數據對象e屬于的標 簽用集合知表示,如果4 f^e共0,則將數據對象分到子節點c中;
[0015] S34、將每個子節點中的數據由(Xe,Ye)轉換為(Xe,Ze),其中Ye和Ze分別為數據對象 e在父節點中的標簽集和在當前子節點中的標簽集;
[0016] S35、使用分類算法對每個子節點分別訓練一個分類器,其中訓練數據為步驟S34 轉換后的數據;
[0017] S36、重復步驟S32-S35,直到子節點中所有數據的標簽都一樣,或者無法使用分類 器對子節點中的數據進一步劃分。
[0018] 作為一種具體的實施方案,步驟S32中,所述的平衡k-means算法,具體方法包括以 下步驟:
[0019] S41、隨機找k個標簽作為初始的聚類中心;
[0020] S42、對于剩余的標簽,計算每個標簽與每個聚類中心的距離,如果距離標簽最近 的聚類中心所在的簇包含的標簽數量小于丨i/幻,則將其歸為這個簇;否則,就找距離聚類中 心第二近的簇,依次類推,直到將其歸到一個簇中,其中,L是標簽數量,k是聚類中心(簇)的 數量;標簽之間距離的計算公式具體如下:
[0022]其中,P(yi,yj)表示標簽71和標簽^同時出現的概率,P( yi)表示標簽71出現的概 率,Sij越大表示兩個標簽一起出現的概率越大,則兩個標簽越相似。
[0023] S43、當對所有標簽都被劃分到某個簇中后,重新計算每一個簇的中心;
[0024] S44、重復步驟S42-S43,當所有的簇所包含的標簽都不再改變時,算法結束。
[0025]作為一種具體的實施方案,步驟S4中,所述的使用層次隨機森林多標簽分類器對 無標簽的對象進行分類,具體計算方法為:
[0027]其中,HTi (u) (i = 1,2,…,M)表示層次隨機森林中第i棵層次樹對無標簽數據對象 u的標簽的預測結果,是一個長度為Μ的0-1向量,Μ表示層次隨機森林中層次樹的個數;P (h,A2,···,λ〇表示層次隨機森林分類器對無標簽數據對象u的標簽的預測結果,L表示標簽 的數量,Μ的計算方法如下:
[0029] 其中,λ為預先設置好的閾值,Pl為層次隨機森林中預測無標簽數據對象u的標簽 是7:的層次樹的百分比。
[0030] 與現有技術相比,本發明具有如下優點和技術效果:
[0031] 本發明利用數據的多個標簽之間總有一定的關聯性的基本思想,基于標簽的聚類 結果建立層次樹,并為樹的每個節點都建立一個分類器;使用隨機森林的思想,建立層次隨 機森林,充分考慮標簽之間關聯的各種可能性,泛化層次樹的分類誤差。該方法可以提高多 標簽分類問題的速度和準確度。
【附圖說明】
[0032] 圖1為本發明實施例1的一種基于層次隨機森林的多標簽分類方法的流程圖。
[0033] 圖2為本發明實施例1的建立一棵層次樹的流程圖。
【具體實施方式】
[0034]
[0035]下面結合實施例及附圖對本發明作進一步詳細的描述,但本發明的實施方式不限 于此。
[0036] 實施例1:
[0037] 如圖1所示,本實施例1的一種基于層次隨機森林的多標簽分類方法,包括以下步 驟:
[0038] S1、從訓練數據集中隨機抽取一部分數據;
[0039] S2、使用步驟S1抽取的數據建立一棵層次樹;
[0040] S3、重復步驟S1-S2,建立層次隨機森林作為多標簽分類器;
[0041 ] S4、使用步驟S3建立的多標簽分類器對無標簽的對象進行分類。
[0042]所述的訓練數據集是分類研究領域對用于學習分類模型的數據的簡稱,這些數據 可以是使用文本、圖片、視頻等表示的醫療數據、互聯網數據、銀行數據等。
[0043] 所述的從訓練數據集中隨機抽取一部分數據,具體方法為:使用bagging方法對訓 練數據集進行有放回地抽樣,隨機抽取N次(作為實例,N通常為訓練數據集的2/3),將隨機 抽取的數據中重復出現的數據刪除,將這些數據作為建立一棵層次樹的訓練數據。其中,
[0044] 如圖2所示,本實施例1的一種基于層次隨機森林的多標簽分類方法,所述的建立 一棵層次樹,具體方法包括以下步驟:
[0045] S31、創建一個根節點,此節點包含數據所有的標簽和步驟S1中抽取的所有訓練數 據;
[0046] S32、使用平衡k-means算法對層次樹中的父節點中的標簽進行聚類;
[0047] S33、根據步驟S32中對父節點中的標簽聚類的數量建立相同個數的子節點,將每 個簇劃分到不同的子節點中,第c個子節點包含的標簽用集合L。表示,數據對象e屬于的標 簽用集合K表示,如果' η仏# 0,則將數據對象e劃分到子節點c中;
[0048] S34、將每個子節點中的數據由(xe,Ye)轉換為(xe,Z e),其中Ye和Ze分別為數據對象 e在父節點中的標簽集和在當前子節點中的標簽集;
[0049] S35、使用分類算法對每個子節點分別訓練一個分類器,其中訓練數據為步驟S34 轉換后的數據,這里的分類算法可以是C4.5、SVM等分類方法;
[0050] S36、重復步驟S32-S35,直到子節點中所有數據的標簽都一樣,或者無法使用分類 器對子節點中的數據進一步劃分。
[0051 ]所述的平衡k-means算法,具體方法包括以下步驟:
[0052] S41、隨機找k個標簽作為初始的聚類中心;
[0053] S42、對于剩余的標簽,計算每個標簽與每個聚類中心的距離,如果距離標簽最近 的聚類中心所在的簇包含的標簽數量小于則將其歸為這個簇;否則,就找距離聚類中 心第二近的簇,依次類推,直到將其歸到一個簇中,其中,L是標簽數量,k是聚類中心(簇)的 數量;標簽之間距離的計算公式具體如下:
[0055]其中,P(yi,yj)表示標簽yi和標簽yj同時出現的概率,P(yi)表示標簽yi出現的概 率,Sij越大表示兩個標簽一起出現的概率越大,則兩個標簽越相似。
[0056] S43、當對所有標簽都被劃分到某個簇中后,重新計算每一個簇的中心;
[0057] S44、重復步驟S42-S43,當所有的簇所包含的標簽都不再改變時,算法結束。
[0058]步驟S4所述的使用層次隨機森林多標簽分類器對無標簽的對象進行分類,具體計 算方法為:
[0060]其中,HTi(u) (i = 1,2,…,M)表示層次隨機森林中第i棵層次樹對無標簽數據對象 u的標簽的預測結果,是一個長度為Μ的0-1向量,Μ表示層次隨機森林中層次樹的個數;P (h,A2,···,λ〇表示層次隨機森林分類器對無標簽數據對象u的標簽的預測結果,L表示標簽 的數量,Μ的計算方法如下:
[0062] 其中,λ為預先設置好的閾值,Pl為層次隨機森林中預測無標簽數據對象u的標簽 是7:的層次樹的百分比。
[0063] 上述實例使用隨機森林的思想,建立層次隨機森林,充分考慮標簽之間關聯的各 種可能性,泛化層次樹的分類誤差,可以提高多標簽分類問題的速度和準確度。
[0064] 以上所述,僅為本發明專利優選的實施例,但本發明專利的保護范圍并不局限于 此,任何熟悉本技術領域的技術人員在本發明專利所公開的范圍內,根據本發明專利的技 術方案及其發明專利構思加以等同替換或改變,都屬于本發明專利的保護范圍。
【主權項】
1. 一種基于層次隨機森林的多標簽分類方法,其特征在于:包括以下步驟: 51、 從訓練數據集中隨機抽取一部分數據; 52、 使用步驟S1抽取的數據建立一棵層次樹; 53、 重復步驟S1-S2,建立層次隨機森林作為多標簽分類器即層次隨機森林分類器; 54、 使用步驟S3建立的多標簽分類器對無標簽的對象進行分類。2. 根據權利要求1所述的一種基于層次隨機森林的多標簽分類方法,其特征在于:步驟 S1所述的從訓練數據集中隨機抽取一部分數據,具體為:使用bagging方法對訓練數據集進 行有放回地抽樣,隨機抽取N次,將隨機抽取的數據中重復出現的數據刪除。3. 根據權利要求1所述的一種基于層次隨機森林的多標簽分類方法,其特征在于:步驟 S2所述的建立一棵層次樹,具體方法包括以下步驟: 531、 創建一個根節點,此節點包含使用步驟S1所描述的方法從訓練數據集中抽樣的數 據,以及訓練數據集包含的所有標簽。 532、 使用平衡k-means算法對層次樹中的父節點中的標簽進行聚類; 533、 根據步驟S32中對父節點中的標簽聚類的數量建立相同個數的子節點,將每個簇 劃分到不同的子節點中,第c個子節點包含的標簽用集合L。表示,數據對象e所有的標簽用 集合K表示,如果込n/i e # 0,則將數據對象e劃分到當前節點的第c個子節點中; 534、 將每個子節點中的數據由(Χβ,Υβ)轉換為kA),其中Xe表示對象e,Ye和Z e分別為 數據對象e在父節點中的標簽集和在當前子節點中的標簽集; 535、 使用分類算法對每個子節點分別訓練一個分類器,其中訓練數據為步驟S34轉換 后的數據; 536、 重復步驟S32-S35,直到子節點中所有對象的標簽都一樣,或者無法使用分類器對 子節點中的數據進一步劃分。4. 根據權利要求3所述的一種基于層次化隨機森林的多標簽分類方法,其特征在于:步 驟S32所述的平衡k-means算法,具體方法包括以下步驟: 541、 隨機找k個標簽作為初始的聚類中心; 542、 對于剩余的標簽,計算每個標簽與每個聚類中心的距離,如果距離標簽最近的聚 類中心所在的簇包含的標簽數量小于[LA1,則將其歸為這個簇;否則,就找距離聚類中心第 二近的簇,依次類推,直到將其歸到一個簇中,其中,L是標簽數量,k是聚類中心的數量; 543、 當所有標簽都被劃分到某個簇中后,重新計算每一個簇的中心; 544、 重復步驟S42-S43,直到所有簇的聚類中心不再改變。5. 根據權利要求1所述的一種基于層次化隨機森林的多標簽分類方法,其特征在于:步 驟S4所述的使用多標簽分類器對無標簽的對象進行分類,具體計算方法為:其中,ITMu)表示層次隨機森林中第i棵層次樹對無標簽數據對象u的標簽的預測結果, 是一個長度為Μ的0-1向量,i = 1,2,…,M,M表示層次隨機森林中層次樹的個數;ΡΟ:,λ2,…, λ?)表示層次隨機森林分類器對無標簽數據對象u的標簽的預測結果,L表示標簽的數量,Μ 的計算方法如下:其中,λ為預先設置好的閾值,Pl為層次隨機森林中預測無標簽數據對象U的標簽是71的 層次樹的百分比。
【文檔編號】G06K9/62GK105868773SQ201610171082
【公開日】2016年8月17日
【申請日】2016年3月23日
【發明人】吳慶耀, 譚明奎, 陳健, 林世杭, 黃翰
【申請人】華南理工大學