聚類算法的評估
本博客根據 百面機器學習,算法工程師帶你去面試 一書總結歸納,公式圖片均出自該書.
本博客僅為個人總結學習,非商業用途,侵刪.
網址 http://www.ptpress.com.cn
數據的聚類依賴於實際需求, 同時也依賴於數據的特征度量以及評估數據相似性的方法。相比於監督學習, 非監督學習通常沒有標注數據,** 模型、 算法的設計**直接影響最終的輸出和模型的性能。 為了評估不同聚類算法的性能優劣, 我們需要了解常見的數據簇的特點。
- 以中心定義的數據簇:這類數據集合傾向於球形分布, 通常中心被定義為質心, 即此數據簇中所有點的平均值。 集合中的數據到中心的距離相比到其他
簇中心的距離更近。 - 以密度定義的數據簇: 這類數據集合呈現和周圍數據簇明顯不同的密度, 或稠密或稀疏。 當數據簇不規則或互相盤繞, 並且有噪聲和離群點時, 常常使
用基於密度的簇定義。 - 以連通定義的數據簇: 這類數據集合中的數據點和數據點之間有連接關系,整個數據簇表現為圖結構。 該定義對不規則形狀或者纏繞的數據簇有效。
- 以概念定義的數據簇: 這類數據集合中的所有數據點具有某種共同性質。
聚類評估的任務是估計在數據集上進行聚類的可行性, 以及聚類方法產生結果的質量。 分為以下三個子任務:
-
估計聚類趨勢。這一步驟是檢測數據分布中是否存在非隨機的簇結構。如果數據是基本隨機的, 那么聚類的結果也是毫無意義的。
-
可以觀察聚類誤差是否隨聚類類別數量的增加而單調變化,如果數據是基本隨機的,那么聚類誤差隨聚類類別數量的增加而變化的幅度就不顯著,找不到一個合適的K對應數據的真是簇數。
-
我們也可以應用霍普金斯統計量(Hopkins Statistic) 來判斷數據在空間上的隨機性。 步驟如下:
首先,從所有樣本中隨機找n個點,然后為每一個點在樣本空間中找到一個離他最近的點,並計算它們之間的聚類\(x_i\),從而得到距離向量\(x_1,x_2,...,x_n\);
然后,從樣本的可能取值范圍內隨機生成n個點,對每一個隨機生產的點,找到一個離它最近的樣本點,並計算它們之間的距離,得到\(y_1,y_2,...,y_n\)。霍普金斯統計量H可以表示為:
,
如果樣本接近隨機分布, 那么
和
的取值應該比較接近, 即H的值接近於0.5; 如果聚類趨勢明顯, 則隨機生成的樣本點距離應該遠大於實際樣本點的距離, 即
, H的值接近於1。
-
-
判定數據簇數。確定聚類趨勢之后, 我們需要找到與真實數據分布最為吻合的簇數, 據此判定聚類結果的質量。 例如用手肘法和Gap Statistic方法。 需要說明的是, 用於評估的最佳數據簇數可能與程序輸出的簇數是不同的。
-
測定聚類質量。在無監督的情況下, 我們可以通過考察簇間的分離情況和簇內的緊湊情況來評估聚類的效果。
下面為幾種常用的指標:-
輪廓系數: 給定一個點p, 該點的輪廓系數定義為
其中a(p)是點p與同一簇中的其他點p’之間的平均距離; b(p)是點p與另一個不同簇中的點之間的最小平均距離(如果有n個其他簇, 則只計算和點p最接近的一簇中的點與該點的平均距離) 。 a(p)反映的是p所屬簇中數據的緊湊程度, b(p)反映的是該簇與其他臨近簇的分離程度。 顯然, b(p)越大, a(p)越小, 對應的聚類質量越好, 因此我們將所有點對應的輪廓系數s(p)求平均值來度量聚類結果的質量。即s(p)越接近於1,聚類效果越好。 -
均方根標准偏差(Root-mean-square standard deviation, RMSSTD) : 用來衡量聚結果的同質性, 即緊湊程度, 定義為
其中\(C_i\)代表第i個簇, \(c_i\)是該簇的中心, x∈ \(C_i\)代表屬於第i個簇的一個樣本點, \(n_i\)為第i個簇的樣本數量, P為樣本點對應的向量維數。 可以看出, 分母對點的維度P做了懲罰, 維度越高, 則整體的平方距離度量值越大。, 其中n為樣本點的總數, NC為聚類簇的個數, 通常NC<<n, 因此
的值接近點的總數, 為一個常數。 綜上, RMSSTD可以看作是經過歸一化的標准差。該值越小越好。
-
R方(R-Square) : 可以用來衡量聚類的差異度,定義為:
,
其中D代表整個數據集, c代表數據集D的中心點, 從而代表將數據集D看作單一簇時的平方誤差和。 與上一指標RMSSTD中的定義相同,
代表將數據集聚類之后的平方誤差和, 所以RS代表了聚類之后的結果與聚類之前相比, 對應的平方誤差和指標的改進幅度。該幅度越大越好。
-
改進的HubertΓ統計: 通過數據對的不一致性來評估聚類的差異, 定義為
其中d(x,y) 表示點x到點y之間的距離,代表點x所在的簇中心\(c_i\)與點y所在的簇中心\(c_j\)之間的距離,
為所有(x,y)點對的個數, 因此指標相當於對每個點對的和做了歸一化處理。 理想情況下, 對於每個點對(x,y), 如果d(x,y)越小,對應的
也應該越小( 特別地, 當它們屬於同一個聚類簇時,
=0) ; 當d(x,y)越大時,
的取值也應當越大, 所以Γ值越大說明聚類的結果與樣本的原始距離越吻合, 也就是聚類質量越高。
-