クラ集分析是探索性資料分析(EDA)中最有用的方法之一。

image.png

即使事先不知道資料中存在哪些「群組」,只要進行分群分析,也能發現:

  • 顧客區隔
  • 商品群組
  • 行為模式
  • 各地區特色
  • 問卷填答者類型

等模式。

不過,分群分析一定會伴隨一個重要問題。

「應該建立幾個群集?」

例如,在最常見的 K-Means 分群方法中,必須在執行演算法之前先決定群集數(K)。

如果群集數太少,原本不同的群組會被合併在一起;反之,如果太多,原本應該是一個群組的資料會被不自然地細分,導致難以解釋。

image.png

因此,當想知道是否有方法可以決定最佳群集數時,常用的方法有:

  • 輪廓係數法(Silhouette Method)
  • 肘部法(Elbow Method)

本篇文章將聚焦在輪廓係數法,說明:

  • 什麼是輪廓係數法
  • 如何使用
  • 解讀時的注意事項
  • 與肘部法的差異

另外,最後也會介紹 Exploratory 最近新增的、支援 K-Means 分群的輪廓係數法功能。


輪廓係數法是什麼?

輪廓係數法(Silhouette Method)是一種用來評估每個資料點被分配到的群集適配程度的方法。

這個方法會同時評估兩個問題:

  1. 是否與同一群集中的資料足夠接近?
  2. 是否與其他群集的資料足夠遠?

良好的分群結果必須同時滿足這兩點。

也就是說:

  • 與同一群集內的其他資料相似
  • 與其他群集內的資料明顯不同

而將這些狀態量化後得到的,就是 輪廓係數(Silhouette Score)


輪廓係數是什麼?

輪廓係數的範圍是 -1~1

image.png

例如,假設在如下的二維空間中有一些資料點。

image.png

接著,假設把這些資料分成 3 個群集。

image.png

接下來,我們想針對箭頭所指的點計算輪廓係數。

image.png

輪廓係數可以如下計算。

image.png

凝聚度指的是和同一群集內其他資料有多相似,也就是該點到群集中其他所有點的距離總和。

image.png

而分離度則是與最近的其他群集內所有點之間距離的平均值。這個值越大,表示與其他群集的資料越遠。

image.png

接著,將分離度減去凝聚度,再除以分離度與凝聚度兩者中較大的值,得到的就是輪廓係數。

例如以上例子中,假設凝聚度是 40,分離度是 80。

image.png

那麼輪廓係數就是 0.5。

image.png

從這個公式可以看出,當分離度大、凝聚度小時,分子會變大,因此輪廓係數會更高。這表示該點與自己所屬群集中的其他資料更接近,且與其他群集的資料更遠。

反過來,如果分離度小、凝聚度大,分子就會接近 0,甚至變成負值,輪廓係數也會變小。這表示該點與自己所屬群集中的其他資料較遠,反而與其他群集的資料較近。

總結來說,輪廓係數的解讀如下:

1 接近 1:良好

分數越接近 1,

  • 越符合自己所屬群集
  • 與其他群集分離得越明確

這是理想狀態。

0 附近:模糊

接近 0 的值表示:

  • 位於兩個群集的邊界附近

也就是說,這個點可能屬於任一個群集。

這不一定是問題,但代表群集間的分離性較弱。

負值:誤分類的可能性

若是負值,

  • 比起被分配到的群集
  • 其他群集反而更接近

這表示資料可能被分錯群。

如果有很多資料呈現負分,則需要注意分群結果的可信度。


在群集評估中有助的 3 個輪廓指標

前面我們看的是單一資料點的輪廓係數,但實務上會對所有點都計算,並將這些分數取平均,形成「平均輪廓係數」,用來評估目前分群的品質。

不過,只有平均值還不夠。實際上,應該同時觀察以下 3 個指標:

  • 平均輪廓係數
  • 最小輪廓係數
  • 負輪廓係數比例

將這些指標結合起來,可以更準確掌握:

  • 整體品質
  • 是否存在有問題的群集分配

接下來,我們逐一說明各項指標。

1. 平均輪廓係數:整體品質

這是最常見、也最重要的指標。

它是所有觀測值輪廓係數的平均,表示「整體來看,資料被分配到各群集的狀況有多好」。

例如,假設隨著群集數改變,每次都計算平均輪廓係數。

K平均輪廓係數20.4230.5140.4750.39在這個例子中,群集數為 3 時的平均輪廓係數最高,因此是有力候選。

但要注意:

平均值可能會掩蓋:

  • 少數誤分類
  • 分離不佳的群集

因此還要確認接下來兩個指標。

2. 最小輪廓係數:最差的分配

所有觀測值中最低的輪廓係數。

也就是說,它代表「最有問題的分配到底有多糟」。

