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

即使事先不知道資料中存在哪些「群組」,只要進行分群分析,也能發現:
等模式。
不過,分群分析一定會伴隨一個重要問題。
「應該建立幾個群集?」
例如,在最常見的 K-Means 分群方法中,必須在執行演算法之前先決定群集數(K)。
如果群集數太少,原本不同的群組會被合併在一起;反之,如果太多,原本應該是一個群組的資料會被不自然地細分,導致難以解釋。

因此,當想知道是否有方法可以決定最佳群集數時,常用的方法有:
本篇文章將聚焦在輪廓係數法,說明:
另外,最後也會介紹 Exploratory 最近新增的、支援 K-Means 分群的輪廓係數法功能。
輪廓係數法(Silhouette Method)是一種用來評估每個資料點被分配到的群集適配程度的方法。
這個方法會同時評估兩個問題:
良好的分群結果必須同時滿足這兩點。
也就是說:
而將這些狀態量化後得到的,就是 輪廓係數(Silhouette Score)。
輪廓係數的範圍是 -1~1。

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

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

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

輪廓係數可以如下計算。

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

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

接著,將分離度減去凝聚度,再除以分離度與凝聚度兩者中較大的值,得到的就是輪廓係數。
例如以上例子中,假設凝聚度是 40,分離度是 80。

那麼輪廓係數就是 0.5。

從這個公式可以看出,當分離度大、凝聚度小時,分子會變大,因此輪廓係數會更高。這表示該點與自己所屬群集中的其他資料更接近,且與其他群集的資料更遠。
反過來,如果分離度小、凝聚度大,分子就會接近 0,甚至變成負值,輪廓係數也會變小。這表示該點與自己所屬群集中的其他資料較遠,反而與其他群集的資料較近。
總結來說,輪廓係數的解讀如下:
分數越接近 1,
這是理想狀態。
接近 0 的值表示:
也就是說,這個點可能屬於任一個群集。
這不一定是問題,但代表群集間的分離性較弱。
若是負值,
這表示資料可能被分錯群。
如果有很多資料呈現負分,則需要注意分群結果的可信度。
前面我們看的是單一資料點的輪廓係數,但實務上會對所有點都計算,並將這些分數取平均,形成「平均輪廓係數」,用來評估目前分群的品質。
不過,只有平均值還不夠。實際上,應該同時觀察以下 3 個指標:
將這些指標結合起來,可以更準確掌握:
接下來,我們逐一說明各項指標。
這是最常見、也最重要的指標。
它是所有觀測值輪廓係數的平均,表示「整體來看,資料被分配到各群集的狀況有多好」。
例如,假設隨著群集數改變,每次都計算平均輪廓係數。
K平均輪廓係數20.4230.5140.4750.39在這個例子中,群集數為 3 時的平均輪廓係數最高,因此是有力候選。
但要注意:
平均值可能會掩蓋:
因此還要確認接下來兩個指標。
所有觀測值中最低的輪廓係數。
也就是說,它代表「最有問題的分配到底有多糟」。
K平均輪廓係數最小輪廓係數30.42-0.0540.41-0.48平均值幾乎相同,但 K=4 存在非常差的觀測值。
這可能是由以下原因造成:
不過最小值會受到單一觀測值很大的影響,因此就算這個值很差,也不一定表示群集數有問題。
建議把它當作警示指標來看。
負輪廓係數比例是指輪廓係數小於 0 的資料比例。
也就是說,它表示「有多少資料可能其實更接近其他群集」。
例如,假設隨著群集數改變,每次都計算平均輪廓係數與負輪廓係數比例。
K平均輪廓係數負輪廓係數的比例30.422%40.4412%在這個例子中,群集數為 4 時,雖然平均分數比 3 高,但負分比例也高達 12%。
這表示在群集數為 4 時,有一定比例的資料沒有被良好分類。
因此,即使平均值稍低,群集數為 3 也可能是更穩定的結果。
整理一下前面提到的 3 個輪廓係數相關指標如下:
指標回答的問題角色平均輪廓係數整體品質如何?主要指標最小輪廓係數最差情況如何?警示指標負分比例有多少有問題的資料?穩定性檢查指標這些指標可依照以下方式來決定群集數:
目的不只是挑選高分而已。
更重要的是找到兼具分離性、穩定性、可解釋性與實用性的群集。
另外,選擇群集數時常用的另一種方法是「肘部法」。
肘部法是用來評估「各群集有多凝聚(緊密)」的方法。
由於 K-Means 分群演算法的目標是最小化每個觀測值與群中心之間的距離(WSS),因此 K(群集數)越大,距離(WSS)一定會越小。

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

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

