一、強大的元數據管理
元數據就是關於數據的數據。系統利用數據倉庫中元數據的管理思想,擴展了元數據的作用範圍,使它不僅管理數據倉庫中的數據,而且管理數據轉換規則和數據挖掘算法,便於數據的一致性維護和操作。元數據居於整個系統的核心地位,統一管理數據倉庫和數據挖掘工具,並控制整個數據挖掘流程,包括數據準備、挖掘、表述以及評價,使數據和數據挖掘任務有機地結合在一起。同時,系統採用面向對象的方法對複雜的元數據進行管理和維護,保證了元數據的一致性和系統的健壯性。MSMiner元數據的內容。MSMiner系統的元數據用來描述整個系統的狀態和行為方式,主要包括以下幾方面內容:外部數據源描述、數據倉庫信息描述、用戶信息描述、主題描述、ETL任務描述、數據轉換規則庫管理、數據立方體描述、數據挖掘任務描述和數據挖掘算法庫的管理。 MSMiner元資料庫。元資料庫中包含多個元數據表,分別存儲各類元數據的詳細信息,是MSMiner數據倉庫中的核心資料庫。為了保證元數據的一致性,這些元數據表互相關聯,遵循一定的約束關係。 MSMiner元數據對象模型。MSMiner的元數據數量龐大並且關係複雜,很自然的想法是,通過一種相對獨立的模組專門負責對元數據的存取管理,這個模組必須符合一致性、完備性、易維護性的設計要求。MSMiner 採用一種面向對象的元數據結構:即將各種元數據封裝在相應的元數據類中,將這些元數據類的對象實例通過層次結構有機地組織起來,構成一種層次型對象模型。系統通過這些對象對各元數據表進行操作管理。系統通過這種對象模型訪問元數據,而不需要直接接觸元資料庫。在經過良好封裝的元數據類中包含各種屬性和方法,屬性表達了相應的元數據值,而方法定義了對相關元數據的各種操作,並負責維護元數據之間的一致性。元數據的存取、更新和管理通過訪問這些屬性和方法來實現。 元數據的管理。MSMiner元數據的管理是在各功能模組的管理維護中實現的。在通過MSMiner各個功能模組對數據倉庫各部分、ETL任務和數據挖掘任務進行建立、修改和日常維護時,元數據中的相應內容也同時得到新增、修改和維護。實際上,用戶就是通過在各個功能模組中對後台元數據進行維護來實現對整個系統的管理。對元數據各部分內容的管理,分布在系統中ETL任務管理、轉換規則庫管理、主題組織、OLAP、數據挖掘任務管理及算法庫管理等各個模組之中。
二、集成的數據倉庫管理器
MSMiner中通過數據倉庫管理器為數據挖掘工具提供數據平台,其主要目標是通過建立和維護數據倉庫,為數據挖掘提供經過清洗、整合、轉換的數據來源,完成數據挖掘過程中數據預處理的部分任務。MSMiner數據倉庫中的數據按主題組織,主題中包含多個事實表、維表、中間表以及數據立方體。數據倉庫主題按星型模式建模,在此基礎之上實現多維數據立方體和各種OLAP操作,並為數據挖掘任務提供經過適當預處理和良好組織的數據源,最後結果可由可視化工具顯示,或以報表的形式輸出。整個數據倉庫,包括數據的抽取及主題的組織等,均通過元數據來管理和維護。基於關係資料庫的數據倉庫實現.
根據MSMiner的設計目標,我們更注重實現數據倉庫的易用性和集成性,所以MSMiner數據倉庫的構建仍是基於傳統的關係型資料庫管理系統,其核心資料庫由Oracle 8i實現。MSMiner的外部數據源也主要是各種關係型資料庫。MSMiner通過OLE DB for ODBC接口,可與各種流行的資料庫產品連線,包括Oracle、Sybase、Microsoft等眾多廠商的大型資料庫系統和小型的桌面資料庫產品,保證了系統的開放性。主題 MSMiner數據倉庫以主題(Subject)為基本組成單位。每個主題包含多個事實表、維表、中間表以及數據立方體,它們在本質上都是一些綜合數據表。用戶根據需要,通過ETL模組,從外部數據源中抽取數據,並經過轉換處理,將數據裝載到數據倉庫主題的各個表中。
數據倉庫建模 MSMiner數據倉庫按照星型模型(Star Schema)建模。每個主題中包含多個事實表和維表。以一個事實表為中心,關聯多個維表,構成一個星型結構。多個星型結構共同組成了一個主題。
OLAP OLAP是指對以多維形式組織起來的數據(數據立方體)採取切片、切塊、旋轉、鑽取等各種分析動作,以求分析數據,使用戶能從多個角度、多側面地觀察資料庫中的數據,從而深入了解包含在數據中的信息、內涵。多維分析的基本操作有:切片(Slice)、切塊(Dice)、旋轉(Pivot)、、向上綜合(Roll Up)和向下鑽取(Drill Down)等。MSMiner的OLAP在關係型數據表上實現,即採用ROLAP方式。在主題中事實表關聯多個維表的星型結構之上模擬多維數據立方體,然後在數據立方體之上實現OLAP操作。各種OLAP操作請求將通過一個ROLAP引擎動態翻譯成SQL語句,在數據倉庫中的綜合數據表(事實表)中進行查詢得到結果。
三、高效的ETL解決方案
智慧型信息處理需要從現有數據源、包括企業OLTP系統、數據倉庫和外部數據源中抽取數據,並根據決策要求加工和轉換數據。由於這些數據具有多重數據格式,從源系統移動適當的數據到套用系統是一個非常複雜、需要消耗大量資源的工作。
MSMiner的ETL解決方案採用簡潔的ETL任務定製技術,可以方便地從多個數據源提取數據、完成複雜地數據轉換功能,並且將數據轉載到最終目的地。強大的數據抽取功能 MSMiner支持多種數據源,幾乎對所有的關係資料庫提供直連線口和ODBC訪問接口。除此之外,MSMiner還將支持文本檔案、網頁信息處理。
通過簡單的任務定製,用戶可以將多種數據源中的數據放進ETL任務中。靈活的轉換規則 一旦數據被抽取出來,必須經過數據轉換。在轉換過程中進行數據清洗、一致性檢查和數據格式轉換以及決策支持要求。
MSMiner提供了一個非常強大的轉換規則庫,其中包含了30個常用規則。這些預定義的轉換規則是帶參數的C++函式(COM objects),並且經過嚴格的測試。這些規則集成在一個友好的界面中,開發人員可以方便地將這些規則加入到ETL任務中。使用預定義的轉換規則可以大量縮短開發人員的開發和測試時間。
MSMiner支持用戶自己開發轉換規則,用戶可以使用C++創建自己的轉換規則(COM OBJECTS),同時將自定義的轉換規則註冊到MSMiner轉換規則庫中,以便代碼重用和共享。
四、靈活、方便的數據挖掘集成工具
數據挖掘集成工具的主要部分包括兩個模組:數據挖掘任務模型編輯模組和任務處理引擎。任務模型編輯模組提供任務模型編輯嚮導以及可視化任務模型編輯圖板,以一種可視化的方式引導用戶選擇數據源和算法,逐步構造適當的任務模型。任務處理引擎負責對數據挖掘任務進行規劃,解釋執行各個步驟,得到數據挖掘結果。挖掘結果經過解釋和評估,可以存入數據倉庫,並以報表和可視化方式輸出。
1、面向對象的數據挖掘任務模型 如何有效地集成數據和算法,靈活地組織數據挖掘流程,是數據挖掘的一個重要問題。現有的許多數據挖掘工具都是採用數據驅動的、單步驟的任務處理方式,難以描述複雜任務和進行複雜流程控制,無法滿足各種數據挖掘任務的需要。
MSMiner引入了一種通用的面向對象的數據挖掘任務模型表示方法,來描述和控制數據挖掘任務流程,能夠集成多種數據挖掘算法,以多種靈活的方式描述和組織各種數據挖掘任務,並在一定程度上實現了數據挖掘流程控制的自動化,實現了多策略的數據挖掘。數據挖掘任務模型的定義。MSMiner數據挖掘任務由多個對象組成,每個對象代表數據挖掘流程的一個步驟或一個子任務。每個對象都擁有定義自身特徵的屬性(Attributes)和定義自身行為的方法(Methods)。對象的屬性可以存貯整型、浮點型或字元型的值。方法用來存貯在這個對象對應的數據挖掘步驟中所要執行的操作。這些操作可以是訪問對象的屬性,調用算法,或控制執行流程等。這些對象有序地組成一種有向圖結構,這種由多個對象組成的有序對象模型表達了整個數據挖掘任務的組織和流程。 數據挖掘任務模型的元數據。數據挖掘任務模型的各種數據都存儲在元數據中,形成一個任務模型庫,並主要通過元數據類CTask和CStep進行管理。CTask包含了整個數據挖掘任務的信息,CStep描述數據挖掘各步驟的信息。元數據類CStep中的StepAttributes和StepMethod分別存儲了步驟對象所包含的各種屬性及DML方法腳本。
數據挖掘任務模型的編輯。數據挖掘集成工具中的任務模型編輯模組,提供了一個功能強大並且便捷易用的建立、編輯和存儲任務模型的環境。建立數據挖掘任務模型是一個比較複雜的過程,往往需要用戶具備一定的相關知識和技能。所以系統設計提供了一個任務模型編輯嚮導和一個可視化的任務模型編輯圖板,幫助用戶可視化地構造數據挖掘任務。通過任務模型編輯嚮導,可以引導用戶逐步建立數據挖掘任務的各個步驟,指定各步驟之間的聯繫,最終生成整個數據挖掘任務。
2、數據挖掘任務模型的處理 數據挖掘任務模型由任務處理引擎進行規劃和解釋執行,它的兩個主要功能模組是任務規劃器和解釋器。
執行數據挖掘任務時,需要先將任務有向圖模型轉化為各個步驟結點的一個有序序列,即進行任務的規劃後,再逐步解釋執行各個挖掘步驟,得到結果。任務規劃的過程,就是對任務有向圖模型做拓撲排序的過程。
任務規劃得到各個步驟的有序序列後,由解釋器依次解釋執行各個步驟中的DML方法腳本,完成整個數據挖掘任務的處理。
在默認控制下,這個過程從起始結點開始,任務模型中所有步驟結點都將被訪問,結點中的方法逐步獲得解釋執行,最後得到數據挖掘結果。
3、數據挖掘算法的動態載入 算法是數據挖掘的核心。有效集成各種高效率的數據挖掘算法,是成功實施數據挖掘任務的關鍵。MSMiner系統中各種數據挖掘核心算法以動態程式庫DLL的形式實現,並在元數據中登記註冊。採用DLL方式實現各數據挖掘算法有兩個主要的優點:以DLL可執行代碼實現的算法在系統運行時動態載入,保證了算法的執行效率。 DLL算法庫獨立於MSMiner系統而存在,便於維護、升級和擴展,同時具有良好的通用性。
MSMiner系統提供專門的算法管理模組來查看和維護各種算法的有關信息。為了提供儘可能全面的數據挖掘解決方案,我們將集成適用於不同任務的多種數據挖掘算法,但對於有些特定的數據挖掘任務,系統提供的算法將可能難以勝任,此時用戶往往希望能夠加入自己的處理方案。因此,系統提供一個開放的、靈活通用的接口,使用戶能夠加入新的算法。用戶可以按照這一規範,開發自己的算法DLL,並在算法管理模組中進行註冊,使數據挖掘任務能夠使用新的算法,從而實現算法庫的可擴展性,使整個數據挖掘系統具有很強的靈活性和通用性。
五、豐富的數據挖掘算法 關聯規則 關聯規則是形式如下的一種蘊含或規則,其中X和Y分別是兩個物品集合,這兩個物品集中沒有共同的物品。用於關聯規則發現的對象主要是事務型資料庫(transactional databases),其中針對的套用則是售貨數據,也稱貨籃數據。一個事務一般由如下幾個部分組成:事務處理時間,一組顧客購買的物品(items),有時也有顧客標識號(如信用卡號)。
由於條形碼技術的發展,零售部門可以利用前端收款機收集存儲大量的售貨數據。因此,如果對這些歷史事務數據進行分析,則可對顧客的購買行為提供極有價值的信息。例如,可以幫助如何擺放貨架上的商品(如把顧客經常同時買的商品放在一起),幫助如何規劃市場(怎樣相互搭配進貨)。由此可見,從事務數據中發現關聯規則,對於改進零售業等商業活動的決策非常重要。
我們對電信行業的客戶電話記錄事實表作為測試數據,利用關聯規則進行分析,得到較為有意義的規則。
決策樹 決策樹是一種非常有效的機器學習分類算法。決策樹方法的起源是概念學習系統CLS,然後發展到ID3方法而為高潮,最後又演化為能處理連續屬性的C5.0。有名的決策樹方法還有CART和Assistant。 決策樹學習著眼於從一組無次序、無規則的事例中推理出決策樹表示形式的分類規則。它採用自頂向下的遞歸方式,在決策樹的內部結點進行屬性值的比較並根據不同的屬性值判斷從該結點向下的分支,在決策樹的葉結點得到結論。所以從根到葉結點的一條路徑就對應著一條合取規則,整棵決策樹就對應著一組析取表達式規則。基於決策樹的學習算法的一個最大的優點就是它在學習過程中不需要使用者了解很多背景知識(這也同時是它最大的缺點),只要訓練例子能夠用屬性-結論式的方式表達出來,就能使用該算法來學習。
考慮到遞歸算法對大數據量而言,系統的開銷較大,我們設計了非遞歸且能處理連續屬性的決策樹算法。同時,為了能使用戶能清楚直觀的理解產生的決策規則樹,我們設計了m-叉樹的畫法,這兩個算法在廣東地稅稽查案例套用中,收到良好效果。
粗糙集 波蘭的Z.Pawlak針對G.Frege的邊界線區域思想提出了Rough集。他把那些無法確認的個體都歸屬於邊界線區域,而這種邊界線區域被定義為上近似集和下近似集之差集。由於它有確定的數學公式描述,所以含糊元素數目是可以計算的,即在真假二值之間的含糊度是可以計算的。 我們對粗糙集中的一種重要表示方法-差別矩陣進行了拓廣,提出了廣義差別矩陣的表示和可變屬性度量的概念。可變屬性度量用於屬性選取的啟發式評價函式時較好地克服了粗糙集中的屬性重要度方法的一個限制:由於只考慮異類對象之間的差別致使偏向於選取不同值個數多的屬性。實驗結果表明,在採用粗糙集技術的分類規則發現方法中使用可變屬性度量方法與屬性重要度方法相比,能得到更高的預測準確度和更簡潔的規則。
統計分析 本課題中,我們主要研究多個的統計模型的綜合。通過對不同的統計模型的比較和組合,可以得到更為理想的結果,同時,我們的系統中包括了常用的統計模型,套用範圍方面受到的限制要少一些。我們包括的統計模型有:線性回歸模型、非線性回歸模型、確定型時間序列模型、隨機型時間序列模型、自回歸-移動平均模型(ARMA)、相關分析。
神經網路 神經網路是指一類新的計算模型,它是模仿人腦神經網路的結構和某些工作機制而建立的一種計算模型。這種計算模型的特點是,利用大量的簡單計算單元(即神經元)連成網路,來實現大規模並行計算。神經網路的工作機理是通過學習,改變神經元之間的連線強度。常用的神經計算模型有多層感知機、反傳網路、自適應映射網路等。在神經網路中,由權重和網路的拓撲結構決定了它所能識別的模式類型。一個學習算法是用於發現給定任務的權值的程式。最流行的神經網路學習算法是BP算法(Back-propagation algorithm)。
支持向量機 支持向量機(SVM)是一種建立在統計學習理論基礎上的機器學習方法。 通過學習算法,SVM可以自動尋找那些對分類有較好區分能力的支持向量,由此構造出的分類器可以最大化類與類的間隔,因而有較好的推廣性能和較高的分類準確率。SVM主要思想是針對兩類分類問題,在高維空間中尋找一個超平面作為兩類的分割,以保證最小的分類錯誤率。而且SVM一個重要的優點是可以處理線性不可分的情況。用SVM實現分類,首先要從原始空間中抽取特徵,將原始空間中的樣本映射為高維特徵空間中的一個向量,以解決原始空間中線性不可分的問題。
模糊聚類 模糊聚類通常使用基於傳遞閉包的方法, 該方法是否失真最小在理論上缺乏保障,為解決這一問題, 我們提出了基於攝動的模糊聚類方法,簡稱FCMBP模糊聚類。FCMBP模糊聚類比傳遞閉包法失真小, 而且在基於模糊相似陣的模糊聚類方法中, FCMBP方法是失真最小的。FCMBP方法不僅失真最小, 而且有時與傳遞閉包法的聚類結果還有本質差異。FCMBP方法比傳遞閉包法計算複雜, 但聚類層次豐富。基於範例的推理(Case-Based Reasoning 簡稱CBR) 為了解決一個新問題(目標範例Target Case),CBR進行回憶, 從記憶或範例庫(Case Base)中找到一個與新問題相同或相似的源範例(Source Case), 然後把該範例的有關信息和知識進行修改就復用到新問題的求解之中,得到問題的解答。因此,這種由源範例來指導目標範例求解的方法,具有簡化知識獲取,通過直接復用提高求解效率,求解質量較高,適用於非計算推導的優點。考慮到存儲和檢索(空間和時間)的開銷,CBR對海量數據是不適合的。因此,我們研究了利用Lattice、Moment理論對原始數據進行壓縮、降維,改變消極學習中推遲處理的策略,積極地對數據進行綜合總結,形成不同層次的不同粒度的模型。在測試的階段,用這些模型代替原始的數據/實例,提高分類和預測的性能。貝葉斯預測 貝葉斯網路是用來表示變數集合連線機率的圖形模式,它提供了一種自然的表示因果信息的方法,用來發現數據間的潛在關係。在這個網路中,用節點表示變數,有向邊表示變數間的依賴關係。在數據挖掘中具有以下優點:可以處理不完整和帶有噪聲的數據集。它用機率測度的權重來描述數據間的相關性,從而解決了數據間的不一致性,甚至是相互獨立的問題;用圖形的方法描述數據間的相互關係,語義清晰、可理解性強,這有助於利用數據間的因果關係進行預測分析。
可視化技術 信息可視化和數據挖掘是兩個可互為補充利用的相關研究領域。當信息可視化作為數據挖掘的技術之一時,同其它技術相比,它有一個獨特之處:能極大地發揮用戶的主動參預性。由於對數據進行了可視化,用戶願意進行探索(Explore),在探索過程中有可能發現意外的知識。
我們提出了一種新穎的基於近鄰方法的高維數據可視化聚類方法,並實現了一個近鄰可視化聚類發現系統VisNN。此外,我們還研究了一種新穎的k-叉樹的畫法,該算法可以高效地畫出任意的k-叉樹。在具體的套用系統中,這棵樹還是三維的,可以拖近拉遠的。
六、結束語 多策略數據挖掘平台MSMiner能有效支持數據管理、數據挖掘、智慧型決策等。系統的基本特點是:(1) 基於數據倉庫和新型的元數據管理,按照主題創建數據倉庫,並通過元數據進行管理和維護;(2) 數據的抽取、轉換、裝載等預處理方便;(3) 支持多維數據線上分析處理(OLAP),(4) 提供決策樹、支持向量機、粗糙集、模糊聚類、基於範例推理、統計方法、神經計算等多種數據挖掘算法,支持特徵抽取、分類、聚類、預測、關聯規則發現、統計分析等數據挖掘功能,並支持高層次的決策分析功能;(5) 挖掘平台利用擴展了數據倉庫某些功能和特徵的資料庫管理系統(如SQL Server, Sybase, Oracle, Imformix)作後台,可以與現有的系統無縫的連線,也從關係型資料庫、文本、全球資訊網等外部數據源中抽取數據費用低,周期短。(6) 實現了可視化的任務編輯環境,以及功能強大的任務處理引擎,能夠快捷有效地實現各種數據轉換和數據挖掘任務。(7) 可擴展性好。轉換規則和挖掘算法是封裝的、模組化的,系統提供了一個開放的、靈活通用的接口,使用戶能夠加入新的規則和算法。(8) 容易進行二次開發。將MSMiner與具體的領域相結合,構造實際的套用系統是方便的、快速的、靈活的、高效的,能夠有效地進行驗證性發現和探索性發現。
我們將通過實際推廣套用,完善面向數據倉庫的數據挖掘工具(MSMiner)系統功能,提高系統效率,使之成為具有自主著作權的軟體產品。