引言
無論是商業企業、科研機構或者政府部門,在過去若干年的時間里都積累了海量的、以不同形式存儲的數據資料。但當面對越來越多迅速膨脹的超級數據庫時,人們卻無從著手去理解數據中包含的信息,更難以獲得有價值的知識!原有的決策支持系統(DSS)和領導執行系統(EIS)已不能滿足需要。數據挖掘概念的提出,使人們有能力克服這些困難,去發掘出蘊藏在數據中的信息和知識。數據挖掘是目前國際上數據庫和信息決策領域的最前沿研究方向之一,引起了學術界和工業界的廣泛關注。一些國際上高級別的工業研究實驗室,如IBM Almaden和GTE,和眾多的學術單位,如UC Berkeley,都在這個領域開展了各種各樣的研究計劃。
但人們對數據挖掘還存在認識上的偏差。比如對數據挖掘和知識發現、數據挖掘與數據倉庫等的關系存在一定觀點上的分歧。本文總結了目前學術界和工業界的認識和觀點,并進行了比較和總結。本文還就與數據挖掘有關的挖掘過程、數據挖掘在商業中的實現等方面闡述了自己的觀點。
1. 數據挖掘的概念
本文從探尋知識發現(Knowledge Discovery in Database)和數據挖掘的關系入手理解數據挖掘。
數據挖掘與知識發現是存在交叉的兩個概念。對這兩個概念之間的關系,流行有兩種觀點:一種觀點認為:數據挖掘與知識發現是等同的概念,只不過在不同的領域叫法不同而已。在科研領域,知識發現使用較多,在工程應用領域多稱之為數據挖掘。另一種觀點認為數據挖掘是知識發現的一個階段,而且是核心階段。該觀點給出的定義是:知識發現,就是從大型數據庫中的數據中提取人們感興趣的知識。這些知識是隱含的、事先未知的、潛在有用的信息。本文更傾向于第二種觀點。本文從知識產生的過程這一角度看待知識發現和數據挖掘,得出以下結論:
(1)知識發現是把低級別的數據轉化為高級別數據的整個過程。所謂高級別數據,是具有特殊含義的數據。在工程應用中,根據不同的使用階段和價值,又細分為信息和知識。信息可被理解為有特殊意義的數據;知識則表達為在特定應用領域,通過使用有價值的信息而在人腦中形成的、具有概括和總結特性的認識。知識可表示為概念(concepts),規則(rules),規律(regulations),模式(patterns)等形式。從知識發現的整個過程來看(圖1),數據挖掘是知識發現實現從數據到信息和知識轉變的關鍵一步。數據挖掘是從大量數據中提取可信的、新穎的、有效的模式的高級處理過程。
模式:是一個用語言L來表示的一個表達式E,它可用來描述數據集F中數據的特性,E所描述的數據是集合的一個子集 。E作為一個模式,要求比列舉數據子集中所有元素的描述方法簡單。
模式是知識發現中的知識的一部分,它給出了數據的特性或數據之間的關系,是對數據所包含信息的更抽象描述。模式的表示方式很多,有時或者經常無法用顯式的方法進行描述,比如用神經網絡挖掘出來的模式是通過連接權值體現出來的。知識發現的最后一步—結果表達和解釋負責將挖掘的模式用更容易理解的方式,如圖形、自然語言和可視化技術等展現在用戶面前。
(2)如果把知識發現理解為一個過程或系統,數據挖掘是這一過程或系統的一個可自動執行的工具。挖掘算法是數據挖掘重要的組成部分。為解決特定的商業問題,一種或多種算法需要被選擇、編譯,在適于挖掘的數據環境下實施挖掘任務。從圖1看出,知識發現是需要人工參與的多環節的過程。
除以上談到的知識發現與數據挖掘的區別外,澄清存在于OLAP和數據挖掘之間認識上的混淆會有助于對數據挖掘的理解:
Gartner Group等組織把OLAP視為數據挖掘的一部分。數據挖掘包含數據描述和數據建模。OLAP系統可以提供數據倉庫中數據的一般描述。但更多的認識把OLAP和數據挖掘當作互不相交的兩部分。OLAP是數據匯總/聚集工具,它幫助簡化數據分析。OLAP的功能基本上是用戶參與的匯總和比較(上鉆、下鉆、旋轉、切片、和其他操作);數據挖掘自動發現隱藏在大量數據中的模式等有價值的知識。圖2從數據、信息和知識的角度形象地描述出OLAP和數據挖掘的邏輯關系。
另一點,OLAP大多是限于數據倉庫中的數據。數據挖掘既可以分析現存的、比數據倉庫提供的匯總數據粒度更細的數據,也可以分析事務的、文本的、空間的和多媒體數據。
2. 數據挖掘分類和知識發現過程
2.1. 數據挖掘分類
數據挖掘涉及的學科領域和方法很多,有人工智能、數據統計、可視化、并行計算等。數據挖掘有多種分類方法。
2.1.1. 根據挖掘任務
可分為分類模型發現、聚類、關聯規則發現、序列分析、偏差分析、數據可視化等。
(1) 分類(Classification)
其旨在生成一個分類函數或分類模型,該模型能把數據庫中的數據項映射到給定類別中的某一個。既可以用此模型分析已有的數據,也可以用它來預測未來的數據。
(2) 聚集(Clustering)
聚集是對記錄分組,把相似的記錄在一個聚集里。聚集和分類的區別是聚集不依賴于預先定義好的類,不需要訓練集。
(3) 數據可視化(Description and Visualization)
數據可視化嚴格地講不是一個單獨的數據挖掘任務,它被用來支持其他挖掘任務。可視化是采用圖形、圖表等易于理解的方式表達數據挖掘結果。
(4) 關聯規則(Affinity grouping or association rules)
關聯規則是尋找數據庫中值的相關性,主要是尋找在同一個事件中出現的不同項的相關性,比如在一次購買活動中所買不同商品的相關性。
(5) 序列分析(Sequence Analysis)
序列模式分析同樣也是試圖找出數據之間的聯系。但它的側重點在于分析數據之間前后(因果)關系,因此對數據往往要求引入時間屬性。序列模式分析非常適于尋找事物的發生趨勢或重復性模式。
(6) 偏差分析(Deviation Analysis)
是用來發現與正常情況不同的異常和變化,并進一步分析這種變化是否是有意的詐騙行為,還是正常的變化。如果是異常行為,則提示預防措施;如果是正常的變化,那么就需要更新數據庫記錄。
2.1.2. 根據挖掘對象
可分為關系數據庫、面向對象數據庫、空間數據庫、時態數據庫、文本數據源、多媒體數據庫、異質數據庫以及環球網Web。
2.1.3. 根據挖掘方法
可粗略地分為:機器學習方法、統計方法、神經網絡方法、決策樹、可視化、最近鄰技術等。在機器學習中,可細分為歸納學習方法(決策樹、規則歸納等)、基于范例學習、遺傳算法等;在統計方法中,可細分為:回歸分析(多元回歸、自回歸等)、判別分析(貝葉斯判別、費歇爾判別、非參數判別等)、聚類分析(系統聚類、動態聚類等)、探索性分析(主元分析法、相關分析法等)等。
2.2. 知識發現過程
數據挖掘包括商業需求、大量的數據和挖掘算法三部分。商業需求是真正的數據挖掘前期要明確的工作。挖掘算法是目前研究的熱點之一,主要圍繞采用新的挖掘算法解決特定商業問題和對挖掘算法的改進上。由挖掘算法可形成挖掘工具。
知識發現過程可由三個主要階段組成:數據準備、挖掘操作、結果表達和解釋,知識發現是這三個階段的反復。如圖1所示。
2.2.1. 數據準備
數據集成將多文件或多數據庫運行環境中的數據進行合并處理,解決語義模糊性、處理數據中的遺漏和清洗臟數據等。數據選擇確定需要分析的數據集合,提高數據挖掘的質量。預處理是為了克服目前數據挖掘工具的局限性。
2.2.2. 數據挖掘
(1)先決定如何產生假設。是讓數據挖掘系統為用戶產生假設,還是用戶自己參照數據庫可能包含的知識提出假設。前一種稱為發現型(discovery-driven)的數據挖掘,后一種稱為驗證型(verification-driven)的數據挖掘。
(2)選擇合適的工具
(3)數據挖掘操作
(4)證實發現的知識
2.2.3. 結果表述和解釋
把提取的信息進行分析,通過決策支持工具提交給決策者。這一階段不僅把結果表達出來,而且知識發現系統會采用解釋和推理機制,將這些知識直接提供給決策者,也可以提供給領域專家,修正已有知識庫供系統共享。如果不滿意,需要重復以上知識發現的過程。
3. 數據挖掘的研究熱點
目前,數據挖掘的研究熱點圍繞挖掘算法展開。數據挖掘是綜合了機器學習、人工智能、數據統計等學科的研究領域。隨著數據挖掘工具在實際應用中的迅速增長,相關學科成熟的算法實現不斷地加入到數據挖掘中來;挖掘算法的研究還包括對現有挖掘算法的優化和改進,比如使用全局搜索算法優化神經網絡學習過程。除此以外,數據挖掘還有以下研究熱點:
3.1.數據挖掘原語
我們把數據挖掘原語可以理解為有效輔助數據挖掘實施知識發現功能的思想和做法,是知識發現的輔助工具。數據挖掘原語的研究是為了支持有效的知識發現,為了讓用戶更加易于理解挖掘出來的知識。用戶能夠通過數據挖掘原語與數據挖掘系統通信,從不同的角度和深度審查發現結果,并指導挖掘過程。這組原語包括數據庫說明的部分或用戶感興趣的數據集、要挖掘的知識類型、用于指導挖掘過程的背景知識、模式評估以及度量和如何顯示所發現的知識等等。
3.2.數據挖掘語言及標準
數據挖掘行業是高度分散的,公司和研究機構獨立開發各自的數據挖掘系統和平臺,沒有形成開放性的標準;同時數據挖掘本身是一門多學科綜合跨度非常大的技術,這些造成了數據挖掘在通用性方面存在一系列問題 :①各種數據挖掘問題及挖掘方法基于不同的模型和技術,彼此互相孤立,聯系很少;②缺少簡明精確的問題描述方法,挖掘的語義通常是由實現方法決定的;③數據挖掘系統僅提供孤立的知識發現功能,難于嵌入大型應用;④數據挖掘引擎與數據庫系統是松散耦合的。數據挖掘語言和標準的開發有望解決上述問題。
目前,已實現的數據挖掘語言有DMQL、MSQL和MINE RULE等;數據挖掘語言標準有PMML(DMG:數據挖掘組織協會)和OLE DB for Data Mining(微軟)。
3.3.數據挖掘系統
知識發現是一個有機的整體,各個部分之間有著密切的關系。我們稱圍繞某一數據挖掘任務的知識發現過程為數據挖掘系統。應該說所有的算法是為某一個挖掘系統服務的。數據挖掘系統的研究是為了建立科學的系統結構,利于挖掘算法的重用、嵌入,利于算法與系統其他模塊有機結合。圖3是一個挖掘系統的原型結構。
3.4.基于數據倉庫的數據挖掘
把數據挖掘建立在數據倉庫之上,一方面能夠提高數據倉庫系統的決策支持能力,另一方面,由于數據倉庫完成了數據的清洗、ETL(抽取,轉換,裝載),數據挖掘面對的是經過初步處理的數據,更加有利于數據挖掘功能的發揮。這方面的研究集中在基于數據倉庫的數據挖掘系統結構的探討上。
3.5.OLAM
OLAM將OLAP和數據挖掘功能集成在一起,可以實現數據挖掘功能的聯機選擇,為用戶選擇所期望的數據挖掘功能、動態地改變數據挖掘任務提供了靈活性。OLAM和OLAP通過圖形用戶界面GUI接受用戶指令,對數據立方體Cube進行數據分析、挖掘。由于OLAM服務器可以執行如關聯、分類、預測、聚類、時序分析等多種數據挖掘任務,它通常由多個集成的數據挖掘模塊組成。
3.6.數據挖掘與具體應用的結合
數據挖掘目前在醫學、電信、零售業等多個應用領域均有成功的應用案例。隨著越來越多的業務需求被不斷明確,數據挖掘應用的領域和解決的問題會越來越廣泛;一些應用系統,如ERP、SCM、HR等系統也逐漸與數據挖掘集成起來,用以提高系統的決策支持能力。這方面的研究熱點包括數據挖掘與商業智能(BI)、CRM、WEB應用的結合。
4.總結
數據挖掘是當前計算機工業最熱門的研究領域之一。數據挖掘是一個不斷發展的、綜合交叉的學科。本文從知識的形態和知識產生的視角闡述了數據挖掘與知識發現、數據挖掘與OLAP的區別與聯系,本文還總結了數據挖掘的分類以及數據挖掘在知識發現過程中的地位與作用。最后,對當前數據挖掘領域的研究熱點進行了詳細的概括與總結。
來源:中國商業智能網