[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
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up