專利名稱:基于復雜網絡模型并行化標簽傳播算法的藥物社團發現方法
技術領域:
本發明涉及一種中藥復雜網絡建模方法,以及在該中藥藥物復雜網絡TCM上采用并行標簽傳播算法挖掘中藥藥物社団的技木。
背景技術:
利用數據挖掘技術可以智能分析中藥復方數據,發現潛在中藥配伍規律。常用的中藥數據挖掘中有ー類應用是藥物的聚類算法,其基于事務項模型(把復方看成由多種藥物組成的事務并儲存在事務數據庫中)對相似藥物進行聚合以發現頻繁組方的藥物組。傳統基于事務項模型的中藥藥物聚類算法很難挖掘間接組方配伍的藥物,而且往往忽略對生僻藥物的處理,不利于深入研究每種藥物的配伍規律知識。本發明嘗試用復雜網絡模型建模中藥藥物網絡,在藥物網絡中應用社團發現算法挖掘藥性相似的藥物組。在復雜網絡分析中對網絡社團結構的研究已經有很長的歷史,其涉及到計算機科學、社會學、生命科學等各個領域。分析和掲示網絡中的社團結構,對于了解網絡結構與分析網絡特性都是非常重要的。在中藥復雜網絡中進行社團發現與傳統基于事務項模型的藥物聚類分析的目的很相近,都是將頻繁在一起組方的藥物聚合在同一類別中,并挖掘出藥性相似的藥物以便研究中藥配伍規律。基于復雜網絡模型構建中藥藥物復雜網絡這一思路打破了傳統中藥數據挖掘都基于事務項的建模模型的慣例,并且采用復雜網絡分析中的標簽傳播算法可以深入挖掘中藥藥物社団,發現藥性相似、社団內部相對頻繁組方的藥物組,克服了傳統基于事務項聚類算法不能發現間接配伍以及忽略生僻藥物的缺陷。近期以來,隨著中藥復方數據的激増,非并行的算法已不再適用于較大規模中藥數據的社団發現。
發明內容
本發明所要解決的技術問題是實現中藥復雜網絡建摸,并在該模型上采用并行標簽傳播算法,以快速有效地發現藥物社団。為解決上述問題,本發明的基于復雜網絡模型并行化標簽傳播算法的藥物社團發現方法包括如下步驟I)組網階段a預處理以生成中藥數據集,格式化為初始文本數據;b將初始文本數據部署至Hadoop平臺;c并行化組建中藥藥物網絡,即TCM網絡,該網絡以藥物為節點,將SCab大于給定閾值的節點連邊;d 結束。2)挖掘階段
a獲取步驟I)-c處理生成的中藥藥物網絡文本文件;b將上述TCM網絡文本文件部署至Hadoop平臺;c實施并行化標簽傳播算法,即采用MapReduce框架并行化的標簽傳播算法,利用節點鄰居信息迭代更新自身標簽(即所屬社団號),以發現藥物社団;d)結束。步驟I)-a中所說的預處理為抽取中藥復方數據中所有復方的藥物組成。步驟l)-b中所說的部署為將步驟l)_a生成的初始文本數據上傳至Hadoop平臺 的分布式文件系統(HDFS)。進一歩,步驟I) -C的具體過程如下I)為每個中藥復方,即ー行文本數據,設定ー個唯一標識ID2)建立從藥物到復方標識ID之間的倒排索引;3)為每個藥物設定唯一藥物標識id,其中包含該藥物在復方中出現的頻次;4)對倒排索引進行還原,即再次實行倒排索引算法,每行復方讀入此次任務的某個Map函數中,還原中藥復方文本數據;5)每個Map函數讀取一行文本,解析出藥物節點信息;6)判斷該Map函數中的復方所含藥物還能否兩兩組建聯合鍵值〈Key,Value),是則執行7),否則執行8);7)組建聯合鍵值〈Key,Value〉;8)〈Key, Value〉經過 shuff le&&sort 發送到 Reduce 中,Reduce 接收相同 Key 下組成的[Value]數組,按照下式計算兩兩藥物間度量,將大于設定閾值的藥對寫入文件并保存至HDFS中SCab = —\FaC^Fb\
min{ \ Fa\,\Fb\)其中|FA n FbI表示藥物A、B—起組方的次數,min{ I Fa I,I Fb |}表示藥物A、B中組方次數較少的藥物的出現次數,而SCab表示藥物A、B共現次數與最少出現藥物次數的比率;9)讀取6)中生成的藥對文件,即藥物復雜網絡的邊集,格式化為鄰接表形式保存中藥網絡拓撲結構;10)結束。進ー步,步驟2)-C中利用鄰居節點所屬標簽更新自身標簽(一般為頻次最大的標簽,如果最大頻次標簽有多個則采取一定的隨機選擇)。并行化標簽傳播算法總過程是基于迭代式的,迭代終止條件是各節點標簽基本穩定,例如大于90%的節點標簽不發生變化等。在此給出迭代步驟中的某次迭代算法流程,即其中并行化標簽傳播算法的一次迭代過程具體如下I)為每個藥物節點設置唯一的初始標簽id ;2)每個Map函數從HDFS讀取一行文本,存入Value變量中;3)解析Value變量中的數據,用臨時數組Tmp [O]保存節點id,Tmp [I]保存鄰接表 AdjList 及 Label ;4)發送節點數據結構;
5)判斷Label中是否只含有ー個標簽,即首次迭代,執行6),否則執行7);6)令變量V =標簽I ;7)令變量V =標簽1&&標簽2,其中標簽I表示t-Ι次迭代的標簽和標簽2表示t-2次迭代的標簽;8)令變量 i = 0;9)判斷i是否小于AdjList. length,是則執行步驟10,否則執行步驟1210)發送〈AdjList. get (i),V>ll)i 自增 1,執行 8);12)Map 過程結束,Hadoop 執行 shuffle&&sort ; 13)Reduce解析[Value]數組,分別用數據結構AdjLabelPA保存節點結構,臨時鏈表Is1, Is2分別保存每個傳遞過來的し、I2的值(如果有兩個標簽,否則Is2為空)14)根據下式找出新的節點標簽;Cx(0=/(C^-iX-.Cx^-i)^*C^-2),..,w*c^-2))15)其中表示t-Ι次迭代Xk節點的標簽,f函數返回的是鄰居節點傳遞過來頻次最多的標記;16)更新AdjLabel中的t_l標簽和t標簽分別為Cx(t_l)與Cx (t);17)保存此次迭代的結果至分布式文件系統HDFS中;18)結束。本發明的基于復雜網絡模型并行化標簽傳播算法的藥物社團發現方法建立了中藥藥物復雜網絡模型,利用并行化技術提高了組網以及標簽傳播算法的可擴展性和運行速度,并且能有效挖掘復方中藥性相似的藥物社團,幫助研究中藥配伍規律。
圖I為藥物社團發現操作流程圖。圖2為本發明的基于復雜網絡模型并行化標簽傳播算法的藥物社團發現方法的流程圖。圖3為生成中藥藥物(TCM)網絡的流程圖。圖4為在中藥藥物(TCM)網絡上利用標簽傳播算法(某一次迭代)挖掘藥物社団的流程圖。
具體實施例方式為了更了解本發明的技術內容,特舉具體實施例并配合所附圖式說明如下。如圖I所示,核心藥物挖掘通過方劑數據庫查詢、不規則文本數據提取等獲取中藥復方數據,經數據規范化、格式化等預處理生成文本數據,然后在Hadoop平臺上并行化組建中藥藥物復雜網絡,最后在該網絡上運行并行化標簽傳播算法以挖掘藥物社団。中藥復方數據組網與行化標簽傳播算法挖掘藥物社団是該發明的主要步驟,本發明的思路就是通過復雜網絡建模和并行化標簽傳播算法有效挖掘藥物社団,同時提高算法可擴展性和運行速度。本發明的基于復雜網絡模型并行化標簽傳播算法的藥物社團發現方法的流程圖如圖2所示。步驟O為本發明的藥物社團發現方法的起始狀態;在組網階段(步驟1-3),步驟I是從數據庫或者其他不規則文本數據中獲取初始的中藥復方組網數據,并且格式化為文本數據以便上傳至Hadoop平臺的分布式文件系統(HDFS);步驟2是在初始數據集中并行組建中藥藥物(TCM)網絡,包括兩次倒排索引以及兩兩組建藥對聯合鍵值對;步驟3是把生成的TCM網絡保存至Hadoop平臺的HDFS。在挖掘階段(步驟4-5),步驟4,在步驟3所生成的TCM網絡中運行并行化標簽傳 播算法; 步驟5是將挖掘出的結果保存至HDFS ;步驟6是本發明的基于復雜網絡模型并行化標簽傳播算法的藥物社團發現方法的結束步驟。圖3是對圖2中步驟2的詳細描述。步驟20為起始步驟;步驟21是為每個中藥復方設定一個唯一的ID值,從標號I開始;步驟22是建立藥物到復方ID的倒排索引;步驟23是為每個藥物設定id,從標號I % N,其中N表示該藥物在復方中出現的頻次,即倒排索引的長度;步驟24對倒排索引進行還原,即再次實行倒排索引算法,每行復方讀入此次任務的某個Map函數中;步驟25判斷該Map函數中的復方所含藥物還能否兩兩組建聯合鍵值,可以即執行26,否則執行27 (注意此時應該是說該次任務的Map過程結束);步驟26為組建聯合鍵值〈Key, Value〉(其中Key小于Value);步驟27為Reduce函數中利用式I計算SCab的值
權利要求
1.一種基于復雜網絡模型并行化標簽傳播算法的藥物社團發現方法,其特征在于,包括如下步驟 1)組網階段 a預處理以生成中藥數據集,格式化為初始文本數據; b將初始文本數據部署至Hadoop平臺; c并行化組建中藥藥物網絡,該網絡以藥物為節點,將SCab大于給定閾值的節點連邊; d結束。
2)挖掘階段 a獲取步驟l)-c處理生成的中藥藥物網絡文本文件; b將上述中藥藥物網絡文本文件部署至Hadoop平臺; c實施并行化標簽傳播算法,即采用MapReduce框架并行化的標簽傳播算法,利用節點鄰居信息迭代更新自身標簽,以發現藥物社団;d)結束。
2.根據權利要求I所述的基于復雜網絡模型并行化標簽傳播算法的藥物社團發現方法,其特征在于,其中步驟l)_a中所說的預處理為抽取中藥復方數據中所有復方的藥物組成。
3.根據權利要求I所述的基于復雜網絡模型并行化標簽傳播算法的藥物社團發現方法,其特征在于,其中步驟l)_b中所說的部署為將步驟l)_a生成的初始文本數據上傳至Hadoop平臺的分布式文件系統。
4.根據權利要求I所述的基于復雜網絡模型并行化標簽傳播算法的藥物社團發現方法,其特征在于,其中步驟l)-c的具體過程如下 1)為每個中藥復方,即ー行文本數據,設定ー個唯一標識ID 2)建立從藥物到復方標識ID之間的倒排索引; 3)為每個藥物設定唯一藥物標識id,其中包含該藥物在復方中出現的頻次; 4)對倒排索引進行還原,即再次實行倒排索引算法,每行復方讀入此次任務的某個Map函數中,還原中藥復方文本數據; 5)每個Map函數讀取一行文本,解析出藥物節點信息; 6)判斷該Map函數中的復方所含藥物還能否兩兩組建聯合鍵值〈Key,Value〉,是則執行7),否則執行8); 7)組建聯合鍵值〈Key,Value); 8)〈Key,Value〉經過shuff le&&sort發送到Reduce中,Reduce接收相同Key下組成的[Value]數組,按照下式計算兩兩藥物間度量,將大于設定閾值的藥對寫入文件并保存至分布式文件系統中
5.根據權利要求I所述的基于復雜網絡模型并行化標簽傳播算法的藥物社團發現方法,其特征在于,步驟2)-c中并行化標簽傳播算法總過程是基于迭代式的,迭代終止條件是各節點標簽基本穩定,其中并行化標簽傳播算法的一次迭代過程具體如下 1)為每個藥物節點設置唯一的初始標簽id; 2)每個Map函數從HDFS讀取一行文本,存入Value變量中; 3)解析Value變量中的數據,用臨時數組Tmp
保存節點id,Tmp[I]保存鄰接表AdjList 及 Label ; 4)發送節點數據結構; 5)判斷Label中是否只含有ー個標簽,即首次迭代,執行6),否則執行7); 6)令變量V=標簽I ; 7)令變量V=標簽1&&標簽2,其中標簽I表示t-1次迭代的標簽和標簽2表示t-2次迭代的標簽; 8)令變量i= 0 ; 9)判斷i是否小于AdjList.length,是則執行步驟10,否則執行步驟1210)發送〈AdjList.get (i),V> 11)i自增1,執行8); 12)Map過程結束,Hadoop 執行 shuffle&&sort ; 13)Reduce解析[Value]數組,分別用數據結構AdjLabelPA保存節點結構,臨時鏈表Is1, Is2分別保存每個傳遞過來的し、I2的值(如果有兩個標簽,否則Is2為空) 14)根據下式找出新的節點標簽; 15)其中GxtOf-1)表示t-l次迭代Xk節點的標簽,f函數返回的是鄰居節點傳遞過來頻次最多的標記; 16)更新AdjLabel中的t-l標簽和t標簽分別為Cx(t-l)與Cx⑴; 17)保存此次迭代的結果至分布式文件系統中; 18)結束。
全文摘要
本發明提供一種基于復雜網絡模型并行化標簽傳播算法的藥物社團發現方法,包括如下步驟組網階段a)預處理生成中藥數據集,格式化為文本數據;b)將初始文本數據部署至Hadoop平臺;c)并行化組建中藥藥物(Traditional Chinese Medicine簡稱TCM)網絡;d)結束。挖掘階段a)獲取步驟1-c處理生成的TCM網絡文本文件;b)將TCM網絡文本文件部署至Hadoop平臺;c)實施并行化標簽傳播算法發現藥物社團;d)結束。本發明的基于復雜網絡模型并行化標簽傳播算法的藥物社團發現方法建立了TCM網絡模型,利用并行化技術提高了組網以及標簽傳播算法的可擴展性和運行速度,并且能有效挖掘復方中藥性相似的藥物社團,幫助研究中藥配伍規律。
文檔編號G06F17/30GK102663108SQ20121011117
公開日2012年9月12日 申請日期2012年4月16日 優先權日2012年4月16日
發明者劉正, 孫道平, 楊鴻超, 王崇駿, 謝俊元 申請人:南京大學