張鈺莎,蔣盛益
(1.廣東外語外貿(mào)大學 南國商學院,廣東 廣州 510545;2.華南師范大學 計算機學院,廣東 廣州 510631;3.廣東外語外貿(mào)大學 思科信息學院,廣東 廣州 510420)
Clementine是一個可視化程度高、使用簡便的數(shù)據(jù)挖掘平臺,其操作與數(shù)據(jù)分析的一般流程相吻合[1].數(shù)據(jù)分析通常經(jīng)過數(shù)據(jù)加載、數(shù)據(jù)展示和預處理、模型建立、模型評價等環(huán)節(jié).Clementine形象地將這些環(huán)節(jié)中的功能表示成若干節(jié)點,將數(shù)據(jù)分析過程看成數(shù)據(jù)在各個節(jié)點之間的流動過程,并通過一個可視化的“數(shù)據(jù)流”直觀地表示整個數(shù)據(jù)分析過程.Clementine的操作目的就是要建立一條或多條數(shù)據(jù)流,通過不斷修改和調(diào)整流中的節(jié)點及參數(shù),執(zhí)行數(shù)據(jù)流,進而完成整個數(shù)據(jù)分析任務.由于Clementine操作簡單易懂,沒有編程的要求,使得管理人員、銷售人員等非技術(shù)人員都能進行數(shù)據(jù)分析,在實際領域中的應用越來越廣泛.但是,在使用過程中,我們發(fā)現(xiàn)部分節(jié)點預測性能不佳,甚至存在嚴重不足,本文通過實例分析離群點檢測、特征選擇及抽樣等節(jié)點存在的缺陷.
聚類、分類、關聯(lián)分析等數(shù)據(jù)挖掘方法重點在發(fā)現(xiàn)適用于大部分數(shù)據(jù)的常規(guī)模式,應用這些方法時,離群點(Outlier)通常作為噪音而被忽略以降低或消除離群數(shù)據(jù)的影響.但在安全管理、風險控制等應用領域,識別離群數(shù)據(jù)的模式比正常數(shù)據(jù)的模式更有價值.離群點檢測被廣泛用來發(fā)現(xiàn)稀有模式,或數(shù)據(jù)集中顯著不同于其他數(shù)據(jù)的對象[2-3].通過對離群數(shù)據(jù)的分析可以迅速、準確地甄別異常事件,如電信、保險、銀行、電子商務的欺詐檢測、災害氣象預報、商業(yè)營銷中極高或極低的客戶識別,醫(yī)學診斷研究中發(fā)現(xiàn)新的疾病對醫(yī)療方案或藥品所產(chǎn)生的異常反應,網(wǎng)絡安全中的入侵檢測、海關報關中的價格隱瞞、過程控制中的故障檢測與診斷等.
Clementine提供了一個離群點檢測節(jié)點Anomaly,在兩步聚類的基礎上實現(xiàn)離群點檢測.首先應用兩步聚類算法對數(shù)據(jù)集進行聚類,將數(shù)據(jù)集劃分為若干個簇(即對等組),然后對每個樣本,計算與其最近的簇間距離,并根據(jù)距離的大小計算其“離群指數(shù)”,來度量這個樣本到底有多么“離群”.可以通過設定離群指數(shù)的閾值,將那些大于閾值的樣本作為離群點樣本.Anomaly節(jié)點完成兩個任務:一是從數(shù)據(jù)集中確定哪些是離群樣本;二是對每個離群樣本,分析是哪些屬性導致該樣本成為離群樣本.
但兩步聚類算法是以k-means算法為基礎的,對離群數(shù)據(jù)較敏感,存在離群數(shù)據(jù)時聚類效果不太好,這導致Anomaly節(jié)點性能理論上存在缺陷.而一趟聚類算法[5]不易受離群數(shù)據(jù)的影響,因此基于一趟聚類算法的離群點檢測算法性能較Anomaly節(jié)點更佳[4-5].下面通過UCI[6]中幾個實例數(shù)據(jù)集加以驗證說明.
淋巴系造影術(shù)(Lymphography)數(shù)據(jù)集包含148 條記錄,每條記錄由18個離散屬性來描述,所有記錄被標識為1-4 的4個類別,類1與類4總計包括6條記錄,占整個記錄數(shù)的4.05%,利用離群點檢測方法來識別這些稀有記錄.使用一趟聚類算法和Clementine的兩步聚類方法將數(shù)據(jù)集劃分為8個簇后,各個簇包含的記錄類別分布如表1所示.從表1的類別分布數(shù)據(jù)可以算出兩種聚類方法得到的聚類熵分別為0、0.051.可見,一趟聚類算法較兩步聚類方法的聚類效果要好.
表1 劃分為8個簇后的類別分布
使用基于一趟聚類的離群點檢測方法[4],檢測到離群指數(shù)大的前5條記錄均為稀有記錄,第10條記錄為稀有記錄.而對應于Clementine的Anomaly節(jié)點,離群指數(shù)大的前7條記錄能檢測出5 條稀有記錄,前31 條記錄才能檢測出全部6條稀有記錄.在該數(shù)據(jù)集上,文獻[4]中方法性能明顯優(yōu)于Anomaly節(jié)點檢測方法.
乳腺癌數(shù)據(jù)集(Wisconsin breast cancer data set)包含483條記錄,其中惡性記錄39條,良性記錄444條,每條記錄由9個數(shù)值屬性來描述.惡性記錄占比8%,我們的目的是利用離群點檢測方法將惡性記錄從測試數(shù)據(jù)中識別出來.使用一趟聚類算法和Clementine的兩步聚類方法將數(shù)據(jù)集劃分為4個簇后,各個簇包含的記錄類別分布如表2所示.利用表2的結(jié)果可以求出兩種聚類方法得到的聚類熵分別為0.095、0.085;兩種聚類方法在該數(shù)據(jù)集上的聚類效果差異不大.
表2 劃分為4個簇后的類別分布
進一步,使用基于一趟聚類的離群點檢測方法[4],檢測到離群指數(shù)大的前27條記錄全部是惡性記錄,前44條記錄中包含38條惡性記錄,前59條記錄中包含全部39條惡性記錄.而Clementine的Anomaly節(jié)點檢測方法離群指數(shù)大的前51 條記錄全部是良性記錄,前100條記錄只包含8條惡性記錄,前242條記錄中才能包含全部39條惡性記錄.在該數(shù)據(jù)集上,文獻[4]中方法性能顯著優(yōu)于Anomaly節(jié)點檢測方法的性能.
KDDCUP99包含了約49萬條網(wǎng)絡訪問記錄,每條記錄由9個離散特征和32個數(shù)值特征來刻畫,并且包含一個標志位(正常記錄或攻擊記錄);因整個數(shù)據(jù)集太大,從中隨機抽取一個包含19 799條記錄的子集P,其中正常記錄數(shù)19 542條,攻擊記錄數(shù)257條,攻擊記錄占1.3%,可以看成離群點.使用一趟聚類算法和Clementine的兩步聚類方法將數(shù)據(jù)集P劃分為12個簇后,類別分布如表3所示.進一步可以算得,兩種聚類方法得到的聚類熵分別為0.003、0.013,一趟聚類算法的聚類結(jié)果較兩步聚類的結(jié)果好.
表3 劃分為12個簇后的類別分布
采用基于一趟聚類的離群點檢測方法[4]在數(shù)據(jù)集P上進行檢測,檢測結(jié)果如下:離群指數(shù)大的前58條記錄中包含1條正常記錄和57條攻擊記錄;前656條記錄中包含419條正常記錄和237條攻擊記錄.而Clementine的Anomaly節(jié)點對應離群指數(shù)大的前985條記錄中全部是正常記錄.在該數(shù)據(jù)集上,文獻[4]中方法性能顯著優(yōu)于Anomaly節(jié)點檢測方法性能.
在原始數(shù)據(jù)中通常包含無關的或冗余的特征,這使得許多分類和聚類等學習算法的效果并不理想.不相關或冗余特征的增加會減慢數(shù)據(jù)挖掘進程,從而需要花費大量的時間和精力來檢查模型究竟應該包含哪些字段或變量,也就是確定哪些特征來參與模型建立.那些和要預測的特征并沒有什么關系或者關系不大的特征就沒有必要參與建模過程,比如作為主鍵的“樣本號”字段.降低特征維度帶來的好處主要有兩點:一方面使許多數(shù)據(jù)挖掘算法效果更好、效率更高;另一方面使產(chǎn)生的模型更容易理解.特征選擇是減少維度最常用的方法,其目標是找出最小特征子集,使得數(shù)據(jù)類別的概率分布盡可能地接近使用所有特征得到的原分布[7-8].通過特征選擇,一些和任務無關或者是冗余的特征被刪除,從而提高后續(xù)數(shù)據(jù)挖掘的效率,簡化學習模型.Clementine軟件提供了一個特征選擇方法.
從UCI數(shù)據(jù)集中選取了9個數(shù)據(jù)集進行測試,數(shù)據(jù)集的說明如表4.將Clementine中特征選擇方法與文獻[8]中的方法CBFS進行性能對比.為說明問題,對每個數(shù)據(jù)集在全部特征集合和選取的特征集合上使用Clementine軟件中的C5.0分類算法進行對比測試,以比較對應性能的變化.
表4 實驗數(shù)據(jù)集參數(shù)匯總
在每個數(shù)據(jù)集上,首先進行特征選擇,得到特征選擇后的特征子集,然后在各特征選擇算法處理后的訓練數(shù)據(jù)集上訓練得到C5.0決策樹分類器,接著得到C5.0分類器在測試集上的分類準確率并記錄下來.如表5所示給出了在這些選取的數(shù)據(jù)集上CBFS及Clementine的特征選擇算法得到的特征子集.表6列出了C5.0在特征選擇算法處理后的分類準確率.為便于比較,表的第一列給出了分類器在原始數(shù)據(jù)集上的分類錯誤率.對數(shù)據(jù)集采用隨機選取的2/3 的數(shù)據(jù)作為訓練集,余下的作為測試集的策略劃分數(shù)據(jù)集,同時在每個數(shù)據(jù)集上測試10次,以10次的平均指標作為評估的結(jié)果.
表5 所選數(shù)據(jù)集在各特征選擇算法得到的特征子集
表6 C5.0 在全部特征和選擇的特征子集上的分類準確率對比
從實驗測試結(jié)果可見,文獻[8]中CBFS與Clementine中特征選擇方法在9個數(shù)據(jù)集上對特征規(guī)約的強度分別為57.14%和47.21%.特別地,Clementine在Breast和Iris數(shù)據(jù)集上不能識別不同特征的重要程度.在余下的7個數(shù)據(jù)集中,CBFS得到的特征子集上的分類準確率總體更好.由此可見,CBFS較Clementine的特征選擇方法無論在特征規(guī)約強度還是規(guī)約的質(zhì)量方面都要好,Clementine的特征選擇方法的性能有待改善.
抽樣節(jié)點、分區(qū)節(jié)點、平衡節(jié)點等幾個節(jié)點涉及對記錄的隨機選擇.按照通常的理解,隨機選擇的記錄,其結(jié)果是不確定的,但隨機選擇的數(shù)據(jù)規(guī)模應該隨用戶的指定而確定,但這些相關節(jié)點存在很多不確定性.
抽樣節(jié)點的隨機性問題:抽取p%的記錄,其記錄數(shù)不確定.如對于pima數(shù)據(jù)集,其有768條記錄,隨機選擇50%的記錄,應該是384條記錄,但其選取的結(jié)果子集大小不確定,可能是:374、383、387、393、398、370、368、361、402等.
由于分區(qū)節(jié)點是將數(shù)據(jù)集隨機劃分為2個(訓練集、測試集)或3個子集(訓練集、測試集、檢驗集),因此也存在類似的問題,劃分子集的大小不是隨劃分比例而固定.這進一步導致,基于分區(qū)的建模和檢驗,其分類準確率等結(jié)果也有一些不確定性.
平衡節(jié)點是對符合條件的記錄按一定比例隨機選取對象,因此也存在類似的問題.在平衡因子確定的情況下,得到的數(shù)據(jù)集大小也是不確定的.如對于mushroom數(shù)據(jù)集,其中類別為“p.”的有3916條記錄,類別為“e.”的有4208條記錄,將類別為“p.”的平衡因子設為0.1,得到的數(shù)據(jù)集大小應該是4599,但實際得到的大小可能是4564、4590、4618、4609、4611.
Clementine軟件因其功能強大、可視化程度高、操作簡便等特點深受用戶青睞,得到了廣泛的應用.本文指出了其部分功能節(jié)點存在的不足,期待高的版本能改善這些問題.