聚類算法4-模型評估(SSE、“肘”部法、SC系數和CH系數)


1 誤差平方和(SSE)

誤差平方和的值越小越好

在k-means中的應用:

公式各部分內容(k=2):

舉例:
下圖中數據-0.2, 0.4, -0.8, 1.3, -0.7, 均為真實值和預測值的差

總結:

  • SSE圖最終的結果,對圖松散度的衡量.(eg: SSE(左圖)<SSE(右圖))

  • SSE隨着聚類迭代,其值會越來越小,直到最后趨於穩定:

  • 如果質心的初始值選擇不好,SSE只會達到一個不怎么好的局部最優解.

2 “肘”方法 (Elbow method) — K值確定

下降率突然變緩時即認為是最佳的k值。

(1)對於n個點的數據集,迭代計算k from 1 to n,每次聚類完成后計算每個點到其所屬的簇中心的距離的平方和

(2)平方和是會逐漸變小的,直到k==n時平方和為0,因為每個點都是它所在的簇中心本身。

(3)在這個平方和變化過程中,會出現一個拐點也即“肘”點,下降率突然變緩時即認為是最佳的k值

在決定什么時候停止訓練時,肘形判據同樣有效,數據通常有更多的噪音,在增加分類無法帶來更多回報時,我們停止增加類別。

3 輪廓系數法(Silhouette Coefficient)

取值為[-1, 1],其值越大越好

結合了聚類的凝聚度(Cohesion)和分離度(Separation),用於評估聚類的效果:

目的:
內部距離最小化,外部距離最大化

案例:
下圖是500個樣本含有2個feature的數據分布情況,我們對它進行SC系數效果衡量:

n_clusters = 2The average silhouette_score is : 0.7049787496083262
n_clusters = 3 The average silhouette_score is : 0.5882004012129721
n_clusters = 4 The average silhouette_score is : 0.6505186632729437
n_clusters = 5 The average silhouette_score is : 0.56376469026194
n_clusters = 6 The average silhouette_score is : 0.4504666294372765

n_clusters 分別為 2,3,4,5,6時,SC系數如下,是介於[-1,1]之間的度量指標:
從平均SC系數結果來看,K取3,5,6是不好的,那么2和4呢?
k=2的情況:

k=4的情況:

結論:

  • n_clusters = 2時,第0簇的寬度遠寬於第1簇;
  • n_clusters = 4時,所聚的簇寬度相差不大,因此選擇K=4,作為最終聚類個數。

4 CH系數(Calinski-Harabasz Index)

分數s高則聚類效果越好

CH需要達到的目的:用盡量少的類別聚類盡量多的樣本,同時獲得較好的聚類效果。

  • tr為矩陣的跡, Bk為類別之間的協方差矩陣,Wk為類別內部數據的協方差矩陣;m為訓練集樣本數,k為類別數。
  • 類別內部數據的協方差越小越好,類別之間的協方差越大越好


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM