劉法倫,南理勇
(1.濱州學(xué)院 遠(yuǎn)程教育學(xué)院,山東 濱州 256600;2.濱州學(xué)院 計算機(jī)科學(xué)技術(shù)系,山東 濱州 256603)
隨著數(shù)據(jù)庫技術(shù)的不斷發(fā)展及數(shù)據(jù)庫管理系統(tǒng)的廣泛應(yīng)用,數(shù)據(jù)庫中存儲的數(shù)據(jù)量急劇增大,在大量的數(shù)據(jù)背后隱藏著許多重要的信息,數(shù)據(jù)挖掘技術(shù)能把這些信息從數(shù)據(jù)庫中抽取出來,為企業(yè)決策的制定提供有力的數(shù)據(jù)依據(jù)[1]。
對于商家來說,掌握客戶的有效信息并做出正確的決策,在日益激烈的競爭中越來越重要。本文是基于數(shù)據(jù)挖掘技術(shù)通過對某一書店的銷售業(yè)務(wù)數(shù)據(jù)進(jìn)行挖掘分析,提高企業(yè)對圖書銷售分析的能力,從而幫助商家有效地抓住商機(jī),創(chuàng)造最大利潤。
根據(jù)系統(tǒng)需求分析知,系統(tǒng)應(yīng)實(shí)現(xiàn)對該書店的會員分析和圖書分析兩大部分。會員分析是對該書店的注冊會員的信息進(jìn)行挖掘,實(shí)現(xiàn)會員級別分析、會員消費(fèi)分析、會員類型分析和圖書推薦等四部分內(nèi)容。而圖書分析則是對書店各類圖書的信息進(jìn)行挖掘,實(shí)現(xiàn)圖書的銷售走勢分析、銷量分析、銷售關(guān)聯(lián)分析和定價分析等四部分功能。系統(tǒng)功能模塊圖具體如圖1所示。
圖1 系統(tǒng)功能模塊圖
該系統(tǒng)通過一個Analysis Services項目來創(chuàng)建和維護(hù)數(shù)據(jù)挖掘?qū)ο?,其?shù)據(jù)來源于SQL Server數(shù)據(jù)庫“BookSell”。終端的Windows應(yīng)用程序通過調(diào)用Analysis Services中的挖掘模型來執(zhí)行各種預(yù)測分析。
該數(shù)據(jù)庫所需創(chuàng)建的基本表主要包括:圖書信息表(Book)、圖書類目表(BookCategory)、用戶信息表(Customer)、打折信息表(Discount)、圖書出售表(Sell)、圖書出售條款信息表(SellItem)。
為更方便對數(shù)據(jù)庫的操作,該數(shù)據(jù)庫設(shè)計了V_Book、V_BookSell、V_WeekSell三個視圖。其中,視圖V_Book是對基礎(chǔ)表Book和SellItem的綜合查詢,包含了圖書的基本信息和銷售情況匯總;視圖V_BookSell包含了圖書的銷售明細(xì)信息;視圖V_WeekSell包含了圖書每周銷量信息。
另外,為了方便在對數(shù)據(jù)庫操作,該系統(tǒng)創(chuàng)建了4個如下存儲過程:ResetScore根據(jù)用戶的積分重新設(shè)置用戶當(dāng)前的等級;ResetSellItemSum根據(jù)當(dāng)前銷售額更新銷售條款信息表;ResetSellSum根據(jù)銷售的圖書類別更新圖書銷售表;UpdateSell根據(jù)上述三個存儲過程對圖書銷售情況適當(dāng)更新。
該系統(tǒng)在開發(fā)過程中,使用到的關(guān)鍵技術(shù)主要包括:
(1)根據(jù)應(yīng)用需求來創(chuàng)建各類挖掘模型。
(2)在客戶端通過 ADOMD.NET訪問 Analysis Services數(shù)據(jù)庫對象;在客戶端調(diào)用DMX查詢命令來執(zhí)行模型預(yù)測。
ADOMD.NET是受托管的數(shù)據(jù)提供程序,它實(shí)現(xiàn)了ADO.NET專用于Analysis Services的數(shù)據(jù)適配器和數(shù)據(jù)閱讀器接口,從而使得它比通用的ADO.NET對象更快,而且在內(nèi)存利用上更有效。除了標(biāo)準(zhǔn)的ADO.NET接口,ADOMD.NET還包括數(shù)據(jù)挖掘?qū)ο蠛吞囟ㄓ贠LAP的對象,從而使得對數(shù)據(jù)挖掘客戶端應(yīng)用程序進(jìn)行編程更容易[2]。
根據(jù)該系統(tǒng)的分析功能,所需要創(chuàng)建的挖掘結(jié)構(gòu)有Customer.dmm包含模型貝葉斯挖掘模型、決策樹挖掘模型、聚類分析挖掘模型,其數(shù)據(jù)源為基本表 Customer;CustomerBooks.dmm包含關(guān)聯(lián)規(guī)則挖掘模型,其數(shù)據(jù)源為基本表customer和視圖V_BookSell關(guān)聯(lián)后的Book Sell.dsv;WeekSell.dmm包含時序挖掘模型,其數(shù)據(jù)源為視圖V_WeekSell;Book.dmm包含神經(jīng)網(wǎng)絡(luò)挖掘模型,其數(shù)據(jù)源為視圖V_Book;BookAssociation.dmm包含順序分析挖掘模型,其數(shù)據(jù)源為基本表customer和視圖V_BookSell關(guān)聯(lián)后的Book Sell.dsv;BookPrice.dmm包含線性回歸挖掘模型,其數(shù)據(jù)源為視圖V_Book。
(1)貝葉斯模型
這里使用基于貝葉斯算法的挖掘模型來分析會員級別,該模型依據(jù)對現(xiàn)有會員級別的分析結(jié)果構(gòu)建的,而其主要功能是預(yù)測新會員今后最可能達(dá)到的級別,從而幫助書店管理者制定更為有效的會員管理策略。
(2)決策樹模型
決策樹是以實(shí)例為基礎(chǔ)的歸納學(xué)習(xí)算法[3]。在該系統(tǒng)中,該模型將實(shí)現(xiàn)預(yù)測會員的消費(fèi)水平最有可能在哪一個消費(fèi)區(qū)間的功能。根據(jù)會員以往消費(fèi)的歷史數(shù)據(jù)將會員的消費(fèi)類型分為偶然會員、忠實(shí)會員、一般會員。
(3)聚類分析模型
聚類是在事先不規(guī)定分組規(guī)則的情況下,將數(shù)據(jù)按照其自身特征劃分成不同的群組[4]。該模型用于預(yù)測會員類型,這里根據(jù)會員注冊的個人信息中的年齡和學(xué)歷信息將會員類型分為以下幾類。
分類1:學(xué)歷層次較高,年齡在26-30歲之間,消費(fèi)額居中上水平者,可以判定該類會員主要是科研工作人員。
分類2:學(xué)歷層次較高,年齡在30歲以上,消費(fèi)額以中上為主者,可判定該類會員主要是管理人員。
分類3:學(xué)歷以本科為主,年齡偏低,消費(fèi)額居中者,可認(rèn)為這類會員主要是在校學(xué)生。
(4)關(guān)聯(lián)規(guī)則模型
該模型用于挖掘會員與圖書間的關(guān)聯(lián)性,通過對分析會員之前的購書信息的分析,向會員推薦其他可能感興趣的圖書。
(5)時序挖掘模型
該模型主要用于圖書銷售走勢分析,根據(jù)圖書銷售的歷史數(shù)據(jù),預(yù)測某一圖書的在未來幾周的銷售額。
(6)神經(jīng)網(wǎng)絡(luò)模型
基于神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)挖掘工具對于非線性數(shù)據(jù)據(jù)有快速建模能力[5]。通過上述時序挖掘模型我們可以根據(jù)圖書銷售的歷史數(shù)據(jù)來預(yù)測圖書未來的銷量(銷售額),而假設(shè)要對新書進(jìn)行銷售量的預(yù)測,時序挖掘模型將不再適用,而基于神經(jīng)網(wǎng)絡(luò)算法可以完成這一任務(wù),該模型更為全面地實(shí)現(xiàn)了對圖書信息中銷量(銷售額)的分析。
(7)順序分析模型
該模型與前面所創(chuàng)建的關(guān)聯(lián)規(guī)則模型相比,盡管他們使用的事例表和嵌套表相同,預(yù)測類型也相同的,但用途不同:關(guān)聯(lián)規(guī)則模型CustomerBooks分析的是會員個人信息,并由此預(yù)測該會員最有可能購買的圖書;該模型BookAssociation分析的是圖書銷售信息,并由此預(yù)測已購買了某一圖書的顧客還有可能購買另外哪些圖書。
(8)創(chuàng)建線性回歸模型
為了實(shí)現(xiàn)對圖書定價的分析,創(chuàng)建線性回歸模型BookPrice。對于該系統(tǒng)的圖書信息分析中只針對定價進(jìn)行分析,所以只有一個輸入列,這里得到一元線性回歸公式。
客戶端通過ADOMD.NET訪問Analysis Services數(shù)據(jù)庫對象以及通過DMX查詢命令預(yù)測的一般步驟如下:
首先,打開關(guān)閉數(shù)據(jù)連接,這里連接對象分別是SQL Server的 BookSell數(shù)據(jù)庫和 AnalysisServices的BookSellAnalysis數(shù)據(jù)庫。
連接代碼如下:
最后,結(jié)果顯示使用AdomdDataReader對象。
圖書銷售分析系統(tǒng)中對會員信息和圖書信息分析功能實(shí)現(xiàn)的過程基本如上述步驟。
(1)會員分析功能的實(shí)現(xiàn)
用于會員信息分析的Windows窗體如圖2所示,主要實(shí)現(xiàn)的功能包括:會員等級預(yù)測、會員消費(fèi)額預(yù)測、會員的類型預(yù)測以及推薦圖書信息。
圖2 會員分析窗體CustomerAnalysisiForm
該窗體在初始化和關(guān)閉時,將打開和關(guān)閉相應(yīng)的數(shù)據(jù)連接,窗體在初始化的同時還用SQL命令把所有會員的編號載入到“會員編號”框中。在選擇某會員的編號并按下“載入會員信息”時,系統(tǒng)將再次通過SQL命令來讀取該會員的個人信息,并將其顯示在各個控件中。
如圖2所示,窗體的下部是一個TabControl容器控件,它的4個TabPage頁分別用于實(shí)現(xiàn)會員的級別分析、消費(fèi)分析、類型分析和圖書推薦功能。當(dāng)用戶選擇某預(yù)測功能選項卡并點(diǎn)擊“預(yù)測(P)”后,程序會根據(jù)相關(guān)輸入來構(gòu)造DMX預(yù)測分析字符串,并調(diào)用相應(yīng)的模型來實(shí)現(xiàn)預(yù)測分析功能。
(2)圖書分析功能的實(shí)現(xiàn)
用于圖書信息分析的視圖如圖3所示,該窗體類BookAnalysisForm的成員字段、構(gòu)造函數(shù)、初始化和關(guān)閉事件以及對圖書信息的各預(yù)測功能實(shí)現(xiàn)的過程都和會員信息分析窗體類似。
圖3 圖書分析窗體BookAnalysisForm
本文基于數(shù)據(jù)挖掘技術(shù)實(shí)現(xiàn)了對圖書銷售的相關(guān)分析與預(yù)測,結(jié)合實(shí)例實(shí)現(xiàn)了對數(shù)據(jù)挖掘模型的應(yīng)用,各模型的功能也在實(shí)例中得到了充分的體現(xiàn)。對圖書銷售企業(yè)的管理和決策的制定有一定的實(shí)際意義,也體現(xiàn)了數(shù)據(jù)挖掘技術(shù)在銷售分析系統(tǒng)中應(yīng)用的重要性。
另外,本文是在關(guān)系型數(shù)據(jù)庫的基礎(chǔ)上進(jìn)行挖掘的,在對于一些大型企業(yè)來說,所要分析的數(shù)據(jù)量將會非常大,不同業(yè)務(wù)數(shù)據(jù)也將會增多,創(chuàng)建數(shù)據(jù)倉庫將成為必然;本文在設(shè)計之初所設(shè)想的對網(wǎng)絡(luò)瀏覽信息的分析功能未能實(shí)現(xiàn)。這兩方面若能實(shí)現(xiàn)將會使得系統(tǒng)更加完善。
[1]沈紅超.數(shù)據(jù)挖掘技術(shù)在電子商務(wù)中的應(yīng)用研究[D].無錫:江南大學(xué),2009.
[2]楊大川.數(shù)據(jù)挖掘原理與應(yīng)用[M].北京:清華大學(xué)出版社,2007.
[3]羅可,林睦綱,等.數(shù)據(jù)挖掘中分類算法綜述[J].計算機(jī)工程,2005(1):3-5.
[4]左延權(quán).聚類分析算法在圖書管理系統(tǒng)中的應(yīng)用研究[D].大連:大連交通大學(xué),2009.
[5]程秩.常用預(yù)測方法及評價綜述[J].四川師范大學(xué)學(xué)報,2002,15(1):70 -73.