韓存鴿
(武夷學院數(shù)學與計算機系,福建武夷山 354300)
目前,基本上所有的高校圖書館都建立了各自的業(yè)務(wù)處理系統(tǒng)和圖書館辦公自動化系統(tǒng),這些系統(tǒng)對提高高校圖書館的工作效率、減少重復性工作起到了積極作用,推動了高校圖書館事業(yè)的發(fā)展。
但是大多數(shù)圖書館數(shù)據(jù)庫系統(tǒng)只能對現(xiàn)有數(shù)據(jù)進行查詢、錄入和存取等比較簡單的操作,不能發(fā)現(xiàn)數(shù)據(jù)中隱藏的關(guān)系和規(guī)則,不能對圖書館所存數(shù)據(jù)的潛在信息以及讀者的個人信息進行高效的分析,并比較準確地預測其發(fā)展趨勢,從而導致“數(shù)據(jù)豐富,但信息貧乏”的局面。本文使用聚類挖掘?qū)ξ湟膶W院圖書館管理的流通數(shù)據(jù)進行分析,給廣大師生提供個性化的服務(wù)。
聚類分析是數(shù)據(jù)挖掘研究領(lǐng)域中一個非?;钴S的研究課題。目前聚類分析已被廣泛應(yīng)用于許多研究領(lǐng)域,包括數(shù)據(jù)挖掘、圖像分割、模式識別、市場研究等領(lǐng)域[1-6]。
所謂聚類就是將物理或抽象的集合分成相似的對象類的過程。簇是數(shù)據(jù)對象的集合,這些對象與同一個簇中的對象彼此相似,與其他簇中的對象相異[7]。在大多數(shù)情況下,一個簇中的對象可以被作為一個組來處理。作為數(shù)據(jù)挖掘的一個功能,聚類分析能作為一個獨立的工具來獲得數(shù)據(jù)分布情況,并觀察每個簇的特點,集中對特定的某些簇做進一步的分析。
目前文獻中存在大量的聚類算法。比較著名的有 K-MEANS、PAM、CLARANS、BIRCH、CURE、SCAN、OPTICS、CLIQUE CABOSFV 等。各類數(shù)據(jù)挖掘軟件中比較經(jīng)典的為K-means模型。
首先,輸入樣本集合,然后對樣本進行預處理,通過對不同屬性的樣本進行選擇、抽取,根據(jù)聚類分析的數(shù)據(jù)類型要求形成樣本表示,再根據(jù)樣本間的相似性進行分組聚類。一般情況,聚類是一個循環(huán)漸近的過程,需要對樣本間的相似性進行比較,以改善不同的分組情況,使同組對象彼此更相似,而與其他組的對象更相異[8]。圖1為聚類分析的過程。
K-means算法是很典型的基于距離的聚類算法,采用距離作為相似性的評價指標,即認為2個對象的距離越近,其相似性就越大。
圖1 聚類分析的過程
1.3.1 K-means算法的處理流程
首先,隨機地選擇k個對象,每個對象初始地代表了一個簇的平均值或中心。對剩余的每個對象,根據(jù)其與各個簇均值的距離(一般用歐氏距離)將它派給最近的簇。然后計算每個簇的新均值。這個過程不斷重復,直到準則函數(shù)收斂。通常采用平方誤差準則,其定義為[8]其中:E是數(shù)據(jù)庫中所有對象的平方誤差總和;p是空間中的點,表示給定的數(shù)據(jù)對象;mi是簇Ci的平均值(p和mi都是多維的)。這個準則使生成的結(jié)果簇盡可能地緊湊和獨立。
1.3.2 K 均值劃分算法
Input:K(簇的數(shù)目),D(包含n個對象的數(shù)據(jù)集)
Output:K個簇的集合
方法:
1)從D中任意選擇k個對象作為初始簇中心;
2)repeat;
3)根據(jù)簇中對象的均值,將每個對象(再)指派到最相似的簇;
4)更新簇均值,即計算每個簇中對象的均值;
5)until不再發(fā)生變化。
武夷學院圖書館使用的是大連網(wǎng)信軟件公司研制妙思文獻管理集成系統(tǒng)。該系統(tǒng)全面覆蓋了圖書館自動化業(yè)務(wù)的功能需求,核心功能包括圖書和連續(xù)出版物的采購、編目、典藏以及流通管理系統(tǒng),支持校園一卡通。
2.1.1 讀者聚類數(shù)據(jù)采集
從武夷學院圖書館管理系統(tǒng)中聚類挖掘所需的信息,分別形成ltxxb(流通信息表)、dzxxb(讀者信息表)、wxxxb(文獻信息表)、tmxxb(條碼信息表)4個表。本次研究是在Visual FoxPro 6.0環(huán)境下進行數(shù)據(jù)的處理,具體SQL查詢語句如下:
select ltxxb.讀者證號,ltxxb.讀者姓名,dzxxb.讀者單位,借出時刻,wxxxb.索取號;
from ltxxb,dzxxb,wxxxb,tmxxb into table alldata;
where ltxxb.條碼 =wxxxb.條碼 and tmxxb.索取號=wxxxb.索取號 and ltxxb.讀者證號=dzxxb.讀者證號 and借出時刻 between{^2006.08.01}and{^2007.07.31 23:00:00}
利用Visual FoxPro語言輸入SQL命令,統(tǒng)計每一位讀者1年內(nèi)的借閱數(shù)量。在VFP6.0中具體SQL查詢語句如下:
select讀者證號,讀者單位,count(讀者證號)as借閱冊數(shù);
from alldata into table jieyue;
group by讀者證號;
order by借閱冊數(shù)desc
讀者借閱數(shù)據(jù)共有9 826條記錄。
2.1.2 圖書流通量數(shù)據(jù)采集
先從 ltxxb中統(tǒng)計出每種書的流通量,在VFP6.0中具體SQL查詢語句如下:
select控制號,count(讀者證號)as流通量;
from ltxxb into table tushult;
group by控制號;
order by流通量desc
共有22 636條記錄。
然后從tushult和wxxxb中顯示每種借閱書籍的相關(guān)信息,此處使用wxxxb表和tushult表進行左連接,目的是找出一年未曾借出的書籍,SQL命令如下:
select流通量,復本數(shù),索取號,正題名,出版日期,標準編號,文獻類型;
from wxxxb into table tushujl;
left join tushult on tushult.控制號 =wxxxb.控制號;
order by流通量desc
圖書流通數(shù)據(jù)共有235 869條記錄。
2.2.1 空值作刪除處理
做聚類分析的2類數(shù)據(jù)讀者借閱量和圖書流通量中的所有屬性都不能為空,如果出現(xiàn)空值,則刪除這條記錄。如jieyue表中由于有些臨時讀者信息被刪除,出現(xiàn)讀者證號為空的現(xiàn)象,所以必需去掉這部分空值信息;又如在tushujl數(shù)據(jù)表中,描述圖書信息的正題名字段不能出現(xiàn)空值,如發(fā)現(xiàn)則應(yīng)剔除。對于tushujl表中流通量為“.null.”的記錄,在刪除之前把一年來未流通的書籍信息保存在單獨的一個表中(后面要用),最終形成待挖掘的22 635條記錄。
2.2.2 噪聲處理
分析 wxxxb、tmxxb、ltxxb 、dzxxb四個數(shù)據(jù)表的記錄,發(fā)現(xiàn)存在一些影響挖掘結(jié)果的數(shù)據(jù)。如在流通量數(shù)據(jù)表中,一些復本數(shù)超過100的為非正常數(shù)據(jù),轉(zhuǎn)換成20~30復本數(shù)。一些不流通的圖書,如工具書閱覽室內(nèi)的圖書等應(yīng)排除,以免影響聚類結(jié)果。在借閱數(shù)據(jù)表中,有的讀者“一卡通”借書證掛失補辦了,造成新舊證號都有借閱信息,影響了讀者借閱情況的挖掘,對這些記錄應(yīng)合并為1條。
使用 Clementine 挖掘工具[9-10]K-means模型進行聚類分析,從讀者的借閱冊數(shù)和圖書流通量2個角度進行聚類分析,聚類結(jié)果表示為圖書館的圖書推薦。
在Clementine中首先應(yīng)該導入待分析數(shù)據(jù)jieyue.xls(在 Visual FoxPro 中將 jieyue.dbf導出成jieyue.xls),使用type節(jié)點對數(shù)據(jù)的屬性進行設(shè)置。這里針對讀者的借閱冊數(shù)進行分類,所以,只有借閱冊數(shù)字段方向為輸入,讀者證號、讀者單位、讀者姓名3個字段都為無。使用Clementine進行聚類分析,有3種模型可供選擇,分別是“神經(jīng)網(wǎng)絡(luò)”、“K均值”、“兩步”聚類模型,本文選擇經(jīng)典的“K-means”模型進行聚類挖掘。在該模型的屬性設(shè)置上,聚類數(shù)k=3,分別為“活躍讀者”“消極讀者”“一般讀者”,最后將聚類結(jié)果以表格形式顯示出來。從讀者借閱冊數(shù)角度進行聚類分析的整個流程如圖2所示。以表格形式顯示聚類結(jié)果,部分數(shù)據(jù)如圖3所示。
圖2 讀者聚類挖掘流程
圖3 以表格方式顯示讀者聚類結(jié)果中部分數(shù)據(jù)
以上的挖掘僅從讀者的借閱冊數(shù)角度來衡量讀者的需求。根據(jù)聚類結(jié)果,可以適當為活躍型讀者提供一定的便利,比如增加這些讀者的允借冊數(shù),而不是使用同一標準對待不同的讀者,為讀者提供更加便利的服務(wù)。對一般型讀者,可以進一步挖掘他們的借閱興趣,為他們提供更主動的推薦服務(wù)。而對那些消極讀者,圖書館可以適當?shù)亻_展圖書宣傳,使他們轉(zhuǎn)消極為積極,提高圖書館的利用率。
在Clementine軟件中導入待分析數(shù)據(jù)tushujl.xls(在Visual FoxPro中將tushujl.dbf導出成tushujl.xls),使用type節(jié)點對數(shù)據(jù)的屬性進行設(shè)置,這里針對讀者的圖書流通量進行分類,所以,在type節(jié)點設(shè)置流通量字段方向為輸入,復本數(shù)、索取號、正題名、出版日期、標準編號、文獻類型6個字段方向都為無。使用Clementine進行聚類分析。本文繼續(xù)選擇“K-means”模型進行聚類挖掘。在該模型的屬性設(shè)置上,聚類數(shù)k=3,分別為“熱門書”“冷門書”“一般書”,最后將聚類結(jié)果以表格形式顯示出來。從圖書流通量角度進行聚類分析的整個流程與讀者聚類挖掘流程相似,這里不再列出。聚類挖掘的最終結(jié)果如圖4所示。
圖4 圖書流通量聚類結(jié)果中部分數(shù)據(jù)
根據(jù)對圖書聚類挖掘的結(jié)果,對那些熱門書(圖4中類別為1的圖書)建議圖書館可以專門設(shè)一個“熱門借書區(qū)”,方便讀者快速查找想借閱的圖書。而將一些“冷門書”可以做相關(guān)處理,比如文獻剔舊或下架,為圖書館節(jié)省藏書空間。同時那些復本量過大的”冷門書”(在聚類結(jié)果中類別為2的圖書)也可以為圖書采購部門提供參考。還有一部分未流通的書籍(流通量為.null.),圖書館工作人員可以做適當分析,對那些新采購的書籍可以多做宣傳,增加圖書利用率,而對那些舊的書籍,可以做適當剔除。
本文對武夷學院圖書館提供的流通數(shù)據(jù)進行了處理,主要采集讀者借閱冊數(shù)和圖書流通量2類數(shù)據(jù)。在Clementine中使用K-means模型進行聚類分析,從讀者的借閱冊數(shù)角度進行分類,將讀者劃分成“活躍讀者”“消極讀者”及“一般讀者”3類;根據(jù)圖書流通量進行分類,將圖書分成“熱門書”“冷門書”及“一般書”3類。根據(jù)聚類挖掘的結(jié)果,為不同類的讀者提供不同的服務(wù),針對不同類的圖書采取相應(yīng)的措施。
[1]蘇靜.基于聚類分析的河南城鄉(xiāng)一體化區(qū)域差異研究[J].安徽農(nóng)業(yè)科學,2011(21):13224 -13225.
[2]楊軍,鞏玨,鄧文兵.火炮射擊精度的模糊等價關(guān)系聚類分析[J].四川兵工學報,2010(1):28 -29,37.
[3]余肖生,司新霞.基于聚類分析的元搜索引擎模型[J].重慶理工大學學報:自然科學版,2011(6):69-72.
[4]陳桂枝.湖北省縣域城鎮(zhèn)化水平的聚類分析[J].安徽農(nóng)業(yè)科學,2011(29):18352-18354.
[5]李鳳蘭,樊逾,蘇理云.層次聚類的重慶市高校圖書館分類評估[J].重慶理工大學學報:自然科學版,2011(9):121-126.
[6]張林林,周毅,周瑞有,等.對空目標射擊有利度模糊聚類分析[J].四川兵工學報,2010(12):145-146.
[7]Han jiawei,Micheline,Kamber.數(shù)據(jù)挖掘概念與技術(shù)[M].范明,孟小峰,譯.北京:機械工業(yè)出版社,2006.
[8]陸云.聚類分析數(shù)據(jù)挖掘方法的研究應(yīng)用[D].合肥:安徽大學,2007.
[9]岳小婷.數(shù)據(jù)挖掘工具Clementine應(yīng)用[J].牡丹江大學學報,2007(4):103-105.
[10]劉利俊.利用Clementine進行試卷質(zhì)量分析[J].現(xiàn)代計算機,2008(5):115-117.