一種基于有向圖關聯規則音樂云推薦算法
【技術領域】
[0001]本發明涉及多媒體分析技術領域,具體說是一種基于有向圖關聯規則音樂云推薦算法。
【背景技術】
[0002]傳統的頻繁項集發現算法,例如:Apr1ri(基于先驗算法),Partit1n(基于分區算法)、DHP(基于散列算法)、SampIe (基于樣本插值算法)等算法,發現的是隱藏在數據集中的全部的頻繁項集,當處理的數據對象是稀疏集或最小支持度設定的比較高的時候,這一類算法具有很好的執行效果。但是,當我們把支持度降得很低的話或者我們處理的數據對象是稠密數據集時,例如:生物基因數據、通訊數據等等,這類算法性能下降非常快。即使是深度優先的搜索算法的性能也會受到數據集稠密性的影響。這是因為在支持度很低時或者處理數據對象是稠密數據集時,數據中存在著許多長的頻繁模式,每一個長頻繁模式甚至會達到包括30?40個項。這些長的頻繁模式的所有的子集都是頻繁項目集(子集數目的上限是2n,n是長頻繁項集中項的個數)。這樣的話挖掘出的所有頻繁項集的數目將是一個天文數字。
[0003]以mushroom數據庫為例,僅僅8416條記錄的一個小的稠密數據集,當支持度降到5%時發現的頻繁項集居然達到了 200萬以上。如此眾多的頻繁項集又生成了數目眾多的關聯規則,這些關聯規則中絕大多數都是冗余的關聯規則。增加了用戶充分理解關聯規則挖掘的結果、迅速從挖掘結果中發現有價值的信息的難度。
【發明內容】
[0004]針對現有技術中存在的缺陷,本發明的目的在于提供一種基于有向圖關聯規則音樂云推薦算法,基于有向圖關聯規則音樂云推薦特點和特征,并能反映用戶音樂庫的基于相似性的音樂推薦。
[0005]為達到以上目的,本發明采取的技術方案是:
[0006]—種基于有向圖關聯規則音樂云推薦算法,其特征在于,包括如下步驟:
[0007]A:建立數據庫
[0008]建立數據庫的流程包括:建立關系型數據庫、Hbase型數據庫,以及從關系型數據庫向Hbase型數據庫迀移;
[0009]B構建有向圖關聯規則算法
[0010]BI制訂支持度計算策略;
[0011]B2構建有向圖的存儲方式;
[0012]B3—般有向圖關聯構建;
[0013]B4完全頻繁項集有向圖構建:依據頻繁項集的子集都是頻繁項集,非頻繁項集的超集都是非頻繁項集,在有向項集圖存儲的I,2項頻繁集的基礎上進行項集并操作和支持該項集的交易列表的交操作便發現所有頻繁項集;
[0014]B5最大頻繁項集的有向圖構建。
[0015]在上述技術方案的基礎上,建立數據庫的具體步驟為:
[0016]Al建立關系型數據庫:以音樂特征元組為元素,用二位表型的關系模型數據庫表示音樂特征數據及其數據之間的聯系;
[0017]A2建立Hbase型數據庫:建立基于列儲存的分布式Hbase型數據庫,以便能后期輕松改變硬件數量,提高錯誤兼容性;
[0018]A3從關系型數據庫向Hbase型數據庫迀移。
[0019]在上述技術方案的基礎上,從關系型數據庫向Hbase型數據庫迀移的具體步驟為:
[0020]A31由解析器(Schemaparser)解析由外部工具把傳統RDBMS(關系數據庫管理系統)數據庫導出的表模式定義文檔;
[0021]A32用表模式轉換器(Convertor)把傳統RDBMS的表模式定義轉換成Hbase的表模式;
[0022]A33用表模式適配器(Adapter)保存、讀取已經由表模式轉換器所轉換過的表模式定義到指定文件中,并為其他模塊查找新的表模式定義提供接口 ;
[0023]A34用數據表管理器(TableManager)把從初在傳統RDBMS數據庫中的數據迀移到Hbase數據庫中對應新定義的表中;
[0024]A35令在關系型數據庫中原有的表集合為A,迀移后的在HBase數據庫中的表集合為B ο
[0025]在上述技術方案的基礎上,制訂支持度計算策略的具體步驟為:
[0026]Bll設計Tidlist存儲方式:定義一個關聯項的Tidlist的長度與其數據庫中交易數相等,用η個二進制位來表示一個項的Tidlist,即n/8個字節;每一個字節中的一個位取值O、I對應數據庫中相應的交易不支持或支持項。
[0027]在上述技術方案的基礎上,構建有向圖的存儲方式的具體步驟為:
[0028]B21使用鄰接矩陣存儲表示圖G=(V,E)各頂點信息之間的關系矩陣,用定義:如果(i,j) e E,則A.edge [i][j](該邊權值)的值取I,否則為O;
[0029]B211保存節點中有與其邊關聯的另一頂點的下標和指向同一鏈表中的下一個邊結點的指針;
[0030]B212保存該邊權值。
[0031]在上述技術方案的基礎上,一般有向圖關聯構建的具體步驟為:
[0032]B31確定有向圖的結點:將所有大于最小支持度s的項按支持度降序排列組成有向項集圖的結點¥={833,(:,0};
[0033]B32添加有線圖中的弧:按順序從結點集V中選擇一個結點作為出發結點;
[0034]B33依次選擇點為出發結點,刪除支持度不符合的點,直到結點集為空。
[0035]在上述技術方案的基礎上,完全頻繁項集有向圖構建的具體步驟為:
[0036]B41定義候選集:一個項集的所有子集的支持度均大于或等于最小支持度的頻繁項集為候選集;
[0037]B42有且只有η項頻繁項集{V1,V2,…,Vn}中任何一個項在有向項集圖中都存在一條指向結點vn+1的弧,則{ V1,V2,…,Vn,Vn+1}為候選集。
[0038]在上述技術方案的基礎上,最大頻繁項集的有向圖構建的具體步驟為:
[0039]B51將數據庫中的有關頻繁項集的信息保存在有向項集圖中,利用深度優先的搜索策略,發現最大頻繁項集;
[0040]B511在訪問圖的某一起始結點V ;
[0041 ] B512由V出發,訪問它的鄰接結點再從WI出發訪問的WI鄰接結點W2 ;
[0042]B513從W2出發進行上述訪問;
[0043]B514直到鄰接表為空時或支持度不滿足要求時就生成了一個最大頻繁項集;
[0044]B515將生成的最大頻繁項集保存在最大頻繁項集的集合中;
[0045]B516返回上一層結點或選擇其他鄰接點繼續進行m上述的訪問;
[0046]B517刪除那些是已經發現的最大頻繁項集的子集的頻繁項集;
[0047]B518直到生成所有的最大頻繁項集為止。
[0048]本發明所述的基于有向圖關聯規則音樂云推薦算法,挖掘最大頻繁項集可以有效地降低問題解的空間,對于用戶有效理解數據集中隱藏的長模式具有重要的意義。算法將數據庫中的有關頻繁項集的信息保存在有向項集圖中,基于有向項集圖,利用深度優先的搜索策略,可以迅速發現所有的最大頻繁項集。
【附圖說明】
[0049]本發明有如下附圖:
[0050]圖1數據庫迀移工具工作流程圖;
[0051 ]圖2數據迀移決策關聯圖;
[0052]圖3優化的有向項集圖;
[0053]圖4基于有向圖挖掘頻繁項集具體過程圖。
【具體實施方式】
[0054]以下結合附圖對本發明作進一步詳細說明。
[0055]本發明所述的基于有向圖關聯規則音樂云推薦算法,包括如下步驟:
[0056]A:建立數據庫
[0057]建立數據庫的