# 群聚分析 (Cluster Analysis) [TOC] ###### tags: `data_mining` `ml` ### 例子 所謂「物以類聚」、「沆瀣一氣」、「狐群狗黨」、「龍交龍鳳交鳳溫姑交洞憨」 性質越近的越聚在一起。 這些成語俗語 其實都帶著「集群」的概念。 ### 演算法定義 * 集群分析是一種精簡資料的方法 * 依據樣本之間的共同屬性,將比較相似的樣本聚集在一起,形成集群(cluster)。 * 以距離作為分類的依據,相對距離愈近,相似程度愈高,資料分群之後可以使得群內差異小、群間差異大。 * 群聚分析技術分為兩大類: * 階層式分群(Hierarchical Clustering) * 切割式分群(Partitional Clustering) * 資料分析的對象通常針對人分群 * 通常是敘述消費者的特徵 * 人口統計變數 * 行為分析 * 需求 * 群聚方法分類 * 標準 * 統計 * 概念 * 物件 * 數值 * 符號值 * 以上兩這同時 * 尺度規劃 * 距離 * 密度 * 連結 ## 階層式分群 * 算法 * 根據樣本之間的距離,將距離最近的集結在一群 * 所有樣本都會併入同一集群中(如下圖) ![](https://i.imgur.com/5s8HqDA.png) ### 切割式分群 * 算法 * 事先指定分群數量 * 透過特定算法(K-means...)將組內同性質合組間異質性最大化 ### K-means的算法 1. 我們先設定好要分成多少(k)群。 2. 然後在feature space(x軸身高和y軸體重組出來的2維空間,假設資料是d維,則會組出d維空間)隨機給k個群心。 3. 每個資料都會所有k個群心算歐式距離(歐基李德距離Euclidean distance,其實就是直線距離公式,從小學到大的那個距離公式,這邊距離當然也可以換成別種距離公式,但基本上都還是以歐式距離為主)。 4. 將每筆資料分類判給距離最近的那個群心。 5. 每個群心內都會有被分類過來的資料,用這些資料更新一次新的群心。 6. 一直重複3–5,直到所有群心不在有太大的變動(收斂),結束。 ![](https://i.imgur.com/1lex0xR.png)