相對地,輪廓係數法是在評估「群集彼此之間分離得有多好」。
也就是說,它會同時觀察凝聚度與分離度,來評估資料是否被正確分配到各個群集。
兩者都是用來決定群集數的方法,但觀察的面向不同。
簡單來說:
這兩者都能提供選擇最佳群集數所需的資訊。
兩者各有優點,所以與其說哪個比較好,不如說在實務上同時觀察兩者,來決定最佳群集數,會比較理想。
不過,若是以比較不同 K 為目的,輪廓係數法有以下優勢:
尤其是把
組合起來看,比單純的肘部曲線更能從多個面向進行評估。
先從 K=2~10 左右開始。
技術上即使能分成 20 群,如果實務上無法解釋,也沒有意義。
可作為參考的目標如下:
平均輪廓係數解讀0.7 以上非常好0.5~0.7 良好0.25~0.5 偏弱0.25 以下 明顯分離較少不過在問卷資料或行為資料中,偏低的情況其實並不少見。輪廓係數「偏弱」並不代表該群集就不能用,這點要特別注意。
確認有多少有問題的分配。
確認是否存在離群值或異常案例。
不要只因為某個群集數的平均分數最高就直接決定,也要把分數接近的其他群集數納入候選。
當候選群集數有幾個之後,實際用這些數量建立群集,並確認各群集的特徵。
例如在顧客區隔分析中,若能形成像「購買頻率高、客單價高,但折扣使用少的顧客」這樣有意義的群集,就是理想的狀態。
分群沒有正解標籤。因此,與線性迴歸或隨機森林這類「監督式學習」模型不同,它被稱為「非監督式學習」模型。
因此,最終仍然需要人類根據業務知識與分析目的來判斷。
重點是:輪廓係數法是用來支援決策,而不是取代決策。
在 Exploratory 最近的版本更新(v15.5 之後)中,分析檢視的 K-Means 分群已可使用輪廓係數法。
執行 K-Means 分群時,預設設定即可使用輪廓係數法評估最佳群集數。

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

在這個例子中,從平均輪廓係數來看,群集數為 2 時最好,其次是 3。不過,從負輪廓係數比例來看,群集數為 2 時,似乎有比 3 更多沒有被充分分離的資料。
因此,這時就要在「凝聚與分離的平衡較佳的 2」與「分離效果較好的 3」之間做選擇。
遇到這種情況時,通常會進一步比較群集數為 2 與 3 時,各群集的特徵。在 Exploratory 中,可以使用「群集特徵」區塊裡的雷達圖、箱型圖、散佈圖等,來比較分成 2 群與 3 群時的差異,看看哪一種更符合你的分析目的、也更有意義。
群集數 2 的情況:

群集數 3 的情況:

以這次的案例來說,我會傾向選擇群集數為 3。因為群集數為 2 時,只是把每個問題評分較高的群組與較低的群組分開而已;但群集數為 3 時,進一步把高評分群組再分成兩群,因此更能掌握回答傾向中的模式。
如果對這類解讀沒有信心,也推薦使用「AI 摘要」。透過閱讀最佳群集數的建議,以及各群集特徵的說明,應該能更深入理解。

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

以上面的例子來看,從平均輪廓係數可知,群集「1」與「3」比「2」更完整地聚在一起。再從負輪廓係數比例來看,也可以發現「1」與「3」幾乎沒有分離不佳的資料。
具有「對工作有成就感且投入度高」特徵的群集「2」,則有約 20% 的資料分離不佳,需要注意。
這次我們使用 Exploratory,依照以下步驟來選擇並評估群集數:
重點不是單純「選最高分」,而是要從分離性、穩定性與可解釋性的平衡來判斷最佳群集數。
分群分析在顧客區隔、問卷分析、行為分析、發掘資料中的隱藏模式等方面,都是非常方便的工具。
但另一方面,在 K-Means 分群中,必須事先決定群集數。因此,「到底應該分成幾群?」是許多人都會遇到的問題。
透過輪廓係數法,可以根據輪廓係數來確認:
不過,最終真正重要的,不是機械式地選出分數最高的群集數,而是參考輪廓係數,實際觀察各群集的特徵,判斷這樣的分法是否符合分析目的與業務決策需求。
隨著 Exploratory 新增輪廓係數法,現在已經能把群集數評估、群集特徵視覺化、AI 解讀,以及人工最終判斷,串成一套完整流程。
如果你想試試分群分析,或過去曾在群集數的決定上感到困擾,非常推薦在 Exploratory 上試試看使用輪廓係數法的 K-Means 分群。
👉 下載 Exploratory 最新版
https://exploratory.io/download
如果你還沒有帳號,可以從這裡註冊並開始 30 天免費試用。
即使試用期已結束,也可以啟動最新版,從「延長試用」再次體驗。
如果你希望系統性學習包括分群分析在內的統計學、機器學習、資料整理、視覺化,以及分析結果解讀,Exploratory 的「數據科學 Bootcamp」也很推薦。
在這個 Bootcamp 中,不只是學工具怎麼操作,而是會在 3 天內透過實作,集中學習如何提出問題、準備資料、視覺化、分析,以及如何解讀結果並連結到決策。
如果你想在實務資料分析中,更有信心地運用各種分析方法,歡迎參考以下頁面。
👉 查看數據科學 Bootcamp 詳情
https://exploratory.io/training-jp
原文出處:https://qiita.com/KanNishida/items/3779701ad40b74b491c5