輪廓係數(Silhouette Score)是什麼?

評估非監督式分群品質的指標,衡量每個樣本與所屬群集的緊密程度相對於鄰近群集的分離程度,數值範圍為 -1 到 1。|本頁含完整原理、應用場景、iPAS 考試重點與 3 個常見問答。

英文
Silhouette Score
主題標籤
機器學習、非監督式學習、分群評估
考點定位
非 iPAS 核心術語
最後更新
2026/06/22
輪廓係數(Silhouette Score)是什麼? 機器學習非監督式學習
術語快查

搜尋意圖: 如果你在找「輪廓係數 是什麼」或「輪廓係數 和相近概念差在哪」,先看這頁的短定義、完整說明與延伸比較。

TL;DR: 評估非監督式分群品質的指標,衡量每個樣本與所屬群集的緊密程度相對於鄰近群集的分離程度,數值範圍為 -1 到 1。

實用情境: 適合用在閱讀 AI 文章、產品文件或和同事討論時,先用一頁快速對齊概念。

下一步: 先讀完定義,再往下看延伸比較與對應工具,把概念轉成實際應用。

評估非監督式分群品質的指標,衡量每個樣本與所屬群集的緊密程度相對於鄰近群集的分離程度,數值範圍為 -1 到 1。

Silhouette Score(輪廓係數)是機器學習中評估非監督式分群品質的重要工具,由 Peter J. Rousseeuw 於 1987 年提出。其設計核心是在無需外部標籤的前提下,單純從資料的幾何結構判斷分群結果的好壞。

數學定義與計算方式

對於資料集中的任意樣本 i,定義兩個量:a(i) 表示樣本 i 與同群集內所有其他樣本的平均距離,反映該樣本與所屬群集的「緊密程度」(Cohesion);b(i) 表示樣本 i 到最近鄰群集(非自身群集,但距離最近者)所有樣本的平均距離,反映該樣本與周圍群集的「分離程度」(Separation)。樣本 i 的輪廓係數定義為 s(i) = (b(i) - a(i)) / max(a(i), b(i))。整個分群結果的 Silhouette Score 為所有樣本輪廓係數的算術平均值。

數值解讀

輪廓係數的範圍為 -1 到 +1,其解讀方式如下。當 s(i) 趨近 +1 時,表示 a(i) 遠小於 b(i),即樣本與同群集其他成員距離很近、與鄰近群集距離很遠,分群效果良好。當 s(i) 趨近 0 時,表示 a(i) ≈ b(i),樣本位於兩個群集的邊界地帶,歸屬模糊。當 s(i) 趨近 -1 時,表示 a(i) 大於 b(i),樣本與自身群集距離反而比與鄰近群集更遠,代表樣本可能被分配到了錯誤的群集。一般而言,整體 Silhouette Score 超過 0.5 被視為合理分群,超過 0.7 被視為良好分群,但此門檻會依資料特性而異。

用於選擇最佳 K 值

在 K-Means 等需要預先指定群集數的演算法中,Silhouette Score 是確定最佳 K 值的常用方法之一。做法是對不同 K 值(如 K=2 到 K=10)各跑一次分群,計算每個 K 對應的 Silhouette Score,選取分數最高的 K 作為最終分群數。這個方法比傳統的「肘部法則」(Elbow Method)更具客觀性,因為 Silhouette Score 有明確的數值定義和方向性(越高越好),而肘部法則依賴觀察 WCSS(Within-Cluster Sum of Squares)曲線的「轉折」,存在主觀判斷空間。

與其他內部評估指標的比較

除了 Silhouette Score,常見的分群內部評估指標還有 Davies-Bouldin Index 與 Calinski-Harabasz Index(也稱 Variance Ratio Criterion)。Davies-Bouldin Index 計算每對群集的「相似度」(群內分散程度與群間距離的比值),數值越低表示分群越好。Calinski-Harabasz Index 計算群間離散度與群內離散度的比值,數值越高表示分群越好。三種指標各有側重:Silhouette Score 對每個樣本分別評分後取平均,能識別個別異常樣本;Davies-Bouldin 和 Calinski-Harabasz 則從整體群集層面評估,計算效率較高,適合大規模資料集的快速篩選。

