[toc] # 什麼是 Clustering? Clustering(分群)是一種無監督學習的技術,這意味著它不依賴於標籤數據。沒有「正確答案」可供參照,因此我們難以評估分群的結果是否「正確」。無監督學習的目的是從未標記的數據中探索內在結構,並挖掘資料點之間的潛在關聯。 Clustering 的目標是將數據點分成相似的群組,目的是將資料點根據相似性分成多個群組。每個群組中的資料點應該彼此之間很相似,而不同群組之間的資料點應該有較大的差異。但「相似性」的定義本質上是模糊的,並且依賴於選擇的距離度量方式(例如歐幾里得距離、曼哈頓距離等)。此外,不同的 Clustering 演算法(如 K-means、階層式分群、DBSCAN 等)有不同的假設和適用範圍,這使得 Clustering 無法有一個普遍且精確的定義。 ### Clustering 的特性 1. 相似性(Similarity): Clustering 的關鍵是資料點的「相似性」或「距離」。在不同應用中,相似性的定義可能不同。常見的相似性測量方式包括: * 歐幾里得距離(Euclidean Distance):兩個點之間的直線距離,常用於 K-means 分群。 * 曼哈頓距離(Manhattan Distance):兩個點在多維空間中沿坐標軸移動的總距離。 * 餘弦相似度(Cosine Similarity):用於高維向量之間的角度來衡量相似性,常應用於文本數據。 > 補充:不同的距離度量方式對分群結果有顯著影響,選擇正確的度量方式能更好地反映數據間的真實關係。 2. 群組內的同質性(Homogeneity within clusters): 群組內的資料應該是相似的。理論上,分群結果越好,群組內的數據點彼此之間的距離越短。 3. 群組之間的異質性(Heterogeneity between clusters): 群組之間應該是彼此不同的,也就是說,群組之間的距離應該盡量大,這樣能夠清楚地區分不同群組。 如何衡量分群的質量: 在 Clustering 中,無法用標籤來評估結果的好壞,但可以通過以下指標來衡量分群的質量: * SSE(Sum of Squared Errors):衡量群組內的資料點與其質心的距離平方和,值越小,群內的相似性越高。 * 輪廓係數(Silhouette Score):此指標可以評估每個資料點與所屬群組以及最近的其他群組的距離,分數越高表示該資料點越適合它所分配的群組。 4. 分群數目的選擇: 一個重要問題是「必須分幾群較適合?」這可以通過幾種方法來解決: * Elbow Method(肘部法):透過觀察 SSE 隨著群組數目增加的變化曲線,找到曲線彎曲的地方作為最佳分群數目。 * Silhouette Score:可以用來判斷每個樣本是否被合理地分配到適合的群組,值越高表示分群效果越好。 舉個例子: 想像你有一籃水果,我們想根據顏色或大小來將這些水果分類成幾個不同的群組,這樣每個群組裡的水果看起來就會很相似,而不同群組裡的水果看起來會有明顯的差異。這就是分群的概念。 # Clustering VS. Classification Clustering 跟分類本質上是不同的方法,雖然都是將樣本點分門別類,但分類在訓練時有提供標籤,屬於監督式學習。分類已經事先給定分類的範圍與大小,可能找不到更細或更廣的資料範疇資訊。例如,已給定的分類中其實還能細分成其他小類別。 在分群分析中,有兩個較難回答的問題: 1. 什麼樣的個體適合被分在一個群體中? 2. 這麼多樣本點必須分做幾群較適合? 這些問題可以從兩個角度來思考:緊緻性(Compactness)和連通性(Connectedness)。 * 緊緻性(Compactness): 會希望「個體之間的距離越小越好」,讓群體內部越緊密: * 階層式分群(Hierarchical Clustering):不需指定分群數目,讓資料自動由上往下或由下往上結合起來。 * 分割式分群(Partitional Clustering):需事先指定分群數目,經過不斷的迭代,直到群內的變異最小。 * 連通性(Connectedness): 會希望「可以串接的個體分在同一群」: * 譜分群(Spectral Clustering):基於圖論和 Graph Laplacian 的方法,能把「資料的形狀(shape)」考量進來,特別適合於資料呈現複雜形狀時,如環狀或弧形分佈的數據。 # Clustering 演算法 ## K-means # reference [機器學習: 集群分析 K-means Clustering](https://chih-sheng-huang821.medium.com/%E6%A9%9F%E5%99%A8%E5%AD%B8%E7%BF%92-%E9%9B%86%E7%BE%A4%E5%88%86%E6%9E%90-k-means-clustering-e608a7fe1b43) [Clustering 分群懶人包](https://medium.com/ai-academy-taiwan/clustering-%E5%88%86%E7%BE%A4%E6%87%B6%E4%BA%BA%E5%8C%85-9c0bb861a3ba) [聚類分析](https://zh.wikipedia.org/zh-tw/%E8%81%9A%E7%B1%BB%E5%88%86%E6%9E%90) [Manufacturing-Data-Science](https://github.com/PO-LAB/Manufacturing-Data-Science/blob/master/MDS/11.%20Clustering/clustering.ipynb) [分群?分類?傻傻分不清楚-分群演算法介紹](https://ithelp.ithome.com.tw/articles/10298327) [分群與分類. 一個輕鬆有趣的dataset](https://medium.com/@joey110119/my-pen-is-a-funny-data-train-d93b459a5921)
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.