上一章:機器學習08——集成學習
下一章:機器學習10——降維與度量學習
機器學習實戰項目:【從 0 到 1 落地】機器學習實操項目目錄:覆蓋入門到進階,大學生就業 / 競賽必備
文章目錄
- 一、聚類任務(無監督學習的核心)
- (一)形式化描述
- 二、聚類性能度量(有效性指標)
- (一)外部指標(與參考模型比較)
- (二)內部指標(直接評價聚類結果)
- 三、距離計算(聚類的基礎)
- (一)常用距離
- (二)屬性類型與距離度量
- 四、原型聚類(基于原型的聚類)
- (一)k均值算法(k-means)
- 五、層次聚類(樹形結構聚類)
- (一)AGNES算法(自底向上聚合)
- 總結
一、聚類任務(無監督學習的核心)
聚類是無監督學習中最核心的任務之一,目標是將無標記樣本集劃分為若干不相交的“簇”(cluster),以揭示數據內在的分布結構。
(一)形式化描述
- 給定樣本集D={x1,x2,...,xm}D = \{x_1, x_2, ..., x_m\}D={x1?,x2?,...,xm?},每個樣本xix_ixi?為n維特征向量;
- 聚類算法將DDD劃分為kkk個簇{C1,C2,...,Ck}\{C_1, C_2, ..., C_k\}{C1?,C2?,...,Ck?},滿足:
- 簇間不相交:Cl′∩l′≠lCl=?C_{l'} \cap_{l' \neq l} C_l = \emptysetCl′?∩l′=l?Cl?=?;
- 覆蓋所有樣本:D=∪l=1kClD = \cup_{l=1}^k C_lD=∪l=1k?Cl?;
- 簇標記向量λ={λ1;λ2;...;λm}\lambda = \{\lambda_1; \lambda_2; ...; \lambda_m\}λ={λ1?;λ2?;...;λm?}表示樣本所屬簇(λj∈{1,2,...,k}\lambda_j \in \{1, 2, ..., k\}λj?∈{1,2,...,k},即xj∈Cλjx_j \in C_{\lambda_j}xj?∈Cλj??)。
二、聚類性能度量(有效性指標)
性能度量用于評價聚類結果的優劣,核心是“簇內相似度高、簇間相似度低”,分為外部指標和內部指標。
(一)外部指標(與參考模型比較)
- 定義:將聚類結果與“參考模型”(如人工標注的簇劃分)比較,通過樣本對的匹配情況計算。
- 關鍵參數:
- aaa:同簇且參考模型中同簇的樣本對數量;
- bbb:同簇但參考模型中不同簇的樣本對數量;
- ccc:不同簇但參考模型中同簇的樣本對數量;
- ddd:不同簇且參考模型中不同簇的樣本對數量。
- 常用指標:
- Jaccard系數(JC):JC=aa+b+cJC = \frac{a}{a + b + c}JC=a+b+ca?;
- FM指數(FMI):FMI=aa+b?aa+cFMI = \sqrt{\frac{a}{a + b} \cdot \frac{a}{a + c}}FMI=a+ba??a+ca??;
- Rand指數(RI):RI=2(a+d)m(m?1)RI = \frac{2(a + d)}{m(m - 1)}RI=m(m?1)2(a+d)?。
(二)內部指標(直接評價聚類結果)
- 定義:基于聚類結果自身的統計特性(如距離、密度)評價,無需參考模型。
- 關鍵參數:
- avg(C)avg(C)avg(C):簇CCC內樣本平均距離;
- diam(C)diam(C)diam(C):簇CCC內樣本最大距離;
- dmin(Ci,Cj)d_{min}(C_i, C_j)dmin?(Ci?,Cj?):簇CiC_iCi?與CjC_jCj?的最近樣本距離;
- dcen(Ci,Cj)d_{cen}(C_i, C_j)dcen?(Ci?,Cj?):簇CiC_iCi?與CjC_jCj?的中心距離。
- 常用指標:
- DB指數(DBI):DBI=1k∑i=1kmaxj≠i(avg(Ci)+avg(Cj)dcen(μi,μj))DBI = \frac{1}{k} \sum_{i=1}^k max_{j \neq i} \left( \frac{avg(C_i) + avg(C_j)}{d_{cen}(\mu_i, \mu_j)} \right)DBI=k1?∑i=1k?maxj=i?(dcen?(μi?,μj?)avg(Ci?)+avg(Cj?)?)(值越小越好);
- Dunn指數(DI):DI=min1≤i≤k{minj≠i(dmin(Ci,Cj)max1≤l≤kdiam(Cl))}DI = min_{1 \leq i \leq k} \left\{ min_{j \neq i} \left( \frac{d_{min}(C_i, C_j)}{max_{1 \leq l \leq k} diam(C_l)} \right) \right\}DI=min1≤i≤k?{minj=i?(max1≤l≤k?diam(Cl?)dmin?(Ci?,Cj?)?)}(值越大越好)。
三、距離計算(聚類的基礎)
距離度量是聚類的核心,需滿足非負性、同一性、對稱性和直遞性,不同屬性類型需采用不同度量方式。
(一)常用距離
- 閔可夫斯基距離:dist(xi,xj)=(∑u=1n∣xiu?xju∣p)1/pdist(x_i, x_j) = \left( \sum_{u=1}^n |x_{iu} - x_{ju}|^p \right)^{1/p}dist(xi?,xj?)=(∑u=1n?∣xiu??xju?∣p)1/p,其中:
- p=2p=2p=2為歐氏距離(最常用);
- p=1p=1p=1為曼哈頓距離。
(二)屬性類型與距離度量
- 連續屬性:直接使用閔可夫斯基距離;
- 離散屬性:
- 有序屬性:可轉換為連續值后用閔可夫斯基距離;
- 無序屬性:用VDM距離:
VDMp(a,b)=∑i=1k∣mu,a,imu,a?mu,b,imu,b∣pVDM_p(a, b) = \sum_{i=1}^k \left| \frac{m_{u,a,i}}{m_{u,a}} - \frac{m_{u,b,i}}{m_{u,b}} \right|^pVDMp?(a,b)=i=1∑k??mu,a?mu,a,i???mu,b?mu,b,i???p
(mu,a,im_{u,a,i}mu,a,i?為第iii簇中屬性uuu取aaa的樣本數,mu,am_{u,a}mu,a?為屬性uuu取aaa的總樣本數);
- 混合屬性:結合閔可夫斯基距離和VDM:
MinkovDMp(xi,xj)=(∑連續屬性∣xiu?xju∣p+∑無序屬性VDMp(xiu,xju))1/pMinkovDM_p(x_i, x_j) = \left( \sum_{連續屬性} |x_{iu} - x_{ju}|^p + \sum_{無序屬性} VDM_p(x_{iu}, x_{ju}) \right)^{1/p}MinkovDMp?(xi?,xj?)=(連續屬性∑?∣xiu??xju?∣p+無序屬性∑?VDMp?(xiu?,xju?))1/p
四、原型聚類(基于原型的聚類)
原型聚類假設聚類結構可通過“原型”(如中心、概率分布)刻畫,通過迭代優化原型實現聚類。
(一)k均值算法(k-means)
- 核心思想:最小化簇內平方誤差E=∑i=1k∑x∈Ci∥x?μi∥22E = \sum_{i=1}^k \sum_{x \in C_i} \|x - \mu_i\|_2^2E=∑i=1k?∑x∈Ci??∥x?μi?∥22?(μi\mu_iμi?為簇CiC_iCi?的均值向量)。
- 算法步驟:
- 隨機選擇kkk個樣本作為初始均值向量{μ1,μ2,...,μk}\{\mu_1, \mu_2, ..., \mu_k\}{μ1?,μ2?,...,μk?};
- 迭代:
- 簇劃分:將每個樣本劃入距離最近的均值向量對應的簇;
- 更新均值:計算每個簇的新均值向量μi=1∣Ci∣∑x∈Cix\mu_i = \frac{1}{|C_i|} \sum_{x \in C_i} xμi?=∣Ci?∣1?∑x∈Ci??x;
- 終止:均值向量不再更新時停止。
- 特點:高效易實現,但對初始中心敏感,適用于凸形分布數據。
- 模型定義:混合分布pM(x)=∑i=1kαip(x∣μi,Σi)p_M(x) = \sum_{i=1}^k \alpha_i p(x | \mu_i, \Sigma_i)pM?(x)=∑i=1k?αi?p(x∣μi?,Σi?),其中αi\alpha_iαi?為混合系數(∑αi=1\sum \alpha_i = 1∑αi?=1),p(x∣μi,Σi)p(x | \mu_i, \Sigma_i)p(x∣μi?,Σi?)為第iii個高斯分布(均值μi\mu_iμi?,協方差Σi\Sigma_iΣi?)。
- 求解方法(EM算法):
- 初始化參數{αi,μi,Σi}\{\alpha_i, \mu_i, \Sigma_i\}{αi?,μi?,Σi?};
- 迭代(E步→M步):
- E步:計算樣本xjx_jxj?屬于第iii個成分的后驗概率γji=αip(xj∣μi,Σi)∑l=1kαlp(xj∣μl,Σl)\gamma_{ji} = \frac{\alpha_i p(x_j | \mu_i, \Sigma_i)}{\sum_{l=1}^k \alpha_l p(x_j | \mu_l, \Sigma_l)}γji?=∑l=1k?αl?p(xj?∣μl?,Σl?)αi?p(xj?∣μi?,Σi?)?;
- M步:更新參數αi=1m∑jγji\alpha_i = \frac{1}{m} \sum_j \gamma_{ji}αi?=m1?∑j?γji?,μi=∑jγjixj∑jγji\mu_i = \frac{\sum_j \gamma_{ji} x_j}{\sum_j \gamma_{ji}}μi?=∑j?γji?∑j?γji?xj??,Σi=∑jγji(xj?μi)(xj?μi)T∑jγji\Sigma_i = \frac{\sum_j \gamma_{ji}(x_j - \mu_i)(x_j - \mu_i)^T}{\sum_j \gamma_{ji}}Σi?=∑j?γji?∑j?γji?(xj??μi?)(xj??μi?)T?;
- 終止:似然函數收斂。
- 特點:靈活擬合復雜分布,可輸出樣本屬于各簇的概率,但計算復雜度高。
五、層次聚類(樹形結構聚類)
層次聚類通過逐層合并或拆分簇,形成樹形聚類結構,分為自底向上(聚合)和自頂向下(分拆)策略。
(一)AGNES算法(自底向上聚合)
- 核心思想:初始將每個樣本視為一個簇,迭代合并距離最近的兩個簇,直至達到預設簇數kkk。
- 簇距離度量:
- 最小距離:dmin(Ci,Cj)=minx∈Ci,z∈Cjdist(x,z)d_{min}(C_i, C_j) = min_{x \in C_i, z \in C_j} dist(x, z)dmin?(Ci?,Cj?)=minx∈Ci?,z∈Cj??dist(x,z);
- 最大距離:dmax(Ci,Cj)=maxx∈Ci,z∈Cjdist(x,z)d_{max}(C_i, C_j) = max_{x \in C_i, z \in C_j} dist(x, z)dmax?(Ci?,Cj?)=maxx∈Ci?,z∈Cj??dist(x,z);
- 平均距離:davg(Ci,Cj)=1∣Ci∣∣Cj∣∑x∈Ci∑z∈Cjdist(x,z)d_{avg}(C_i, C_j) = \frac{1}{|C_i||C_j|} \sum_{x \in C_i} \sum_{z \in C_j} dist(x, z)davg?(Ci?,Cj?)=∣Ci?∣∣Cj?∣1?∑x∈Ci??∑z∈Cj??dist(x,z)。
- 特點:生成層次化簇結構,便于可視化,但計算復雜度高(O(m2logm)O(m^2 log m)O(m2logm)),對噪聲敏感。
總結
聚類通過無監督方式揭示數據內在結構,性能可通過外部或內部指標評價。距離計算需根據屬性類型選擇(如連續屬性用歐氏距離,無序屬性用VDM)。原型聚類(k均值、高斯混合)高效且適用于大規模數據;層次聚類(AGNES)生成樹形結構,適合探索數據層次關系。實際應用中需根據數據分布和任務需求選擇算法。
上一章:機器學習08——集成學習
下一章:機器學習10——降維與度量學習
機器學習實戰項目:【從 0 到 1 落地】機器學習實操項目目錄:覆蓋入門到進階,大學生就業 / 競賽必備