1. 程式人生 > >聚類評估

聚類評估


聚類概念

聚類是一個把資料物件劃分為多個簇或者多個組的過程,使得一個簇內的物件具有很高的相似性,但與其他簇內的物件不相似。聚類演算法屬於無監督學習


聚類分析概念

聚類分析是一個把資料物件劃分為子集的過程,每個子集是一個簇,使得簇中的物件彼此相似,但與其他簇中的物件不相似,由聚類分析產生簇的集合叫做聚類。至關重要的區別是,聚類可以自動地發現這些分組是聚類分析的突出優點。


應用場景

  1. 客戶分類
  2. 文字分類
  3. 基因識別
  4. 空間資料處理
  5. 衛星圖片識別
  6. 資料分析,統計學,機器學習,空間資料庫技術,生物學和市場學

聚類的依據–距離

聚類分析是研究對樣本或變數的聚類,在進行聚類的時候,方法很多,而這些方法的選擇往往與變數的型別是有關的,由於資料的來源以及測量方法的不同,變數大致可以分為兩類:

1)定量變數:可就是通常所說的連續變數

2)定性變數:這些量並非真有數量上的變化,而只有性質上的差異,這些變數可以分為有序變數和名義變數

對於連續型變數,有一些典型的距離定義:

絕對值距離 絕對值距離是在一維空間下進行的距離計算
歐式距離 歐式距離是在二維空間下進行的距離計算
閔可夫斯基距離 閔可夫斯基距離是在n維空間下進行的距離計算
切比雪夫距離 是閔可夫斯基距離在n取無窮大時的距離
Lance距離 減弱極端值的影響力

基本聚類方法概述

聚類方法主要劃分為:劃分聚類,層次聚類,基於密度聚類,基於網格聚類,基於概率模型聚類

方法 一般特點
劃分方法 1:發現球形互斥的簇
2:基於距離
3:可以用均值或中心點等代表簇中心
4:對中小規模資料集有效
層次方法 1:聚類是一個層次分解(即多層)
2:不能糾正錯誤的合併或分析
3:可以整合其他技術,如微聚類或考慮物件"連線"
基於密度的方法 1:可以發現任意形狀的簇
2:簇是物件空間中被低密度區域分割的稠密區域
3:簇密度:每個點的"領域"內必須具有最少個數的點
4:可能過濾離群點
基於網格的方法 1:使用一種多解析度網格資料結構
2:快速處理

劃分聚類

給定一個n個物件的集合,劃分方法構建資料的k個分割槽,其中每個分割槽表示一個簇,使得每個簇內至少包含一個物件。換言之,劃分方法在資料集上進行一層劃分。

大部分劃分方法是基於距離的。給定要構建的分割槽數k,劃分方法首先建立一個初始化分,然後採用一種迭代的重定位技術,通過把物件從一個組遷移到另一個組來改進劃分。一個好的劃分的一般準則是:同一個簇中的物件儘可能相互靠近或相關,而不同簇中的物件儘可能遠離或不同。為了達到全域性最優,基於劃分的聚類可能需要窮舉所有可能的劃分,計算量極大。實際上,大多數應用都採用了這兩種流行的啟發式方法:K-means和K-medoids

演算法 描述
k-means 典型的聚類方法,是一種基於形心的技術,使用簇Ci的形心代表該簇
k-modes 是k-means的一個變體,用簇的眾數取代簇均值來聚類標稱資料
k-prototypes 整合k-means和k-modes,對混合了數值和標稱值的資料進行聚類
k-medoids 一種基於代表物件的技術,選擇簇中某點作為聚點,PAM是典型的k-medoids演算法
PAM 使用迭代和貪心的方法來處理聚類問題
CLARA 在PAM的基礎上採取了抽樣,為了處理大資料集
CLARANS CLARANS演算法融合了PAM和CLARA兩者的優點,是第一個用於空間資料庫的聚類演算法
PCM 模糊集合理論引入聚類分析中並提出了PCM模糊聚類演算法

層次聚類

儘管劃分方法滿足把物件集劃分成一些互斥的族群的基本聚類要求,但是在某些情況下,我們想把資料劃分成不同層上的組群。層次聚類方法將資料物件組成層次結構或簇的"樹"。層次聚類分為凝聚和分裂兩種。凝聚層次聚類使用自底向上的策略把物件組織到層次結構中,從每一個物件都作為一個簇開始,迭代地合併,形成更大的簇。分裂層次聚類使用自頂而下的策略把物件組織到層次結構中,開始令所有給定的物件形成一個簇,迭代地分裂,形成較小的簇。

層次聚類方法可能在合併或分裂點的選擇方法上遇到困難。這種決定是至關重要的,因為一旦物件的組群被合併或被分裂,則下一步處理將在新產生的簇上進行。它既不會撤銷先前所做的工作,也不會在簇之間進行物件交換。一種提高層次聚類質量的有希望的方向是整合層次聚類和其他聚類技術,形成多階段聚類。

主要的聚類方法有:BIRCH,Chameleon,CURE,ROCK

演算法 描述
BIRCH BIRCH演算法利用樹結構對資料集進行處理,葉結點儲存一個聚類,用中心和半徑表示,順序處理每一個物件,並把它劃分到距離最近的結點,該演算法也可以作為其他聚類演算法的預處理過程
Chameleon 首先由資料集構造成一個K-最近鄰圖Gk ,再通過一個圖的劃分演算法將圖Gk劃分成大量的子圖,每個子圖代表一個初始子簇,最後用一個凝聚的層次聚類演算法反覆合併子簇,找到真正的結果簇

基於密度的聚類方法

