數(shù)據(jù)挖掘就是從存放在數(shù)據(jù)庫、數(shù)據(jù)倉庫或者其他信息庫中的大量數(shù)據(jù)中挖掘有趣知識的過程。它是在多種數(shù)據(jù)存儲方式的基礎(chǔ)上,借助有效的分析方法和工具,從傳統(tǒng)的事務(wù)型數(shù)據(jù)庫功能(增加、刪除、修改、查詢、統(tǒng)計等)背后,獲得更深層次的信息。在數(shù)據(jù)挖掘技術(shù)的不斷發(fā)展過程中,如何將數(shù)據(jù)挖掘(DM)系統(tǒng)與數(shù)據(jù)庫(DB)系統(tǒng)和數(shù)據(jù)倉庫(DW)系統(tǒng)緊密耦合(所謂耦合,即是數(shù)據(jù)挖掘系統(tǒng)和數(shù)據(jù)庫或者數(shù)據(jù)倉庫的集成程度)在一起是始終困擾著人們設(shè)計一個好的數(shù)據(jù)挖掘工具的最大問題。從最初的不耦合到松散耦合再到半緊密耦合,人們一直尋求著如何將DM系統(tǒng)平滑的集成到DB/DW中(即緊密藕合)。目前眾多數(shù)據(jù)挖掘系統(tǒng)、數(shù)據(jù)挖掘工具中,大部分都是實(shí)現(xiàn)一個與數(shù)據(jù)倉庫系統(tǒng)獨(dú)立開來的數(shù)據(jù)挖掘系統(tǒng),這樣便使得數(shù)據(jù)挖掘過程中要花費(fèi)大量的時間進(jìn)行數(shù)據(jù)加載轉(zhuǎn)換,算法運(yùn)行時間長、效率低,特別是面對當(dāng)前數(shù)據(jù)倉庫中保存的海量數(shù)據(jù)時,更是效率低下。
文中在已有的數(shù)據(jù)挖掘系統(tǒng)體系基礎(chǔ)上,應(yīng)用數(shù)據(jù)挖掘系統(tǒng)與數(shù)據(jù)倉庫系統(tǒng)緊密耦合的策略,提出了嵌入式數(shù)據(jù)挖模型,把數(shù)據(jù)挖掘系統(tǒng)和整個數(shù)據(jù)挖掘流程完全控制在數(shù)據(jù)倉庫系統(tǒng)中,從而大大提高數(shù)據(jù)挖掘的效率。并且針對市面的一些用于銀行卡業(yè)務(wù)的數(shù)據(jù)挖掘系統(tǒng)過于繁瑣,但是效率不高、針對性不強(qiáng)等問題,本文提出將嵌入式數(shù)據(jù)挖掘應(yīng)用于銀行卡業(yè)務(wù)中,使得應(yīng)用針對性更強(qiáng),在節(jié)約了開發(fā)成本的同時也提高了挖掘效率。
1 嵌入式數(shù)據(jù)挖掘模型
嵌入式數(shù)據(jù)挖掘模型主要是采用多種數(shù)據(jù)庫訪問技術(shù)把算法嵌入到數(shù)據(jù)挖掘系統(tǒng)中。該模型支持按照一定的標(biāo)準(zhǔn)規(guī)范來開發(fā)挖掘算法,并把算法發(fā)布嵌入到多種數(shù)據(jù)庫、數(shù)據(jù)倉庫當(dāng)中,將數(shù)據(jù)挖掘過程完全控制在數(shù)據(jù)庫、數(shù)據(jù)倉庫系統(tǒng)中,將數(shù)據(jù)挖掘功能轉(zhuǎn)換成大家熟悉的、通用的、靈活的、可二次開發(fā)的數(shù)據(jù)倉庫功能。
該系統(tǒng)框架主要由數(shù)據(jù)層、算法嵌入層、數(shù)據(jù)挖掘?qū)右约坝脩魧?,系統(tǒng)模型如圖1所示。
1.1 數(shù)據(jù)層和用戶層
數(shù)據(jù)層主要包括數(shù)據(jù)庫或數(shù)據(jù)倉庫中的海量業(yè)務(wù)數(shù)據(jù)以及元數(shù)據(jù),它是數(shù)據(jù)挖掘過程中最基礎(chǔ)的部分。
在該模型中,用戶層包括算法發(fā)布人員、數(shù)據(jù)分析人員、數(shù)據(jù)庫管理人員,即使得數(shù)據(jù)挖掘面向更多的用戶,擺脫了以前數(shù)據(jù)挖掘?qū)I(yè)人士的過多依賴性。
1.2 算法嵌入層
整個嵌入流程可以分為兩個過程:算法發(fā)布和算法調(diào)用。算法發(fā)布過程主要是把算法發(fā)布到特定的數(shù)據(jù)倉庫系統(tǒng)中,為數(shù)據(jù)挖掘系統(tǒng)在數(shù)據(jù)倉庫系統(tǒng)中的執(zhí)行奠下基礎(chǔ);算法調(diào)用過程則是在數(shù)據(jù)倉庫系統(tǒng)中進(jìn)行的,主要通過數(shù)據(jù)倉庫系統(tǒng)中的存儲過程,讓用戶傳人相關(guān)參數(shù),然后調(diào)用第一步發(fā)布的算法對用戶指定的數(shù)據(jù)進(jìn)行挖掘。
1)算法發(fā)布
算法發(fā)布過程首先就是把算法封裝成DLL文件,同時把調(diào)用算法的接口編譯成EXE文件,然后把算法DLL文件和相應(yīng)的EXE文件發(fā)布到數(shù)據(jù)庫或數(shù)據(jù)倉庫中,最后在相應(yīng)的數(shù)據(jù)庫中創(chuàng)建存儲過程(簡稱SP),流程如圖2所示。
2)算法調(diào)用
在調(diào)用過程中,由于不同數(shù)據(jù)倉庫系統(tǒng)的存儲過程的功能大小不同,不同數(shù)據(jù)倉庫系統(tǒng)對EXE文件,DLL文件的調(diào)用方式都有很大的區(qū)別,所以具體的實(shí)現(xiàn)細(xì)節(jié)在不同數(shù)據(jù)倉庫系統(tǒng)下還是有很大的區(qū)別的。在該模型中,數(shù)據(jù)倉庫終端調(diào)用存儲過程(SP),把算法參數(shù)和用戶參數(shù)傳進(jìn)存儲過程,然后讓存儲過程調(diào)用EXE文件,EXE文件主要是處理存儲過程傳入的參數(shù),然后調(diào)用DLL算法生成挖掘結(jié)果。具體流程如圖3所示。
1.3 數(shù)據(jù)挖掘?qū)?/strong>
1)預(yù)處理模塊
數(shù)據(jù)預(yù)處理在數(shù)據(jù)倉庫(或數(shù)據(jù)庫)中進(jìn)行,主要有兩個途徑可以實(shí)現(xiàn):一種是直接利用數(shù)據(jù)倉庫管理系統(tǒng)(SQL等)來對數(shù)據(jù)倉庫的數(shù)據(jù)表進(jìn)行加工處理,還有一種就是像挖掘算法一樣,用高級語言實(shí)現(xiàn),然后嵌入到數(shù)據(jù)倉庫系統(tǒng)中,用戶就可以像一般的存儲過程一樣調(diào)用相應(yīng)的預(yù)處理方法來對數(shù)據(jù)進(jìn)行預(yù)處理。這兩種預(yù)處理可以相互循環(huán)使用,直到加工滿意的數(shù)據(jù)為止。
2)結(jié)果處理模塊
結(jié)果處理流程其實(shí)和算法凋用過程是同時進(jìn)行的,在EXE文件中通過數(shù)據(jù)庫訪問技術(shù)獲取數(shù)據(jù),在EXE中調(diào)用DLL算法產(chǎn)生文本結(jié)果返回到EXE文件中。這時候,這個文本結(jié)果可以經(jīng)過加工處理寫回數(shù)據(jù)倉庫,同時也可以展示給用戶。具體如圖4所示。分析處理后,生成結(jié)果表查詢結(jié)果。