摘要:圖書館積累了大量的歷史數據,從這些數據中挖掘出潛在的知識對圖書館工作有很強的指導作用。通過結合具體實例說明了關聯規則在數據分析中的應用,為數據挖掘在圖書館的應用提供了一些思路。
關鍵詞:數據挖掘;關聯規則;借閱數據
中圖分類號:TP311文獻標識碼:A 文章編號:1009-3044(2009)27-7593-03
Borrowing Data Analysis-based on Association Mining
SHI Bai-qian
(Huaihua University, Huaihua 418000, China)
Abstract: The library collects many historical data, mining potential knowledge from these data has a strong guiding role to library work. Through combining an specific example, describe the association rule applied on data analysis and provide some ideas for data mining applications in the library.
Key words: data mining; association rule; borrowing data
所謂數據挖掘,就是從大量的數據中挖掘出隱含的、未知的、用戶可能感興趣的、對決策有潛在價值的知識和規則。這些規則蘊含了數據庫中一組對象之間的特定關系,揭示出一些有用的信息,可以為經營決策、市場策劃和金融預測等方面提供決策依據。因而,它被廣泛應用于市場營銷、零售業、電信業、醫療等多個領域。對于圖書館,其信息服務模式與營銷模式多有相似之處,每天都會產生大量的借閱數據和表單等信息,通過收集、加工和處理這些信息,發現特定借閱群體或個體的閱讀興趣、閱讀習慣、閱讀傾向和閱讀需求等,可以推出未來的借閱行為,對圖書館的采購選擇、館藏布局、參考咨詢、個性化服務等業務工作有很大的指導作用,從而留住讀者,提高圖書館利用率,增強圖書館服務質量。
數據挖掘的方法主要包括有關聯規則挖掘、數據分類、聚類分析、序列模式挖掘、Web挖掘等,主要的挖掘步驟如下:數據集成—數據選擇—數據預處理—確定挖掘任務,選擇合適的工具和技術—模型的研發和知識發現—結果的解釋和評價。本文主要就關聯規則挖掘在圖書館數據分析中的應用進行研究。
1 關聯規則介紹
1.1 基本概念
設I={i1,i2,…,im}是全體數據項的集合,D為事務數據庫,每個事務T有唯一的TID標識,對應一個項集(由數據項構成的非空集合。項集X包含的元素個數稱為項集的長度,長度為k的項集稱為k階項集—k-itemset)T,有T ?哿 I,事務T包含項集X 當且僅當 X?哿T。關聯挖掘就是描述數據庫中各數據項之間存在的潛在關系,形式為X?圯Y,其中X?哿I,Y?哿I,且X ∩ Y=?覫,X稱為規則前件,Y稱為規則后件。關聯規則的強度可用它的支持度(s)和置信度(c)度量。 支持度確定規則可用于給定數據集的頻繁程度,而置信度確定Y在包含X的事務中出現的頻繁程度。它們分別可表示為s(X?圯Y)=s(X∪Y)/│D│,s(X?圯Y)= s(X∪Y)/s(X) (其中│D│為總事務數)。當支持度和置信度都大于或等于給定的相應的支持閾值和置信閾值時,則我們稱這樣的規則為強關聯規則[1],即我們所需要求的規則。
在圖書館信息分析中的運用如:
1)發現事務數據庫中不同項之間的關聯,反映讀者的借閱模式,例如,80%的讀者借閱了文獻A,通常也會借閱文獻B,則可向借閱文獻A的讀者推薦文獻B。
2)發現書庫里A類圖書和B類圖書之間的關聯規則,館藏布局時調整兩類圖書的布置,提高借閱量,或指導采購。
3)獲得某主題文獻與有關院系的關聯,以及哪些院系的文獻借閱是相似的,哪些用戶大量借閱了該類書籍并制訂相應對策[2]。
4)根據現有圖書的利用情況,估計新進圖書的利用率。
1.2 關聯挖掘的基本任務
大多數關聯規則挖掘算法通常采用的一種策略是,將關聯規則挖掘任務分解為兩個主要的子任務:頻繁項集產生和規則的產生。Apriori算法是關聯挖掘算法中一個比較成熟的算法,思路明晰,易于實現,以下將以Apriori算法進行說明[3]。
1)頻繁項集產生:其目標是發現滿足最小支持度閾值的所有項集,這些項集稱作頻繁項集。Apriori算法頻繁項集產生過程為:首先掃描數據庫,計算1階頻繁項集;從2階開始,每次循環利用上次循環產生的頻繁項集自連接構造新候選項集,然后計算每個候選項集的支持度,通過剪枝得到下一階頻繁項集;重復以上步驟,直到某階頻繁項集為空。用偽代碼表示為:
k=1
Fk={i│i∈I∧s({i}≥N×min sup)}*發現所有的頻繁1-項集*
repeat
k=k+1
Ck=apriori-gen(Fk-1)*產生候選項集*
for 每個事務t T do
Ct=subset(Ck,t) *識別屬于t的所有候選*
for 每個候選項集c Ct do
s(c)=s(c)+1 *支持度計數增值*
end for
end for
Fk={c│c∈Ck∧s({c}≥N×min sup)} *提取頻繁k-項集*
until Fk=?覫
result=∪Fk
2) 規則的產生:其目標是從發現的頻繁項集中提取所有高置信度的規則。產生的步驟為:首先,對于每個頻繁項集L,找出L的所有非空子集;然后,對于L的每個非空子集a,如果support_count(L)/support_count(a) min_conf(置信閾值),則輸出規則“a?圯(L-a)”。Apriori算法使用一種逐層方法來產生關聯規則[4],其中每層對應規則后件中的項數。初始,提取規則后件只含一個項的所有高置信度規則,然后,使用這些規則產生新的候選規則。例如,如果{acd}?圯{b}和{abd}?圯{c}是兩個高置信度規則,則通過合并這兩個規則的后件產生候選規則{ad}?圯{bc};如果規則{bcd}?圯{a}具有低置信度,則可丟棄后件包含a的所有規則(依據規則置信度剪枝原理:如果規則X?圯Y-X不滿足置信度閾值,則形如X’?圯Y-X’的規則一定也不滿足置信度閾值,其中X’?奐X)。如圖1所示,陰影部分為剪枝掉的低置信度規則。
Apriori中規則產生算法:
for 每一個頻繁k-項集fk,k≥2 do
H1={i│i ∈fk}*規則的1-項后件*
Call ap-genrules(fk,H1)
end for
過程ap-genrules(fk,H1):
k=| fk | *頻繁項集的大小*
m=| Hm |*規則后件的大小*
Ifk >m+1 then
Hm+1 apriori-gen (Hm)
for 每個hm+1∈Hm+1 do
conf= s(fk)/s(fk-hm+1)
if conf≥minconf then
output:規則(fk-hm+1)?圯hm+1
else
從 Hm+1delete hm+1
end if
end for
call ap-genrules (fk,Hm+1)
end if
2 借閱數據關聯分析實例
2.1 確定挖掘目標
為了使說明清晰易懂,使挖掘更具針對性和提高效率,此次實例主要用于分析某院系或某專業學生在借閱圖書的數據中哪些類目(基于中國圖書館分類法分類)的圖書具有較高的關聯性,即或該專業的學生在借閱專業書籍的同時是否還會借閱其它專業的書籍,從而指導圖書館的導讀導借工作。
2.2 數據的采集及預處理
數據挖掘要求源數據應該是大量的、真實的、歷史的、含有噪音的,而圖書館每天都會產生大量的流通數據,符合數據挖掘的要求,可從圖書館管理系統中導出一定時間內(一個季度或半年等)的借閱日志,形成excel表,這些數據是屬于結構化的數據,其一般的數據格式為 表1,含14個字段(視具體的圖書館管理系統而定)。
在這里,我們假設只對某個系的學生(如計算機系)的借閱記錄作分析,先后按“單位”、“證件號”字段進行分類排序,對于不是計算機系的學生不作考慮,且我們只對在該時間范圍內有多次借閱歷史的學生進行研究,借閱次數少的(如2次)不在研究之內。對數據進行預處理,刪除不必要的字段,形成事務數據(包含重復的證件號),其數據格式為表2。
再將索書號轉換為圖書分類號,如TP311.13/12→TP311.13,可用C#進行處理(在此不作詳述)。
2.3 模型的建立
設事務數據庫D={T1,T2,T3,……,Tm}(1≤m≤n),其中Tm={TID,t1,t2,t3,……,ti}(i k,k為最大借閱冊數),為每位讀者具體的借閱事務,TID為每條事務的唯一標識,通常為讀者證的條碼,ti為其中的項目,即讀者所借閱的每本書的中圖法分類號,可選擇一種適合的排序方法(如按照圖書分類排架的方法進行排序)對ti進行排序,在排序過程中還要注意刪除重復的元素,最后得到事務數據庫表3(實際分析時數據較大,本研究僅提供一較簡單用例用于分析說明)。
2.4 關聯挖掘
假設支持度閾值為40%,即最小支持度計數minsup為2,由表3生成一階候選項集如表4。
根據最小支持度計數,剪枝掉支持度較小的分類H319.9、I267、O212和TS971,生成頻繁1-項集,再由頻繁1-項集自連接并剪枝,生成頻繁2-項集如表5。
按照同樣的原理由頻繁2-項集生成候選3-項集。Apriori算法中apriori-gen函數候選產生的過程是合并一對頻繁(k-1)-項集,僅當它們的前k-2個項都相同,如2-項集{F270,TP274}和{F270,TP311.13}可合并成候選3-項集{F270,TP274,TP311.13}。然后對生成的候選3-項集進行剪枝生成頻繁3-項集,如表6。
至此,頻繁項集已產生完畢,因無法再生成頻繁4-項集。最后從發現的頻繁項集中提取具有高置信度的規則。如由頻繁項集{F270,H319.4,TP311.13}產生的規則如表7。
若最小置信度閾值minconf為80%,則只有規則{ F270,H319.4}?圯{ TP311.13}可輸出,是強關聯規則,且根據Apriori規則產生算法,由于規則{ H319.4,TP311.13}?圯{ F270}和{ F270,TP311.13}?圯{ H319.4}為低置信度規則,則后件包含F270或H319.4的規則將不會出現在候選規則中,這也大大提高了計算的效率。由此可以得出F270、H319.4、TP311.13三類圖書的相關性較強,且該系的學生在借閱了F270、H319.4兩類圖書的同時很有可能去借TP311.13的書。
3 結束語
數據挖掘技術的興起為很多行業和領域的信息分析和處理提供了一種新型的,優化的解決方案,較好地解決了數據過量而知識貧乏的矛盾,改變了過去那種單純依靠統計手段和數據庫管理系統的查詢檢索機制等方法,而是能夠自動、智能地將待處理的數據轉化為有用的信息和知識提交給決策者。對于圖書館這樣一個信息服務行業,它也將會是大有作為的,通過它可以發現大量借閱數據背后隱藏的信息,從而掌握讀者的閱讀習慣,優化資源配置等,甚至在一定意義上還能發現某些學科的交叉與聯系從而指導教學的調整等。本文主要就關聯規則在圖書情報中的實例應用作了一個探索性的研究,在解決實際問題的時候經常會多種方法聯合使用,這將會是一個值得我們進一步深入挖掘和探討的課題。
參考文獻:
[1] 魏育輝,潘潔.圖書流通數據的關聯挖掘量化分析方法[J].現代情報,2005(11): 108-110.
[2] 陳安,陳寧,周龍驤等編著.數所挖掘技術及應用[M].北京:科學出版社,2006.
[3] 王偉,張征芳,王海明.基于數據挖掘的圖書館讀者行為分析[J].現代圖書情報技術,2006(11):51-54,60.
[4] TAN P N, STEINBACH M, KUMAR V.數據挖掘導論[M].范明,范宏建,譯.北京:人民郵電出版社,2006.