1. 程式人生 > >Two-phase clustering process for outliers detection 文章翻譯

Two-phase clustering process for outliers detection 文章翻譯

存儲器 圖像 必須 傳統 生成樹 dia var oda 不同的

基於二階段聚集模式的異常探測

M.F .Jiang, S.S. Tseng *, C.M. Su

國立交通大學計算機與信息科學系,中國臺北市新竹路100150號

1999年11月17日; 2000年4月25日修訂


摘要

  本文提出了一種進行異常探測的二階段聚集算法。在第一段中,我們首先通過探索“如果一個新的輸入樣品距離簇中心的距離足夠遠,就將它指定為新的簇”來修改傳統的k-means算法。它顯示相同簇中的點似乎全部異常或者全部非異常。在第二段中我們構造了一個最小生成樹,然後移除最長的邊。簇越小,樹中點的數量越少就會被挑選出來認定為異常。實驗結果顯示我們的流程是有效的。

關鍵詞:異常值;k-means聚類;二過程聚類;最小生成樹


1. 引言

  異常分析可以定義為將一系列樣品(或對象)分離到簇(或組)中,簇中的成員是相近的。分區或簇的目標也許是深入了解群體中的一致性(如植物或者動物的亞種分組)或者制訂針對每個群體客戶的業務策略,以提高業務效率。

  術語“余數簇”(Cedno and Suer, 1997)的定義用於指定與其他簇有很大不同的少數樣品。他們通常被認為是異常的噪聲。在所有數據中,余數簇通常是小數量、各參數值與正常數據有很大的不同。因此,在傳統的聚集算法中,這些樣品會被忽略或給予較低的權重以避免其他數據被聚集。

  然而,在某些具體應用中,我們必須從大量數據中找出異常樣品。例如,在醫學領域,我們也許想在病人數據中找出特殊的案例;在網絡問題領域,我們也許想在日誌數據中找出反常行為以預防一些反常的事故。識別異常觀測值也是回歸模型建立過程的一個重要方面。異常觀測值應當被識別是因為他們對擬合魔性的潛在影響。這就是偶然會有觀測值會對參數估計、參數估計的精確度和模型的整體預測能力產生不成比例的影響。

  正如我們所知,如果我們將50各數據點分到5各簇中會有7.4×1032種可能性(Kaufman and Rousseeuw, 1990)。余數簇經常太小而不能被分類。所以使用傳統的聚類算法來聚類次要和異常的樣品會花費大量時間或效果不好。在實際情況下,數據集經常會有上萬條記錄,前一段提到的問題也許不容易通過傳統聚類算法被簡單地解決。

  在這項工作中,異常值被定義為遠離大多數點的較小簇。我們的想法是第一步將數據點分為多個不同簇,每個簇也許全是異常值或者全是非異常值。也就是說,當相同簇裏的點距離不足夠近,這個簇也許會被分為兩個更小的簇。在數據點分類之後,可以明顯看到巽宅異常簇的時間復雜度也許會降低。這是因為相似的點會被合並到相同的簇中,要處理的數據是簇而不是點。在本文中,一種進行異常探測的二相聚集算法被提出。第一階段,我們提出首先通過探索“如果一個新的輸入樣品距離簇中心的距離足夠遠,就將它指定為新的簇”來修改k-means算法。結果顯示每個簇的直徑也許會縮短而且相同簇中的數據點也許更像是全為異常值或全為非異常值。但另一方面影響是,通過這種模式也許會導致獲得的簇的數量比傳統k-means算法獲得的多。然後我們在第二階段提出一個異常探索模式,在第一階段的結果簇中尋找異常值。通過這個過程,這些簇的最小生成樹(MST)(Zahn, 1971)首先構建並作為森林的成員處理。然後從森林中刪除樹的最長邊,並用兩個新生成的子樹替換原始樹。選擇較小簇,具有較少節點數的樹被視為異常值。此外,我們可以重復地從森林中刪除最長的邊緣,直到樹木數量足夠。

  本文的結果組織如下。第2節介紹了聚類和異常值檢測的相關工作。第3節給出了我們的算法的詳細描述。在第4節中,我們給出了不同數據的一些實驗結果,以顯示我們的算法的性能。第5節給出了結論。

