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