K平均輪廓係數最小輪廓係數30.42-0.0540.41-0.48平均值幾乎相同,但 K=4 存在非常差的觀測值。

這可能是由以下原因造成:

  • 離群值
  • 雜訊
  • 群集重疊
  • 不適當的 K 值

不過最小值會受到單一觀測值很大的影響,因此就算這個值很差,也不一定表示群集數有問題。

建議把它當作警示指標來看。

3. 負輪廓係數的比例

負輪廓係數比例是指輪廓係數小於 0 的資料比例。

也就是說,它表示「有多少資料可能其實更接近其他群集」。

例如,假設隨著群集數改變,每次都計算平均輪廓係數與負輪廓係數比例。

K平均輪廓係數負輪廓係數的比例30.422%40.4412%在這個例子中,群集數為 4 時,雖然平均分數比 3 高,但負分比例也高達 12%。

這表示在群集數為 4 時,有一定比例的資料沒有被良好分類。

因此,即使平均值稍低,群集數為 3 也可能是更穩定的結果。


3 個指標該如何使用

整理一下前面提到的 3 個輪廓係數相關指標如下:

指標回答的問題角色平均輪廓係數整體品質如何?主要指標最小輪廓係數最差情況如何?警示指標負分比例有多少有問題的資料?穩定性檢查指標這些指標可依照以下方式來決定群集數:

  1. 先找出平均輪廓係數最高的 K
  2. 確認負分比例是否偏低
  3. 確認最小分數是否沒有極端偏低
  4. 檢查各群集的特徵
  5. 選擇在實務上有意義的 K

目的不只是挑選高分而已。

更重要的是找到兼具分離性、穩定性、可解釋性與實用性的群集。


輪廓係數法與肘部法的差異

另外,選擇群集數時常用的另一種方法是「肘部法」。

肘部法

肘部法是用來評估「各群集有多凝聚(緊密)」的方法。

由於 K-Means 分群演算法的目標是最小化每個觀測值與群中心之間的距離(WSS),因此 K(群集數)越大,距離(WSS)一定會越小。

image.png

當群集數從 1 增加到 2、再從 2 增加到 3 時,起初距離(WSS)會明顯下降,但到了某個程度後,下降幅度會趨緩。這種由快速下降轉為平緩的轉折點就稱為「肘部(elbow)」,而對應的 K(群集數)就是最佳群集數。

image.png

不過實際上,這個肘部往往不容易找出來。

image.png

輪廓係數法

相對地,輪廓係數法是在評估「群集彼此之間分離得有多好」。

也就是說,它會同時觀察凝聚度與分離度,來評估資料是否被正確分配到各個群集。

兩者都是用來決定群集數的方法,但觀察的面向不同。

簡單來說:

  • 肘部法是在看「群集有多緊密?」
  • 輪廓係數法是在看「群集分離得有多好?」

這兩者都能提供選擇最佳群集數所需的資訊。

哪個比較好?

兩者各有優點,所以與其說哪個比較好,不如說在實務上同時觀察兩者,來決定最佳群集數,會比較理想。

不過,若是以比較不同 K 為目的,輪廓係數法有以下優勢:

  • 較容易解讀
  • 指標更清楚

尤其是把

  • 平均輪廓係數
  • 最小輪廓係數
  • 負分比例

組合起來看,比單純的肘部曲線更能從多個面向進行評估。


使用輪廓係數法選擇群集數的實務流程

1. 決定 K 的候選範圍

先從 K=2~10 左右開始。

技術上即使能分成 20 群,如果實務上無法解釋,也沒有意義。

2. 觀察平均輪廓係數

可作為參考的目標如下:

平均輪廓係數解讀0.7 以上非常好0.5~0.7 良好0.25~0.5 偏弱0.25 以下 明顯分離較少不過在問卷資料或行為資料中,偏低的情況其實並不少見。輪廓係數「偏弱」並不代表該群集就不能用,這點要特別注意。

3. 確認負分比例

確認有多少有問題的分配。

4. 觀察最小分數

確認是否存在離群值或異常案例。

5. 比較平均分數相近的群集數

不要只因為某個群集數的平均分數最高就直接決定,也要把分數接近的其他群集數納入候選。

6. 觀察各群集的特徵

當候選群集數有幾個之後,實際用這些數量建立群集,並確認各群集的特徵。

例如在顧客區隔分析中,若能形成像「購買頻率高、客單價高,但折扣使用少的顧客」這樣有意義的群集,就是理想的狀態。

7. 以領域知識驗證

分群沒有正解標籤。因此,與線性迴歸或隨機森林這類「監督式學習」模型不同,它被稱為「非監督式學習」模型。

因此,最終仍然需要人類根據業務知識與分析目的來判斷。

重點是:輪廓係數法是用來支援決策,而不是取代決策。


