上一章:机器学习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′=lCl=∅;
- 覆盖所有样本:D=∪l=1kClD = \cup_{l=1}^k C_lD=∪l=1kCl;
- 簇标记向量λ={λ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=1kmaxj=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≤kdiam(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∑kmu,amu,a,i−mu,bmu,b,ip
(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∈Cix;
- 终止:均值向量不再更新时停止。
- 特点:高效易实现,但对初始中心敏感,适用于凸形分布数据。
- 模型定义:混合分布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αip(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αlp(xj∣μl,Σl)αip(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γjixj,Σ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∈Cjdist(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∈Cjdist(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∈Cjdist(x,z)。
- 特点:生成层次化簇结构,便于可视化,但计算复杂度高(O(m2logm)O(m^2 log m)O(m2logm)),对噪声敏感。
总结
聚类通过无监督方式揭示数据内在结构,性能可通过外部或内部指标评价。距离计算需根据属性类型选择(如连续属性用欧氏距离,无序属性用VDM)。原型聚类(k均值、高斯混合)高效且适用于大规模数据;层次聚类(AGNES)生成树形结构,适合探索数据层次关系。实际应用中需根据数据分布和任务需求选择算法。
上一章:机器学习08——集成学习
下一章:机器学习10——降维与度量学习
机器学习实战项目:【从 0 到 1 落地】机器学习实操项目目录:覆盖入门到进阶,大学生就业 / 竞赛必备