在 iPAS 考試中的考點

在 iPAS AI 應用規劃師考試中,Silhouette Score 是分群任務評估章節的核心考點。考生需掌握:Silhouette Score 是內部評估指標(不需要真實標籤),適用情境是資料本身沒有標籤的非監督式學習;數值解讀規則(+1 良好、0 邊界、-1 錯誤分群);以及與外部指標(如 Adjusted Rand Index,ARI)的區別,後者需要已知的真實標籤。

計算複雜度與實務限制

Silhouette Score 的計算複雜度為 O(n² × d),其中 n 為樣本數,d 為特徵維度。對於大型資料集(如百萬筆樣本),全量計算輪廓係數的計算成本相當高。實務上常採用兩種解法:一是隨機採樣子集計算近似分數(如取 10% 樣本);二是使用 scikit-learn 的 silhouette_samples 函式搭配並行化加速。此外,Silhouette Score 基於距離度量,在高維空間(如文字嵌入向量的 768 或 1536 維)中可能受「維度詛咒」影響,距離度量的區分度降低,此時建議先降維(如 PCA 或 UMAP)再計算。

應用案例

在實際 AI 專案中,Silhouette Score 廣泛用於客戶分群(Customer Segmentation)、文件主題分群(Topic Clustering)、異常偵測前的正常模式建立,以及推薦系統的使用者行為分群。以電商客戶分群為例,行銷團隊可能想將客戶分為高價值常購客、中頻客與低價值新客三群;透過計算 K=2 到 K=8 的 Silhouette Score 曲線,可客觀判斷三群確實優於兩群或四群,從而為行銷策略提供資料依據而非主觀臆測。

常見問題

Silhouette Score 和肘部法則(Elbow Method)哪個更適合用來選擇 K 值?

兩者各有優缺點。肘部法則觀察不同 K 值下群內誤差平方和(WCSS)曲線的「轉折點」,直觀易懂但判斷「肘點」在哪往往帶有主觀性,當曲線過渡平滑時尤其難以判斷。Silhouette Score 提供明確的數值(越接近 1 越好),可直接比較不同 K 值的分數取最大值,客觀性更強。實務建議是兩者同時使用:肘部法則快速縮小候選 K 值範圍,Silhouette Score 在候選範圍內做精確選擇。

Silhouette Score 和 Adjusted Rand Index(ARI)有什麼差別?何時用哪個?

Silhouette Score 是內部指標(Internal Index),完全依賴資料本身的距離結構進行評估,不需要真實的群集標籤,適用於真正的非監督式場景(例如對全新客戶資料做分群,沒有人工標注)。Adjusted Rand Index(ARI)是外部指標(External Index),需要對照已知的真實分群標籤,衡量演算法輸出與真實標籤的一致程度,常用於有帶標注測試集的評估(如評估新分群演算法相較基準的改善幅度)。若手上有真實標籤就優先用 ARI,沒有標籤則用 Silhouette Score。

為什麼在高維嵌入向量上的 Silhouette Score 常常偏低,該如何處理?

在高維空間(如 BERT 產生的 768 維向量或 OpenAI Embedding 的 1536 維向量),所有點之間的歐氏距離趨於相似,這種「維度詛咒」現象使得 a(i) 與 b(i) 的差距縮小,導致 Silhouette Score 普遍偏低,即使分群結構實際上很清晰。處理方式是在計算 Silhouette Score 前先進行降維:可使用 PCA 保留 50-100 維主成分,或使用 UMAP 將嵌入壓縮至 2-10 維,再計算分群指標。降維不僅改善指標的區分度,也能顯著降低 O(n²) 計算的時間成本。