劃分和層次方法旨在發現球狀簇,他們很難發現任意形狀的簇。為了發現任意形狀的簇,作為選擇,我們可以把簇看成資料空間中被稀疏區域分開的稠密區域,這是基於密度的聚類方法的主要策略。其主要思想是:只要鄰近區域的密度(物件或資料點的數目)超過某個閾值,就繼續聚類。也就是說,對給定類中的每個資料點,在一個給定範圍的區域中必須至少包含某個數目的點。這樣的方法可以用來過濾“噪聲”孤立點資料,發現任意形狀的簇。常見的基於密度的聚類演算法有DBSCAN,OPTICS,DENCLUE等。

演算法 描述
DBSCAN DBSCAN演算法是一種典型的基於密度的聚類演算法,該演算法採用空間索引技術來搜尋物件的鄰域,引入了“核心物件”和“密度可達”等概念,從核心物件出發,把所有密度可達的物件組成一個簇
OPTICS OPTICS演算法結合了聚類的自動性和互動性,先生成聚類的次序,可以對不同的聚類設定不同的引數,來得到使用者滿意的結果
DENCLUE 是一種基於密度分佈函式的聚類演算法

基於網格的聚類方法

迄今為止所討論的方法都是資料驅動的-她們劃分物件集並且自動適應嵌入空間中的資料分佈。基於網格的聚類方法採用空間驅動的方法,把嵌入空間劃分成獨立於輸入物件分佈的單元。

基於網格的方法把物件空間量化為有限數目的單元,形成了一個網格結構。所有的聚類操作都在這個網格結構(即量化的空間)上進行。基於網格的聚類演算法主要有STING, WaveCluster, CLIQUE等。

演算法 描述
STING 利用網格單元儲存資料統計資訊,從而實現多解析度的聚類
CLIQUE 在聚類分析中引入了小波變換的原理,主要應用於訊號處理領域。
WaveCluster 是一種結合了網格和密度的聚類演算法

聚類評估

當我們在資料機上使用一種聚類方法時,我們如何評估聚類的結果是否好?

一般而言,聚類評估估計在資料集上進行聚類的可行性和被聚類方法產生的結果的質量。聚類評估主要包括如下任務:

  • 估計聚類趨勢
  • 確定資料集中的簇數
  • 測定聚類質量

估計聚類趨勢

聚類趨勢評估確定給定的資料集是否具有可以導致有意義的聚類的非隨機結構。考慮一下沒有任何非隨機結構的資料集,如資料空間中均勻分佈的點,儘管聚類演算法可以為該資料集返回簇,但是這些簇是隨機的,沒有任何意義。

在這裡插入圖片描述

所以聚類要求資料的非均勻分佈。

如何評估資料集的聚類趨勢?直觀的看,我們可以評估資料集被均勻分佈產生的概率,這可以通過空間隨機性的統計檢驗來實現,一種簡單但有效的統計量-霍普金斯統計量

霍普金斯統計量是一種空間統計量,檢驗空間分佈的變數的空間隨機性。給定資料集D,它可以看作是隨機變數o的一個樣本,我們想要確定o在多大程度上不同於資料空間中的均勻分佈。可以按照以下步驟計算霍金斯統計量:

  • D n p 1 , p 2 , . . . , p n p i p i D x i p i D x i = m i n { d i s c t ( p i v ) } 均勻地從D的空間中抽取n個點p_1,p_2,...,p_n。對每個點p_i,我們找出p_i在D中的最鄰近,並令x_i為p_i與它在D中最鄰近之間的距離,即x_i=min\{disct(p_i,v)\}
  • D n q 1 , q 2 , . . . , q n q i q i D q i y i q i D q i y i = m i n { d i s t ( q i v ) } 均勻地從D中抽取n個點q_1,q_2,...,q_n。對每個點q_i,我們找出q_i在D-{q_i}中的最鄰近,並令y_i為q_i與它在D-{q_i}中的最鄰近距離,即y_i=min\{dist(q_i,v)\}
  • H = i = 1 n y i i = 1 n x i + i = 1 n y i 計算霍普金斯統計量H = \frac{\sum_{i=1}^{n}y_i}{\sum_{i=1}^{n}x_i + \sum_{i=1}^{n}y_i}

如果D是均勻分佈的,則 i = 1 n y i i = 1 n x i \sum_{i=1}^{n}{y_i}和\sum_{i=1}^{n}{x_i} 將會很接近,因而H大約為0.5,。然而,如果D是高度傾斜的,則 i = 1 n y i \sum_{i=1}^{n}{y_i} 將顯著地小於 i = 1 n x i \sum_{i=1}^{n}{x_i} ,因為H將接近於0

確定簇數

確定資料集中“正確的”簇數是重要的,不僅因為像k-均值這樣的聚類演算法需要這種引數,而且因為合適的簇數可以控制適當的聚類分析粒度。這可以看做在聚類分析的可壓縮性與準確性之間尋找好的平衡點。

  • 一種簡單的經驗方法是:對於n個點的資料集,設定簇數p大約為。在期望下,每個簇大約有個點。
  • 肘方法:一種選擇正確的簇數的啟發式方法是,使用簇內方差和關於簇數的曲線的拐點
  • 交叉驗證:把給定的資料集D劃分為m個部分,然後使用m-1個部分建立一個聚類模型,並使用剩下的一部分檢驗聚類的質量

測定聚類質量

如果有可用的基準,則外在方法可以使用它。外在方法比較聚類結果和基準。如果沒有基準可用,則我們可以使用內在方法

外在方法又稱監督方法,內在方法又稱為無監督方法

外在方法

  • 當有基準可以用時,我們可以把它與聚類進行比較,以評估聚類。這樣,外在方法的核心任務是,給定基準 C g C_g ,對聚類C賦予一個評價 Q C C g