2. 相關工作 

  聚類技術在工程,醫學,生物學,計算機科學等諸多領域得到了廣泛的關註。聚類的目的是將彼此接近的數據點組合在一起(Tou和Gonzalez,1974)。 考夫曼和Rousseeuw(1990)將聚類稱為“數據中查找組的藝術”。 由於聚類技術的成功高度依賴於調查,因此不存在最佳的聚類模式。盡管最近的研究嘗試使聚類分析更具統計學意義,但仍被視為探索性工具。

  不遵循與其余數據相同的模型的觀察通常稱為異常值。在機器學習,圖像識別,聚類等許多領域中,包括異常值或噪聲的實驗數據可能會對結果產生不良影響。 在這個意義上,模型選擇的方法與數據中不存在異常值同義。 在選擇變量和異常值識別的許多方法中,一些穩定的方法已經被提出用來檢測多個異常值(Hadi和Simonoff,1993:Kianifard和Swallow,1990),它們可以通過舍棄異常值來推斷估計。

  有多種分類方法來分類一個困難的任務。在聚類方法中,與我們的新方法相關的三種著名的算法,k-means算法,層次聚類方法和圖聚類理論簡要描述如下。

2.1. k-means算法

  k-means聚類的過程(Forgy,1965; McQueen,1967)盡量尋找具有固定數量的簇的最優分區。首先,構建了具有選定數量的簇的初始分區(可以以許多方式完成)。然後,保持相同數量的簇,分區被叠代地改進。在本文的其余部分,假設有m個樣品要聚類。每個樣品被順序處理並重新分配給簇,從而通過重新分配最大程度地提高分配標準。通常當不能獲得改進的再分配時,程序結束,但也可以使用更強的結束測試。
  令樣品M的集合為{x1,x2,...,xm},xi∈Rn,xi是第i個樣品。讓目標簇的數量為k。叠代聚類算法(Forgy,1965)如下:

  步驟1:選擇一個擁有k個簇的初始分區。

  步驟2:通過將每個樣品分配給其最近的簇(以簇中心來計算距離)來生成新的分區。

  步驟3:計算新的簇中心。

  步驟4:重復步驟2和步驟3直到找到標準函數的最佳值。

  步驟5:調整群集數量,或通過合並和拆分現有群集或刪除離群群集。

  在步驟2中定義了一種將所有樣品分配給最近的簇中心的k-means方法,步驟3是更新分區的過程。許多確定初始分區的方法由Hyvarinen(1963),Forgy(1965),McQueen(1967),Bakk和Hall(1964)等提出。此外,還有兩種以k-means方式更新分區的方法。 在McQueen的k-means方法中,在每次新的分配之後重新計算獲取簇的中心。Forgy的方法在所有樣品被檢查之後重新計算集群的中心。我們的聚類方法是通過在分配,分割或合並操作之後調整中心來修改McQueen的方法。對於不適當的初始分區,一些修改的算法,例如ISODATA(Ball和Hall,1964)可以在滿足某些條件時創建新的簇或合並現有的簇。如果簇具有太多的樣品,則會將簇分裂,如果兩個簇中心足夠接近,則會將簇合並。

  Johnson 和Wichern (1982)指出,歐幾裏德距離是在多變量模式中尋找群體時最廣泛接受和常用的相似度度量。基於畢達哥拉斯定理的歐氏距離是模式差異的平方和的平方根。假定樣本x1=(x11,x12,...,x1p)和x2=(x21,x22,...,x2p),其中xij代表第i個樣品第i個變量的值。x1與x2間的歐幾裏得距離d表示為d(x1,x2)=√[(x11-x21)2+(x12-x22)2+···+(x1p-x2p)2]。歐幾裏得距離之所以流行是因為其作為相似度量的直觀性。也就是說,類似的觀測值應該相隔較小的距離,而不同的觀測值應該相隔較遠的距離。

2.2. 分層聚類方法

  分層算法來自m個簇的初始分區(每個樣品被看作是一個簇),然後逐個減少一個簇的數量,直到所有m個觀察值都在單個簇中(Dubes和Jain,1987)。各種聚類技術之間的區別是合並簇的規則。單鏈接聚類合並基於每個簇中兩個最近的觀測值的距離(“相似性度量”)。因此,單鏈接通常被稱為“最近鄰”算法。關於單鏈接聚類算法和其他聚類算法的更多細節,參考Johnson和Wichern(1982)。

  單一鏈接聚類算法的結果可以在圖中看到,或者通常稱為“簇樹”。具體來說,簇樹必須在一定高度被分割或“切割”。群體的數量取決於樹被切割的位置。“群體數量”問題是任何聚類程序用戶必須處理的現實問題。分層聚類模型,通常使用單鏈接測量來聚集點,提供了一個確定組數n量的方法。在層次聚類模型中,單鏈接基於每個簇中兩個最接近的觀察點之間的距離來合並簇,聚類結果可以看作是“簇樹”。之後添加的簇可以被視為異常值或余數簇。然而,它不適合大量的數據,因為使用現代方法的單鏈接的計算成本對於CPU時間是O(n2),對於存儲器空間是O(n),對於n個模式被聚集( Dubes and Jain,1987)反之亦然。

2.3. 圖聚類理論

  一個簇是在簇分析中有許多應用的數學結構。可以將圖形定義為一組頂點和邊。頂點集V={vi}通常代表被聚類的對象。邊集E={ej}記錄一對頂點之間的相互作用。在本工作中,我們考慮到圖是樹T=(V,E)時的具體情況。樹的聚類問題出現在各種應用中。樹用於表示分層數據庫,許多通信或分布網絡呈現樹狀結構。在樹的情況下,可行分區可以如下表示。如果從樹上任意“切”p-1個邊,得到p個分離子樹T1,...,Tp。如果Ck是Tk((1,...,p)的頂點,則π={C1,...,Cp}是V到p簇的可行分區。事實上,通過對它們進行切割,可以得到相對於π的p-1個外邊緣,以獲得π。

  通過對實際使用的幾乎所有目標函數的動態規劃,可以在多項式時間內解決樹上的聚類問題。一般圖中的聚類問題往往是NP完整的; 事實證明,樹的情況是邊界和計算復雜度受目標函數的影響。

3. 二階段聚集模式

  在數據往往非常大的數據挖掘應用中,例如1000萬條記錄或更多,一個重要的因素是所需的計算資源(CPU時間和存儲空間)。資源消耗在不同方法之間變化很大,一些方法對於除小數據集之外的其他數據集都變得不切實際,而k均值算法通常具有n階的時空復雜度,其中n是數據集中的記錄數。在本節中,提出了一種用於異常值的兩階段聚類算法。在第一階段,以粗略的方式對簇進行k-means算法修改,從而允許簇的數量超過原始k,其中k是包括由用戶設置的異常值的所需要的簇數。 在第一階段,k-means算法被修改為以粗略的方式聚集大量數據,允許簇的數量超過原始k,其中k是包括由用戶設置的異常值的所需求的簇數。在修改的k-means算法中,我們使用啟發式的“如果一個新的輸入樣品遠離所有集群的中心,然後將其分配為新的簇中心”。這導致每個簇的直徑會縮短,並且同一簇中的數據點彼此更接近。通過這種方法,同一集群中的數據點可能都是異常值或都是非異常值,但副作用是在該階段發現的簇數大於原始k均值算法中發現的簇數。在第二階段為了找到異常值,根據邊的距離構建MST,其中樹的每個節點代表在階段1中獲得的每個簇的中心。然後刪除最長邊,原來的樹被兩個新生成的子樹替換。選擇小簇即節點數少的樹被視為異常值。此外,我們可以重復地去除最長的邊緣,直到簇的數量足夠多,並且生成的簇不像傳統的k-均值算法那樣很多被平均劃分。我們的聚類方法的算法被劃分為兩個階段,修改後的k均值過程(MKP相)和OFP階段,在以下部分描述。

3.1. 修改後的K-means過程(MKP)

  由於不同的初始數據集可能會產生不同的聚類結果,所以使用k-means算法不能很容易地獲得所需的最優結果。特別是在大量的模式中,通過嘗試所有不同的初始集來找到全局最優情況是不切實際的。我們修改後的k-means算法使用了一個啟發式的“如果一個新的輸入樣品遠離所有的簇中心,然後把它分配為一個新的簇中心”,它將異常值在集群交互過程中分離成另一個集群中心。允許這個啟發式搜索調整集群的數量。類似於ISODATA算法,添加更多的集群將有助於我們找出不顯眼的潛在異常值或余數簇。

  一開始,我們的聚類方法就像傳統的k-means算法。令k‘為可調整簇的數量。最初設置k‘= k,隨機選擇k‘個樣品作為聚類中心,C = {z1,z2,...,zk‘}屬於Rn。在叠代期間,當向最近的集群添加一個模式時,我們不僅計算新集群的中心,而且還計算任何兩個集群中心之間的最小距離min(C)。

min(C)=min||zj-zh||2 其中j,h=1,...,k‘, j≠h.

對於任何模式xi,其最近的簇的中心的最小距離min(xi,C)計算如下

min(xi,C)=min||xi-zj||2 其中j,h=1,...,k‘.

根據上述啟發法,分割數據後可以找到更多的簇。在某些極端情況下,每個樣品被放入自己的簇中,即k‘= m,其中m是所有點的數量。在某些極端情況下,每個模式被放入自己的簇,即k‘= m,其中m是所有點的數量,這將導致產生太多的簇。在修改的k-means算法中,當模式被分解為kmax+1個簇時,兩個最接近的簇將被合並。修改的k-means算法如下:

算法3.1 (修改後的k-means過程,MKP)。

  第1步:隨機選擇k‘個初始點作為簇中心。

  第2步:對於i←1到m,計算min(C)和min(xi,C)。

  第3步:如果min(xi,C)≤min(C)則跳到第6步。

  第4步:分割過程:將xi指定為新集群Ck‘的中心,並設置k‘←k‘+ 1。

  第5步:合並過程:如果k‘>kmax,將兩個最近的簇合並為一個簇,並設置k‘=kmax

  第6步:分配過程:將xi分配給其最接近的簇。

  第7步:跳到第2步直到簇成員穩定。

  在第2步中,計算“樣品與最近簇之間的距離”與“現有簇之間的最小距離”,在步驟3中,啟發法“如果一個樣品足夠遠,則將其分配為新的簇” 用於確定應將哪一個拆分或合並。重要的是要註意,這裏使用的分割和合並操作與ISODATA算法中提出的分割和合並操作非常相似。然而,與ISODATA算法不同,它設置用戶參數,以確定當集群有太多樣品或兩個集群的中心足夠接近時合並。當用戶既不知道屬性也不知道模式的散布時,這是不合適的。在我們的分割方案中,是依據當時的條件而執行,並且當產生太多的簇時,執行合並。在聚類之前不必徹底了解數據的分布。kmax的值範圍從k到m,由領域專家確定。如果數據點是隨機的,我們建議將kmax的值設置在m附近。

  (a)合並過程

  合並的過程是整合兩個現有的簇。將zk1和zk2設置為用於合並的兩個最近的簇的中心。然後,通過以下操作合並這兩個簇:

技術分享

zk*是新簇的中心,Nk1和Nk2是兩個簇分別包含樣品的數量。顯然Zk1和Zk2被zk*替代,同事k‘的值減一。

  (b)分配過程

  對於每個聚類叠代,我們將所有樣品分配給最近的簇,使得每個樣品與相應簇的中心之間的歐幾裏德距離的平方和最小化。總標準可以描述為最小化:技術分享受制於技術分享其中wij=1,如果對於所有i = 1,2,...,m,j = 1,2,...,k或wij = 0,則將樣品i分配給集群j。

例1:令樣本{1,2,3,4,6,10},我們修改的的k-means算法結果展示在表1中。

技術分享

  由於k-means和異常值檢測算法的相對性能可能很好地隨著k的範圍而變化,所以將標準函數定義為:(1/ARAC),其中ARAC(群集之間的平均關系)是與其他集群的一個集群的關系標準類似於Davies-Bouldin指數(Davies and Bouldin, 1979)。當ARAC變小時,標準函數將會絕對增長。通過比較不同簇號的標準值,可以找出最優簇數。

3.2. 異常值查找過程(OFP)

  雖然大多數集群技術使用密度作為標準來確定聚類的結果是否好,但我們的方法似乎沒有必要將大型簇拆分成幾個分區來降低密度。與分層技術的標準類似,我們方法的標準是用依據距離找到異常值數據。因此,在階段2中,在階段1中獲得的k‘個集群的中心將被看作是基於每兩個節點之間的距離來構造MST的k‘個節點。我們構造MST而不是層次化的原因是構建MST的時間復雜度是O(n2),而層次結構是O(n3)(Jain and Dubes, 1988)。

  在第2階段,我們提出一個OFP,從第一階段得到的聚類中找出異常值。在步驟1中,我們首先為這些簇構建MST,並將其設置為樹林F的成員。然後在步驟2中,從森林中刪除樹的最長邊,並用兩個新獲得的子樹替換樹。選擇小簇,具有較少節點數的樹被視為異常值。此外,我們可以重復從森林中刪除最長邊,直到F中的樹數等於k。

  讓進程的輸入為中心集C={z1,z2,...,zk‘}屬於Rn,並假定空樹集合F被初始化。OFP如下所示:

算法3.2 (異常值查找過程,OFP)。

  第1步:通過集合C的中心構造MST並將其添加到F.

  第2步:從F中移除樹的最長邊,並將樹替換為新生成的兩個子樹。

  第3步:將小子樹中的簇視為異常值。

4. 實驗

  在本節中,三組不同的實驗數據用來我們的新方法和傳統聚類算法進行測試和比較。在第一個實驗中,我們使用150個鳶尾花二維數據。在第二個實驗中,四維甘蔗育種數據集被測試。最後,我們在網絡行為檢測中應用我們的方法。所有的實驗結果顯示我們的異常檢測方法通常工作的比傳統k-means算法更好。

4.1. 兩個屬性的鳶尾花數據

  該實驗的第一部分涉及的是著名的鳶尾花數據(Duda and Hart,1973)。這裏有鳶尾植株數據庫中的三組鳶尾花數據:山鳶尾、變色鳶尾和維吉尼亞鳶尾。眾所周知鳶尾花數據有一些可以被現、以前的方法消除的噪聲。在本次實驗中,我們選取第1和第2個屬性作為輸入參數。圖1(a)和(b)分別展示了k=3和k=4的k-means算法的結果;圖1(a‘)和(b‘)分別展示了我們的聚類方法k=3和k=4時的結果。

技術分享

  在實驗的第二部分,我們選擇鳶尾花的第2和第3個屬性作為輸入參數。相似地,圖2(c)和(d)分別是k=3和k=4的k-means算法獲得的,圖2(c‘)和(d‘)分別是通過我們的k=3和k=4的離群聚類獲得的。依據這個結果,可以清晰地看到k-means算法集群模式是平衡的方式,而我們的集群過程不會將大型簇分成幾個子簇。相反,我們的方法可以將分布在邊緣的少量樣品聚類以達到聚類異常值的目標。

技術分享

4.2 甘蔗育種數據

  為了了解異常值搜尋算法的能力,1990年臺灣糖研究所(TSRI)發布的甘蔗育種數據庫(Jiang et al., 1996)被用來實驗。每個數據記錄包含名字和23個甘蔗屬性包括莖直徑、莖長等。在本實驗中,使用了171條記錄和4個特征即莖直徑(DIA)、莖長(LGH)、增強糖(ESG)和花百分比(FPC)。k=5的聚類結果展示在表2和表3中,產生了3個簇,檢測到兩個離群。

技術分享

4.3 電子郵件日誌數據

  垃圾郵件通常一位置在短時間內大量郵件被發送到郵件服務器,將會增加郵件服務器的工作量同事使整個系統癱瘓。因此我們建立了一個在線異常電子郵件行為監控系統,它可以在郵件服務器上工作同時分析郵件服務器收到的每封郵件。據我們所知,當用戶通過電子郵件服務器發送電子郵件時,服務器會記錄一些相對於用戶行為的信息。在將信息從日誌文件中提取到關系數據庫之前,我們必須首先清理並轉換原始數據。原始日誌文件記錄包括以下信息:時間、來源和目的地地址、郵件大小、流程優先級和用戶信息等。圖3展示了一個例子。

技術分享

  我們實驗的電子郵件數據記錄有25511條,被分為6個簇。在網絡管理員的經驗基礎上,我們使用了兩個變量即電子郵件記錄(X坐標),每封電子郵件大小(日誌字節,Y坐標)作為我們的實驗參數。圖4是聚類實驗結果,我們可以發現k-means算法只能將這些相當大的正常樣品分成幾個子集群,但不區分異常值樣品。圖4(b)展示了我們的聚類方法可以聚類更多異常樣品。

技術分享

5. 結語

  在傳統的聚類算法中,異常樣品被忽視或被並入其他大量樣品中。然而,在一些特殊領域,我們需要從大量的數據中找出這些異常樣品。在本文中,我們提出一個異常識別二階段聚類方法。第一階段,我們基友一個“分裂”啟發法修改k-means算法;第二階段,我們提出一個OFP用來在第一階段獲得的結果簇中尋找異常值。在本階段中,一個MST被建立同事最長邊被移除。然後將原始樹用兩個新生成的子樹替換。小簇即節點很少的樹會被選擇和看作異常。此外,我們會叠代移除最長邊直到森林中樹的數量足夠多。依據第一個實驗:鳶尾花數據,結果顯示我們提出的方法可以找出次要和異常的樣品。在電子郵件日誌文件算法實驗中,我們提出的聚類算法被應用於在線監控異常電子郵件行為系統。結果顯示我們的方法效果較好。

致謝

  這項工作得到了中國教育部和國家科學部下第89-E-FA04-1-4號“高信度信息系統”的支持。

參考文獻

略。

Two-phase clustering process for outliers detection 文章翻譯