摘 要:要建立自己的決策支持系統(tǒng)就必然要應用數據倉庫、數據挖掘技術,企業(yè)應根據自身要求合理建立特定主題的數據倉庫,在此基礎上還要結合實際問題選擇相應的挖掘模型,從而得到最有價值的挖掘分析結果,以利于企業(yè)的經營發(fā)展。
關鍵詞:數據倉庫;數據挖掘;決策樹
0 引言
數據倉庫與數據挖掘是近年來剛剛興起并逐步發(fā)展起來的一門新興交叉學科,它把對數據的應用從低層次的簡單查詢,提升到從數據中挖掘知識,并提供決策支持。此門學科涉及到許多領域的知識,包括數據庫技術、人工智能技術、數理統(tǒng)計、可視化技術、并行計算、機器學習等,匯集了多門學科的知識并在綜合運用這些學科知識的基礎上產生出新的知識和方法。此門學科的應用主要在于構建企業(yè)的決策支持系統(tǒng),此系統(tǒng)正是目前幫助企業(yè)提高自身競爭力的重要手段。
在數據倉庫與數據挖掘學科中涉及了許多概念、設計方法及諸多挖掘算法,本文將就其中的一些內容結合SQL Server Analysis Service應用實例加以闡述與說明,以加深對理論的理解,并逐步掌握此門學科所提供的更多技術。
1 數據倉庫的規(guī)劃與設計
數據倉庫是一個面向主題的、集成的,時變的、非易失的數據集合,支持部門管理的決策過程,數據中的每一個數據單元在實踐上都是和某個時刻相關的。數據倉庫也被看作是某個組織的數據存儲庫,用于支持戰(zhàn)略決策。數據倉庫的功能是以集成的方式存儲整個組織的歷史數據,這些數據會影響到這個組織和企業(yè)的多個方面。數據倉庫的特點是:數據常常來自于多個數據源;其存放模式一致;駐留在單個站點;數據已經清理、變換、集成與裝載并定期刷新;數據量巨大。
數據倉庫構建方法同一般數據庫構建方法最大的不同在于數據倉庫的需求分析是從用戶的決策問題入手,其目的是直接針對問題的主題,而一般數據庫系統(tǒng)是以事務處理為出發(fā)點。下面結合具體實例說明數據倉庫的設計步驟。
1.1 確定用戶需求,為數據倉庫中存儲的數據建立模型
通過數據模型得到企業(yè)完整而清晰的描述信息。數據模型是面向主題建立的,同時又為多個面向應用的數據源的集成提供了統(tǒng)一的標準。
例如:FoodMart是一家大型的連鎖店,在美國、墨西哥和加拿大有銷售業(yè)務。市場部想要按產品和顧客分析1998年進行的所有銷售業(yè)務數據。該公司現在急需進行銷售方面的數據分析,以找到一些潛在規(guī)律來促進銷售業(yè)務的進一步拓展從而擴大銷售渠道、加大銷售量、提高銷售利潤、增強公司競爭力。該連鎖店銷售的產品總體上被分為若干個大類,細節(jié)上分為若干個小類;客戶廣泛分布于不同地區(qū)、不同國家。該連鎖店在銷售信息管理系統(tǒng)中長期保存并不斷更新著產品、產品分類、商店、銷售、促銷、客戶等記錄表,依次為:產品表(PRODUCT)、產品分類表(PRODUCT_CLASS)、商店表(STOR)、1998年銷售記錄表(Sales_fact_1998)、促銷表(PROMOTION)、客戶表(CUSTOMER)等。
FoodMart連鎖店保存并不斷更新的數據庫是事務處理型數據庫,其結構是面向應用而設計的。要進行數據挖掘就必須建立面向主題的數據倉庫,為了進行1998年銷售方面的數據挖掘,要設計的數據倉庫必須以1998年銷售數據為主題,輔之以日期、產品、產品分類、商店、促銷、客戶等其它數據信息。具體來講,即創(chuàng)建以1998年銷售為主題的數據倉庫,采用星型/雪花模式構建事實表。
1.2 分析數據源,完成數據倉庫的設計工作
基于用戶的需求,著重于1998年銷售主題,開發(fā)數據倉庫中數據的物理存儲結構,即設計多維數據結構的事實表和維表。1998年銷售事實表包含5個維表和3個度量。這5個維表分別是日期、客戶、產品、促銷和商店維表,3個度量分別為銷售金額、倉儲成本、銷售單位??紤]到將來要根據顧客的年收入情況進行顧客會員卡種類方面的數據分析,另外增加了年收入維度(yearly income,取自于customer表)。為便于分析挖掘出有關時間因素的信息,特增加了時間表time。
1.3 生成物理的數據倉庫,并從各種源系統(tǒng)中獲取數據裝入數據倉庫中 在SQL Server Analysis Service manager中建立物理的數據倉庫可以通過ODBC數據源方式指定原有數據庫,再通過Microsoft OLE DB Provider for ODBC進行連接的方式完成原有數據庫到數據倉庫的映射。運用SQL Server Analysis Service manager提供的功能建立數據倉庫的多維數據集,指定此數據倉庫的度量值與維度,至此數據倉庫建立完畢。其中緯度與度量值如圖2所示。
2 數據挖掘
數據挖掘(Data Mining)又稱為數據庫中的知識發(fā)現(Knowledge Discovery in Database,KDD),就是從大量數據中獲取有效的、新穎的、潛在有用的、最終可理解的模式的非平凡過程。簡言之,數據挖掘就是從海量數據中提取隱含在其中的有用信息和知識的過程。數據挖掘可以幫助企業(yè)對數據進行微觀、中觀乃至宏觀的統(tǒng)計、分析、綜合和推理,從而利用已有數據預測未來,幫助企業(yè)贏得競爭優(yōu)勢。數據挖掘的方法是建立在聯(lián)機分析處理(On Line Analytical Processing,OLAP)的環(huán)境基礎之上的。
整個數據挖掘過程主要可分幾個階段,依次為:問題定義、數據預處理、數據挖掘以及結果的解釋和評估。
2.1 問題定義
問題定義就是要清晰地定義出業(yè)務問題,確定數據挖掘的目的。對于FoodMart連鎖店來說,它的問題定義就是:FoodMart連鎖店的市場部想增加客戶滿意度和客戶保有率,于是實行了創(chuàng)造性的方法以達到這些目標。
其方法之一是對會員卡方案重新進行定義,以便更好地為客戶提供服務并且使所提供的服務能夠更加密切地滿足客戶的期望。
為了重新定義會員卡方案,市場部想分析當前銷售事務并找出客戶人口統(tǒng)計信息(婚姻狀況、年收入、在家子女數等等)和所申請卡之間的模式,然后根據這些信息和申請會員卡的客戶的特征重新定義會員卡。
2.2 數據預處理
最初為數據挖掘所準備的所有原始數據集通常都很大,它們當中存在許多臟數據。造成臟數據的原因主要源自于收集與傳送過程的錯誤、濫用縮寫詞以及不同的慣用語、重復記錄、數據輸入錯誤、拼寫變化、不同的計量單位、過時的編碼、集成時的空值與丟失值以及不同的數據源等。臟數據主要有以下一些表現形式:
(1)數據不完整。表現為:感興趣的屬性缺值;缺乏感興趣的屬性;僅包含聚集數據等。例如:CUSTOMER表中的LNAME=“”
(2)數據噪聲。即包含錯誤的屬性值或存在偏離期望的孤立點值。一個屬性的值與事實完全不吻合的情況,例如:CUSTOMER表中的在家子女數num_children_at_home=200
(3)數據不一致。如果在臟數據上進行數據挖掘將很可能導致錯誤的判斷甚至完全相反的分析結果,也就是說,沒有高質量的數據就沒有高質量的挖掘結果。由于決策質量依賴于數據質量,因此需要在數據挖掘之前進行數據預處理,以保證數據倉庫內包含的是高質量的、一致的數據。所謂數據預處理其實就是對數據倉庫中的數據進行提取、清理、轉換,從而保證數據的高質量,具體來講包括以下幾種操作:
(1)數據清理(data cleaning)。
(2)數據集成(data integration)。將多個數據源中的數據合并存放在一個統(tǒng)一的數據存儲(如數據倉庫、數據庫等)中,數據源可以是多個數據庫、數據立方體或一般的數據文件。
(3)數據變換(data transformation)。即數據的標準化與聚集,將數據變換成適于挖掘的形式。例如:屬性數據可以規(guī)范化,使得它們可以落入某個小區(qū)間。
(4)數據歸約(data reduction)。
2.3 選擇挖掘模型,進行數據挖掘。
參考文獻
[1][美] MEHMED KANTARDZIC.數據挖掘——概念、模型、方法和算法[M].北京:清華大學出版社,2013.
[2]李才華.OLAP技術在生產評價中的應用[J].計算機技術與自動化,2009,(4).
[3]張美虎.OLAP技術在BI系統(tǒng)中的應用[J].寧波職業(yè)技術學院學報,2016,(5).
[4]熊擁軍,陳春穎.基于DW和OLAP技術的數字圖書館資源訪問分析[J].現代情報,2009,(11)
作者簡介:
蔡鑫輝,男(1996年12月——),浙江省嘉興市桐鄉(xiāng)市人,西北民族大學本科學生,研究方向為數據挖掘,軟件工程方法學等。