評估結果

由於叢集是無監督的,因此沒有真值可用於驗證結果。由於沒有真相,因此評估品質就會變得複雜。此外,實際資料集通常不會提供明顯的示例叢集,如圖 1 所示。

圖表顯示三組清楚的資料點
圖 1:理想的資料圖表。實際資料很少會是這個樣子。

實際上,實際資料通常更像是圖 2 所示,因此很難以視覺化方式評估叢集品質。

含有隨機資料點的圖表
圖 2:更逼真的資料圖表

不過,您可以透過逐步應用一些啟發法則和最佳做法,來改善叢集品質。下列流程圖概略說明如何評估分群結果。我們會進一步說明每個步驟。

驗證程序的流程圖
按這裡查看這張圖表的放大版。

步驟 1:評估叢集品質

首先確認叢集是否符合您的預期,以及您認為相似的示例是否出現在同一個叢集中。

接著,請檢查下列常用指標 (不含完整清單):

  • 叢集基數
  • 叢集大小
  • 下游效能

叢集基數

叢集基數是每個叢集的示例數量。繪製所有叢集的叢集基數,並調查主要異常值叢集。在圖 2 中,這會是叢集 5。

這張長條圖顯示多個叢集的基數。叢集 5 的規模小於其他叢集。
圖 2:多個叢集的基數。

叢集大小

叢集大小是叢集中所有範例與叢集中心點的距離總和。繪製所有叢集的叢集規模,並調查異常值。在圖 3 中,叢集 0 是異常值。

您也可以根據叢集,查看範例與中心點的最大或平均距離,找出離群值。

這張長條圖顯示多個叢集的規模。叢集 0 遠大於其他叢集。
圖 3:幾個叢集的規模。

規模與基數

您可能已經注意到,叢集基數越高,叢集規模就越大,這很容易理解,因為叢集中的點越多 (基數),這些點與中心點的距離總和越大 (規模)。您也可以找出卡氏數和大小之間的關係與其他集群截然不同的異常集群。在圖 4 中,將線條套用至基數和幅度的圖表,可得知叢集 0 是異常值。(叢集 5 也離線條很遠,但如果省略叢集 0,新擬合線會更接近叢集 5)。

散布圖顯示多個叢集的卡氏數與大小。其中一個叢集是圖表中的異常值。
圖 4:先前顯示的叢集基數與規模。

下游效能

由於叢集輸出通常會用於後端 ML 系統,因此請查看叢集程序變更後,後端模型的效能是否有所提升。這項測試可實際評估叢集結果的品質,但進行這類測試可能會很複雜,且成本高昂。

步驟 2:重新評估相似度評估指標

聚類演算法的效益取決於相似度評估方式。請確認相似度評估機制會傳回合理的結果。快速檢查的方法是找出已知相似的範例組合。計算每組示例的相似度評估值,並將結果與您的知識進行比較:相似的示例組合相似度評估值應高於不相似的示例組合。

用於檢查相似度評估指標的範例應能代表資料集,這樣您就能確保相似度評估指標適用於所有範例。無論是手動或監督,相似度評估的效能必須在資料集中保持一致。如果某些範例的相似度評估結果不一致,這些範例就不會與相似的範例分在同一組。

如果您發現有相似度分數不準確的範例,表示相似度評估可能無法完整擷取用於區分這些範例的特徵資料。請嘗試使用相似度評估指標,直到傳回更準確且一致的結果為止。

步驟 3:找出最適合的叢集數量

使用 k-means 時,您必須事先決定叢集數量 k 。如何判斷最佳 k?請嘗試以逐漸增加的 k 值執行演算法,並記下所有叢集規模的總和。隨著k 增加,叢集會變小,點與圓心之間的總距離也會減少。我們可以將這個總距離視為損失。繪製這段距離與叢集數量之間的關係。

如圖 5 所示,在特定 k以上,損失減少的幅度會隨著 k增加而變得微不足道。建議您在斜率出現大幅變化的點使用 k,這稱為彎曲法。就所顯示的圖表而言,最佳 k 約為 11。如果您偏好更精細的叢集,可以參考這張圖表,選擇較高的 k

這張圖表顯示損失與使用的叢集。隨著叢集數量增加,損失會減少,直到 10 個叢集左右才會趨於平穩
圖 5:損失率與叢集數量對比

疑難排解問題

如果在評估過程中發現問題,請重新評估資料準備步驟和所選的相似度評估方式。提問:

  • 資料是否經過適當的縮放?
  • 相似度評估是否正確?
  • 演算法是否會對資料執行語意上有意義的作業?
  • 演算法的假設是否與資料相符?