尹明燦
(濟寧學院 繼續教育學院,山東 濟寧 272000;聊城大學,山東 聊城 252059)
關聯規則在高校圖書管理中的應用研究
尹明燦
(濟寧學院 繼續教育學院,山東 濟寧 272000;聊城大學,山東 聊城 252059)
關聯規則分析是數據挖掘的一個非常重要的研究分支,其主要的研究目的是從大型數據集中發現隱藏的、有趣的、屬性間存在的規律.本文在對數據挖掘相關技術、關聯規則挖掘算法進行深入研究的基礎上,探討了關聯規則在高校圖書管理中的應用.
關聯規則;高校圖書管理;數據挖掘
關聯規則挖掘是發現大量數據中項集之間有趣的關聯或相關聯系.隨著大量數據的收集和存儲,人們希望從大量的數據中發現感興趣的數據關聯關系,從而幫助管理者進行決策的制訂.關聯規則發現的最初形式是零售商的貨籃分析,即通過發現顧客放入其貨籃的不同商品間的聯系,分析顧客的購買習慣.在數據挖掘的研究中,關聯規則研究開展得最廣泛,應用也較早.
關聯規則的定義:設 I={I1,I2,…,In}是所有項的集合,其中 Ik=(1,2,…,m)稱為項,項的集合稱為項集,包含k個項的項集稱為k項集.一個事務T是一個項集它是I的一個子集,每個事務均與一個惟一標識符Tid相聯系.不同的事務構成了事務集D,它構成了關聯規則發現的事務數據庫.如果項集X哿T,則稱事務T支持(Support)項集X,也稱事務T包含項集X.關聯規則是這樣一種形式的蘊涵:X圯T,其中 X奐T,Y奐I且 X∩Y=覫.
一般用4個參數來描述關聯規則的屬性.它們是支持度(Support)、可信度(Confidence)、期望可信度(Expected Confidence)和作用度(Lift).其中支持度和可信度能夠比較直觀地描述關聯規則的性質.
貨籃分析是關聯規則的一種挖掘形式,實際的關聯規則根據不同的標準也存在不同的類別.如單維關聯規則和多維關聯規則,比如前面例子果醬面包只涉及一個屬性,就是單維關聯規則;性別=“女”圯職業=“秘書”就是屬于多維規則.根據層次關系又可分為單層的關聯規則和多層關聯規則.不論是屬于哪類關聯規則,關聯規則的發現過程一般要經過以下步驟:
(1)數據準備
(2)確定最小支持度和最小可信度
(3)關聯規則發現
(4)關聯規則的解釋
最小支持度和最小可信度的選擇會直接影響到關聯規則的挖掘,過大可能會漏掉有價值的規則,過小又可能會造成大量的無用規則產生、影響挖掘的效率.對關聯規則的合理解釋也是充分利用關聯規則價值的關鍵所在.在關聯規則的研究中,最著名的算法是Agrawal提出的Apriori算法,除此以外還有FP-growth方法、針對加權關聯規則發現的MINWAL和DWAR算法等.
Apriori是由Rakesh Agrawal和 Rnamakrishnan Srikant在1994年提出的關聯規則的經典算法,[1]它是所有關聯規則挖掘算法的核心.Apriori算法將關聯規則挖掘分解為兩個子問題:
(1)求出事務數據庫D中滿足最小支持度minsup的所有頻繁集;
(2)利用頻繁集生成滿足最小可信度minconf的所有關聯規則;
尋找頻繁集是關聯規則發現的核心問題.包含k個項的項集稱為k項集.若項集滿足最小支持度,則稱該項集為頻繁項集(FreqentItemset),簡稱頻繁集.頻繁k項集通常記作Li.
具體做法是:第一步從候選1項集C1,中找出頻繁1項集L1,然后利用LK-1;連接產生候選CK,并根據Apriori的性質刪除那些具有非頻繁子集的候選項集.掃描事務數據庫,統計候選項集的支持計數,與最小支持計數相比,形成頻繁項集LK.直至找到所有頻繁項集.
從Apriori算法的步驟中可以發現,在產生候選項集時,可能會產生大量的候選集,當長度為1的頻繁集有10000個時,長度為2的候選集數將會超過1000萬.同時由于需要計算項集的支持度,會反復掃描事務數據庫D,增加了系統的1/O開銷.因此出現了許多改進的方法,如基于散列的優化方法DHP算法、基于減少事務個數的方法AprioriTID方法、基于數據庫分割的方法等.
圖書的關聯性挖掘目的是試圖尋找學生借閱圖書的某種潛在的規律,比如學生借閱《計算機等級考試》時,一般都會同時借閱上機模擬試題和筆試模擬試題.這是一般人們都能夠估計到的規律,然而在實際的借閱情況中,是否還存在我們不太了解的規律呢,通過關聯規則就能發現那些容易被人們忽略的潛在規律.圖書之間的關聯性能夠幫助管理人員了解學生的借閱興趣,并且能夠在個性化服務方面得以實際的應用.
圖書間具有一定的關聯性,不僅要尋找那些借閱頻率較高的圖書間的關聯性,而且應該對圖書進行分類的關聯規則挖掘,找到同類圖書之間的關聯性.學生的閱讀興趣往往與他的專業相關,因此發現某類圖書間的關聯關系可能比不進行分類的關聯性更加有價值.因此在實現過程中,圖書的關聯性挖掘從兩個方面進行挖掘,一是不進行分類的挖掘,二是根據中國圖書分類法,對每一大類圖書進行挖掘.挖掘得到的結果都存儲在規則表中.
圖書關聯規則發現的實現過程:
掃描學生的借閱記錄LEND_DATA,形成每個學生的借閱集合,集合中包括該學生所有借閱的圖書MARC_REC_NO,這個集合就形成了圖書關聯規則發現的事務集.在事務集形成過程中,針對下面的兩個問題,提出了具體的解決方案.[2]
(1)有的學生重復借閱了某一本書,因此有可能在集成的過程中,生成的借閱集合有重復項,這會影響關聯規則的挖掘.在事務集生成過程中,將重復借閱的記錄只保留一條.
(2)在實際的圖書關聯規則挖掘中,有很多借閱頻率較低的圖書不可能出現在關聯規則中,這是因為它們的支持度很低,因此在實際的挖掘中,為提高挖掘效率,應事先去掉這些記錄.具體的解決方式,采用先計算所有圖書的借閱次數,按從高到低進行排序,根據挖掘的需要,選擇前若干本圖書生成的事務集進行挖掘.這樣生成的事務集具有兩個優點:一是不需要再進行頻繁1-項集的生成,直接利用統計表中的數據;二是事務集中的事務項均是支持度較高的項,因此減少了掃描事務所耗費的時間.
事務集的生成通過事務集Bean,createApData來完成.主要代碼如下:


若進行圖書的分類關聯規則挖掘,則生成的事務集應只包含某類圖書的項集,在進行事務集生成時,根據中國圖書分類法的分類原則,選擇那些滿足類別的圖書借閱記錄.
關聯規則是滿足最小支持度和最小可信度的頻繁集,因此最小支持度和最小可信度的設置將直接影響到關聯規則的發現.最小支持度和最小可信度設置值太小,會產生一些沒有實際價值的關聯規則,設置值太大,挖掘不到結果.因此最小支持度和最小可信度的設置需要根據實際研究的數據集來給定.根據前面聚類分析的結果,對圖書的借閱情況有了比較詳細的了解,有助于設置這兩個關鍵值.最小支持度的設置應根據圖書聚類分析的結果和生成事務集的大小來設置,假設由圖書聚類結果分析可知,前100本圖書的平均借閱次數為100次,生成的事務集大小為2000,則圖書的平均支持度=100/2000=0.05,若設置的最小支持度遠大于0.05,則很難挖掘到結果.因此最小支持度和最小可信度應根據實際情況來合理設置.
根據改進的Apriori算法進行關聯規則的發現將得到的關聯規則存儲至規則表RULES.實現代碼如下:


關聯規則結果是項集的形式,需要將結果與實際的數據結合,給用戶顯示一個具有實際意義的結果,同時提供給管理員,進行篩選,將實際使用價值不大的結果剔除.以方便在個性化服務中的使用.
本文對關聯規則挖掘的理論進行研究,選擇Apriori[3]算法作為主要研究對象[4].在研究的基礎上,提出了改進的Apriori算法,提高了產生頻繁集的效率.在java環境下實現了兩個算法.利用圖書管理系統中的圖書借閱數據,進行了關聯規則的挖掘實驗,分析了兩個算法的優劣.驗證了算法的正確性.并對關聯規則產生的結果進行了解釋.
〔1〕王創新.關聯規則提取中對Apriori算法的一種改進[J].計算機工程與應用,2004,40(34):83-85.
〔2〕張翼.協同過濾技術在個性化圖書館中的應用研究[D].上海:復旦大學,2005.
〔3〕徐章艷.Apriori算法的三種優化方法[J].計算機工程與應用,2004,40(36):190-193.
〔4〕王玉清,李月華,鞏政等.圖書館計算機管理集成系統設計與實現 [J].內蒙古大學學報,1997,128(5):720-727.
G251
A
1673-260X(2010)06-0171-03