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