在 Exploratory 中使用輪廓係數法

在 Exploratory 最近的版本更新(v15.5 之後)中,分析檢視的 K-Means 分群已可使用輪廓係數法。

選擇最佳群集數

執行 K-Means 分群時,預設設定即可使用輪廓係數法評估最佳群集數。

image.png

例如使用這份員工問卷資料範例,可以得到如下結果:

image.png

在這個例子中,從平均輪廓係數來看,群集數為 2 時最好,其次是 3。不過,從負輪廓係數比例來看,群集數為 2 時,似乎有比 3 更多沒有被充分分離的資料。

因此,這時就要在「凝聚與分離的平衡較佳的 2」與「分離效果較好的 3」之間做選擇。

遇到這種情況時,通常會進一步比較群集數為 2 與 3 時,各群集的特徵。在 Exploratory 中,可以使用「群集特徵」區塊裡的雷達圖、箱型圖、散佈圖等,來比較分成 2 群與 3 群時的差異,看看哪一種更符合你的分析目的、也更有意義。

群集數 2 的情況:

image.png

群集數 3 的情況:

image.png

以這次的案例來說,我會傾向選擇群集數為 3。因為群集數為 2 時,只是把每個問題評分較高的群組與較低的群組分開而已;但群集數為 3 時,進一步把高評分群組再分成兩群,因此更能掌握回答傾向中的模式。

如果對這類解讀沒有信心,也推薦使用「AI 摘要」。透過閱讀最佳群集數的建議,以及各群集特徵的說明,應該能更深入理解。

image.png

各群集的輪廓係數

此外,也可以在「摘要」區塊下查看各群集輪廓係數的各項指標。

image.png

以上面的例子來看,從平均輪廓係數可知,群集「1」與「3」比「2」更完整地聚在一起。再從負輪廓係數比例來看,也可以發現「1」與「3」幾乎沒有分離不佳的資料。

具有「對工作有成就感且投入度高」特徵的群集「2」,則有約 20% 的資料分離不佳,需要注意。

這次我們使用 Exploratory,依照以下步驟來選擇並評估群集數:

  1. 使用輪廓係數法,嘗試多個 K(群集數)
  2. 比較平均輪廓係數
  3. 確認負分比例
  4. 確認最小分數
  5. 決定候選群集數後,比較各自的群集特徵
  6. 確認各群集的輪廓係數

重點不是單純「選最高分」,而是要從分離性、穩定性與可解釋性的平衡來判斷最佳群集數。


最後

分群分析在顧客區隔、問卷分析、行為分析、發掘資料中的隱藏模式等方面,都是非常方便的工具。

但另一方面,在 K-Means 分群中,必須事先決定群集數。因此,「到底應該分成幾群?」是許多人都會遇到的問題。

透過輪廓係數法,可以根據輪廓係數來確認:

  • 各群集是否真的分得好?
  • 是否過度細分?
  • 有多少資料沒有被良好分類?

不過,最終真正重要的,不是機械式地選出分數最高的群集數,而是參考輪廓係數,實際觀察各群集的特徵,判斷這樣的分法是否符合分析目的與業務決策需求。

隨著 Exploratory 新增輪廓係數法,現在已經能把群集數評估、群集特徵視覺化、AI 解讀,以及人工最終判斷,串成一套完整流程。

如果你想試試分群分析,或過去曾在群集數的決定上感到困擾,非常推薦在 Exploratory 上試試看使用輪廓係數法的 K-Means 分群。

👉 下載 Exploratory 最新版
https://exploratory.io/download

如果你還沒有帳號,可以從這裡註冊並開始 30 天免費試用。

即使試用期已結束,也可以啟動最新版,從「延長試用」再次體驗。


在數據科學 Bootcamp 中實踐學習分群分析

如果你希望系統性學習包括分群分析在內的統計學、機器學習、資料整理、視覺化,以及分析結果解讀,Exploratory 的「數據科學 Bootcamp」也很推薦。

在這個 Bootcamp 中,不只是學工具怎麼操作,而是會在 3 天內透過實作,集中學習如何提出問題、準備資料、視覺化、分析,以及如何解讀結果並連結到決策。

如果你想在實務資料分析中,更有信心地運用各種分析方法,歡迎參考以下頁面。

👉 查看數據科學 Bootcamp 詳情
https://exploratory.io/training-jp


原文出處:https://qiita.com/KanNishida/items/3779701ad40b74b491c5


精選技術文章翻譯,幫助開發者持續吸收新知。

共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。
🏆 本月排行榜
🥇
站長阿川
📝12   ❤️1
423
🥈
我愛JS
1
評分標準:發文×10 + 留言×3 + 獲讚×5 + 點讚×1 + 瀏覽數÷10
本數據每小時更新一次
📢 贊助商廣告 · 我要刊登