摘要:隨著數(shù)據(jù)挖掘技術(shù)的研究與開發(fā),數(shù)據(jù)挖掘技術(shù)目前主要應用于智能商務領(lǐng)域,在石化領(lǐng)域中如何展開數(shù)據(jù)挖掘開發(fā)應用還有待研究。基于Oracle Data Mining(ODB)數(shù)據(jù)挖掘工具,結(jié)合實例介紹了在石化企業(yè)中應用數(shù)據(jù)挖掘的系統(tǒng)方法和基本過程。
關(guān)鍵詞:數(shù)據(jù)挖掘;Oracle Data Mining(ODB)
Abstract: With the development of data mining technology, data mining technology is mainly used in the area of Business Intelligence. Applying the data mining technology into the petrochemical enterprise is still a problem needed to be solved. By taking some examples in Oracle Data Mining, the paper introduces its applications and directions in the petrochemical enterprise.
Key words: Data mining; Oracle Data Mining(ODB)
1 引言
隨著信息技術(shù)的飛速發(fā)展,一般的石化企業(yè)的信息化系統(tǒng)也都逐漸建立起來。信息數(shù)據(jù)不斷龐大,但是這些信息只是存儲在電腦中,不能形成具有實際價值的信息。因此,如何從有效的信息中挖掘出對于企業(yè)發(fā)展具有指導價值的信息就成為數(shù)據(jù)挖掘應用所要進行研究的主要方向。特別是在故障診斷當中,根據(jù)對各個監(jiān)控點的歷史狀態(tài)數(shù)據(jù)進行提取、整理和轉(zhuǎn)換之后,有效地進行挖掘就可以產(chǎn)生出對生產(chǎn)中故障診斷和排除具有指導意義的知識。本文將基于Oracle公司的數(shù)據(jù)挖掘產(chǎn)品,介紹其基本體系結(jié)構(gòu)以及利用Oracle 的Oracle Data Mining開發(fā)數(shù)據(jù)挖掘應用系統(tǒng)的基本方法和過程,并且以某石油企業(yè)的決策支持系統(tǒng)的開發(fā)為背景提供一個開發(fā)實例。
2 Oracle Data Mining體系結(jié)構(gòu)和開發(fā)工具
2.1 數(shù)據(jù)挖掘介紹
數(shù)據(jù)挖掘(Data Mining)是近年來隨著人工智能和數(shù)據(jù)庫技術(shù)的發(fā)展而出現(xiàn)的一門新興技術(shù)。它是多學科綜合的產(chǎn)物,歷史雖然較短,但從20世紀90年代以來,它的發(fā)展速度非常迅速。數(shù)據(jù)挖掘能從龐雜的信息中提取有用的數(shù)據(jù),通過公正客觀的統(tǒng)計分析,快速而且正確地得知企業(yè)經(jīng)營信息,找出企業(yè)運行模式,準確掌握未來的經(jīng)營動態(tài)。可以把數(shù)據(jù)挖掘定義為:一個利用各種分析工具在海量數(shù)據(jù)中發(fā)現(xiàn)模型和數(shù)據(jù)之間關(guān)系的過程,這些模型和關(guān)系可以被企業(yè)用來分析風險、進行預測。
2.2 Oracle DataMining體系結(jié)構(gòu)
Oracle DataMining數(shù)據(jù)挖掘模塊在Oracle9i中是一個可選模塊,是以O(shè)racle9i關(guān)系型數(shù)據(jù)庫為基礎(chǔ)并且集成在Oracle9i中的數(shù)據(jù)挖掘開發(fā)工具。具有針對Oracle關(guān)系表以指定的挖掘模式進行數(shù)據(jù)挖掘的功能。Oracle DataMining體系結(jié)構(gòu)如圖1所示。
圖1 Oracle DataMining軟件系統(tǒng)體系結(jié)構(gòu)圖
Oracle9i DataMining API是Oracle9i DataMining(ODM)的一個組成部分,它允許用戶通過使用Java程序代碼調(diào)用來進行軟件開發(fā)。ODM API針對標準Java數(shù)據(jù)挖掘(JDM)提出的概念與方法進行開發(fā)設(shè)計。JDM符合Sun Microsystem的Java通訊處理過程作為Java請求規(guī)范(JSR-73)。
數(shù)據(jù)挖掘服務器(DMS)是集成在Oracle9i數(shù)據(jù)庫中的數(shù)據(jù)挖掘服務器功能模塊,因此可以與RDBMS的實用性和適應性相結(jié)合。DMS同時還提供一個原數(shù)據(jù)(metadata)庫,其中包括了挖掘的輸入和挖掘結(jié)果,以及這些數(shù)據(jù)存取的名字空間。
通過對DMS的設(shè)定,可以根據(jù)用戶的需要提供不同的挖掘模式,如聚類分析、分類、關(guān)聯(lián)規(guī)則分析、屬性權(quán)重模型分析等。同時也可以對各種挖掘模式所使用的算法進行定義,如在聚類分析中可以使用O-cluster、K-means算法。
3 開發(fā)實例
在本開發(fā)實例中,數(shù)據(jù)挖掘模塊是作為某石油天然氣公司決策支持系統(tǒng)中的一個模塊,主要應用于生產(chǎn)設(shè)備的生產(chǎn)預警和故障分析診斷,因此在開發(fā)中主要使用了ODM中的關(guān)聯(lián)規(guī)則分析和聚類分析挖掘模式。在此主要說明關(guān)聯(lián)規(guī)則部分的開發(fā)過程。
石化企業(yè)的生產(chǎn)過程是一個流程,因此同一生產(chǎn)設(shè)備中的元件之間和不同的生產(chǎn)設(shè)備的元件之間都會產(chǎn)生相互的影響。關(guān)聯(lián)規(guī)則可以通過對不同的元件的狀態(tài)數(shù)據(jù)進行挖掘,發(fā)現(xiàn)出不同元件之間的相互影響的關(guān)系,從而對設(shè)備的故障預警和診斷提出指導意義的信息。
本例中數(shù)據(jù)挖掘的過程是以B/S模式進行開發(fā)的,使用Jsp與JavaBean相結(jié)合的技術(shù)開發(fā)web應用。通過使用Jsp技術(shù)與JavaBean對ODM API進行調(diào)用,實現(xiàn)邏輯層和表示層。在Jsp頁面中設(shè)定數(shù)據(jù)挖掘的參數(shù),如數(shù)據(jù)提取的路徑、數(shù)據(jù)挖掘模式及所需的算法、挖掘設(shè)定閥值等;根據(jù)所設(shè)定的參數(shù),通過JavaBean在Oracle關(guān)系型數(shù)據(jù)庫中產(chǎn)生挖掘所需的關(guān)系表,并通過JavaBean訪問ODM API進行挖掘運算,同時使用JavaBean提取出挖掘結(jié)果結(jié)合Jsp頁面技術(shù)進行表示。整個數(shù)據(jù)挖掘體系結(jié)構(gòu)如圖2所示。
圖2 Oracle DataMining開發(fā)體系
數(shù)據(jù)挖掘模塊的開發(fā)過程主要分為以下幾個部分。
3.1 數(shù)據(jù)提取
在開發(fā)數(shù)據(jù)挖掘模塊之前,客戶方已經(jīng)實施了一套infoplus實時數(shù)據(jù)庫系統(tǒng)對生產(chǎn)設(shè)備的監(jiān)控點的狀態(tài)進行監(jiān)控并把記錄保存在數(shù)據(jù)庫中,因此在開發(fā)數(shù)據(jù)挖掘模塊的時候根據(jù)需要通過該軟件提供的JDBC-ODBC接口從實時數(shù)據(jù)庫的歷史記錄中提取出所需的數(shù)據(jù)。
3.2 數(shù)據(jù)清理
存在不完整的、含噪聲的和不一致的數(shù)據(jù)是大型的、現(xiàn)實世界數(shù)據(jù)庫或者數(shù)據(jù)倉庫的共同特點。數(shù)據(jù)清理過程就是通過填寫空缺的值,平滑噪聲數(shù)據(jù),識別、刪除孤立點,并解決不一致的數(shù)據(jù)。
在本開發(fā)實例中主要是針對從實時數(shù)據(jù)庫中提取出的數(shù)據(jù)進行清理,刪除可能是人為因素引起的設(shè)備的狀態(tài)不一致的數(shù)據(jù)。在開發(fā)的過程中,根據(jù)測控點的形態(tài)的不同采取不同的清理方法。針對數(shù)字量點(如電磁閥門的開關(guān)狀態(tài))根據(jù)該點的記錄狀態(tài)是否可用來進行過濾。針對模擬量(如溫度儀表測控數(shù)據(jù)),對樣本數(shù)據(jù)的分布狀態(tài)進行分析,根據(jù)樣本數(shù)據(jù)的分布狀態(tài)以置信度為95%的置信區(qū)間進行分析,計算出最大值σmax和最小值σmin,并且根據(jù)樣本數(shù)據(jù)點之間的增量(或者遞減)關(guān)系計算出最大的增量斜率的絕對值kmax。從而根據(jù)σmax、σmin和kmax對提取出的數(shù)據(jù)進行比較,過濾掉噪聲點和孤立點。
3.3 數(shù)據(jù)轉(zhuǎn)換
數(shù)據(jù)轉(zhuǎn)換是將數(shù)據(jù)轉(zhuǎn)換成適合于機器挖掘的格式。Oracle Data Mining關(guān)聯(lián)規(guī)則模塊所采用的算法是傳統(tǒng)的Apriori算法,是對Oracle關(guān)系數(shù)據(jù)庫中一張二進制表進行處理,在其中尋找出頻繁項集,并最終產(chǎn)生出滿足設(shè)定的閥值的強關(guān)聯(lián)規(guī)則。因此,在數(shù)據(jù)轉(zhuǎn)換的過程中,根據(jù)所取控制點數(shù)據(jù)與該點的極限值(最大值σmax、最小值σmin和最大的增量斜率的絕對值kmax)進行比較,從而以二進制數(shù)據(jù)顯示出該點在該時刻所處的狀態(tài),并把所有的經(jīng)過處理、轉(zhuǎn)換的控制點數(shù)據(jù)存儲在Oracle關(guān)系表中。
3.4 數(shù)據(jù)挖掘
在應用ODM的過程中,首先根據(jù)已經(jīng)進行的工作并對挖掘所需的模式、算法、數(shù)據(jù)規(guī)格等進行定義構(gòu)建數(shù)據(jù)挖掘模型。
(1) 連接數(shù)據(jù)挖掘服務器(DMS)。
(2) 對輸入的數(shù)據(jù)進行描述,主要是針對輸入數(shù)據(jù)的組織形式和規(guī)格進行描述。
(3) 對使用的數(shù)據(jù)挖掘模型和算法進行定義,用戶可以通過Jsp頁面與JavaBean連接ODM API,對相關(guān)的參數(shù)進行設(shè)定,如最小支持度、最小置信度以及最大關(guān)聯(lián)長度等。
(4) 構(gòu)建數(shù)據(jù)挖掘模型。
在模型構(gòu)建完成之后即可以把模型提交給數(shù)據(jù)挖掘服務器進行處理。在數(shù)據(jù)挖掘服務器進行處理的過程中,可以通過調(diào)用數(shù)據(jù)挖掘任務模塊來顯示當前DMS所處狀態(tài)。在DMS處理完成之后會顯示Success狀態(tài)。
此時,可以通過操作ODM API對運算出的結(jié)果進行提取,并以HTML的格式顯示在頁面中。同時可以針對客戶感興趣的挖掘結(jié)果進行存取,如圖3所示。
圖3 數(shù)據(jù)挖掘結(jié)果
4 結(jié)語
隨著信息技術(shù)的發(fā)展,企業(yè)得到海量信息的能力已經(jīng)越來越強,但對信息的分析、理解以及再利用的能力卻沒有實質(zhì)提高。通過使用數(shù)據(jù)挖掘可以在海量的信息中獲取潛在的知識,為企業(yè)處理海量信息,建立有效的決策支持系統(tǒng)提供了一種快捷的方法。本文基于Oracle Data Mining工具對石化企業(yè)中的數(shù)據(jù)挖掘應用進行了介紹,從而挖掘出對實際生產(chǎn)形成指導意義的信息。
參考文獻:
[1] Tom M.Mitchell著,曾華軍譯. 機器學習[M].北京:機械工業(yè)出版社, 2003.
[2] Jiawei Han, Micheline Kamber. 數(shù)據(jù)挖掘:概念與技術(shù)[M]. 機械工業(yè)出版社, 2001,8.
[3] Kevin Loneyd等. Oracle9i 參考手冊[M]. 機械工業(yè)出版社, 2003,7.
[4] W.H.Inmon. 數(shù)據(jù)倉庫[M]. 機械工業(yè)出版社,2000,5.
[5] 林杰斌,劉明德,陳湘.數(shù)據(jù)挖掘與OLAP理論與實務[M]. 清華大學出版社,2003,1.
[6] Oracle9i Data Mining Data Sheet, August 2001, http://otn.oracle.com.
[7] Oracle9i Data Mining Technical White Paper, December 2001, http://otn.oracle.com.
[8] Oracle9i Data Mining Concepts, Release 2(9.2), March 2002, http://otn.oracle.com.