文章目录
- 1.监督学习与无监督学习
- 2. 聚类分析
- 2.1簇的其他区别
- 2.2类型
- 2.2.1 基于中心的簇
- 2.2.2 基于连续性的簇
- 2.2.3 基于密度的簇
- 2.2.4 基于概念的簇
- 2.3 应用
- 2.4 三要素
- 3.距离函数
- 3.1 距离函数的要求
- 3.2标准化
- 3.3其他相似、不相似函数
- 4.评价指标
- 4.1外部指标(有参考模型)
- 4.2无参考模型(内部指标)
- 5 聚类算法
- 5.1k-均值聚类
- 收敛性
- k如何确定?
- 如何初始化K-means
- 预处理和后处理
- 局限性
- k-medoids
- 5.2GMM高斯混合模型和EM
- 参数学习:极大似然估计--EM
- EM
- EM收敛性保证
- 与k-means比较
- 5.3层次聚类
- 5.3.1 凝聚式(自底向上)
- 5.4基于密度的聚类DBSCAN
- 算法
- 如何确定超参数eps,minPts
- 其他算法
- 基于AutoEncoder
- 基于CDNN
1.监督学习与无监督学习
- 有监督学习
- 分类:y是类别标签
- 回归:y-连续值
- 排序:y是序数
- 无监督学习
- 密度估计:y密度
- 聚类:y类簇
- 维度约简、可视化:y是x的低纬表示
- 原因:
- 原始数据易得,标注数据难
- 节约内存和计算资源
- 减少噪声
- 有助于可解释的数据分析
- 经常作为监督学习的预处理步骤
k-均值聚类 | GMM | 层次聚类 | 基于密度的聚类 | |
---|---|---|---|---|
算法 | 随机中心,迭代更新簇中心 | EM求解;E步是软划分的k-means;M步不仅估计了均值还有协方差;属于所有簇概率均等时一样 | 树;凝聚式,分列式 | 连接性,最大性的点属于簇 |
局限性 | 不同尺寸、密度、非球形不可用;扰动影响大 | - | 贪心(拆分和合并不可逆);没有全局目标函数;对噪声和离群点敏感;难处理不同尺寸的簇和凸的簇;成链,误把大簇分裂 | 参数确定困难 ,不适合密度差异大的数据集;对变化的维度和高维数据不友好 |
损失函数 | 最小平方距离和 | 最小化负对数似然 | 没有优化一个全局的目标函数 | |
划分 | 点到簇的硬划分 | 从属关系的软划分 | 层次划分,拆分合并不可逆 | |
优点 | - | - | 不需要确定k,聚类结果可能对应着有意义的分类体系 | 不需要确定簇的数量;任意形状;对离群点稳定 |
超参数确定 | 间隔统计;交叉检验;簇的稳定性;非参数方法 | eps;minPts=k:同一个簇的点,到他们k最近邻的距离相同(画出来找) | ||
预处理 | 归一化;消除离群点 | |||
后处理 | 删除小簇;分裂远;合并近的 | |||
收敛 | 收敛(J单调下降) | 收敛 | ||
最优 | 局部极小 | 局部极小 | ||
假设 | 簇是球的且每个簇的概率相等(欧式距离、质心) | 簇是高斯分布,属于每个簇的概率不同,但每个簇都有可能,球或椭球形 |
2. 聚类分析
- 寻找样本中的簇,使得同一簇内样本相似,不同簇内样本不相似
- 目标:产生一个簇的集合
- 类型
- 基于划分的聚类(无嵌套)
- 层次聚类(有嵌套)
- 树形
- 三要素
- 定义远近
- 距离函数、相似度
- 距离函数要求
- 非负、同一、对称、传递性
- 常用距离函数
- 欧氏距离
- 马氏距离
- 尺度不一致:标准化
- 不一定有效果(可能反而不好)
- 相似度
- 簇内相似度
- 平均距离avg(C)=2∣c∣(∣c∣−1)Σ1≤i<j≤∣C∣dist(xi,xj)avg(C)=\frac{2}{|c|(|c|-1)}\Sigma_{1\leq i<j\leq |C|}dist(x_i,x_j)avg(C)=∣c∣(∣c∣−1)2Σ1≤i<j≤∣C∣dist(xi,xj)
- 最远距离diam(C)=max1≤i<j≤∣C∣dist(xi,xj)diam(C)=max_{1\leq i<j\leq |C|}dist(x_i,x_j)diam(C)=max1≤i<j≤∣C∣dist(xi,xj)
- 簇间相似度
- 最小距离KaTeX parse error: Undefined control sequence: \inC at position 38: …x_i \in C_i,x_j\̲i̲n̲C̲_j}dist(x_i,x_j…
- 中心点距离dcen(Ci,Cj)=dist(μi,μj),μi=1∣Ci∣Σxi∈Cixid_{cen}(C_i,C_j)=dist(\mu_i,\mu_j),\mu_i=\frac{1}{|C_i|}\Sigma_{x_i\in C_i}x_idcen(Ci,Cj)=dist(μi,μj),μi=∣Ci∣1Σxi∈Cixi
- 簇内相似度
- 评价聚类质量
- 评价函数(由定义出发
- 如何获得聚类的簇
- 如何表示簇
- 如何,如何设计划分和优化的算法,算法何时停止
- 定义远近
特性 | |
---|---|
基于中心的簇 | 距离自己中心近,其他中心远 |
基于邻接(连续)的簇 | 和簇内至少一个点距离最近 |
基于密度的簇 | 簇由高密度区域组成 |
基于概念的簇 | 同一簇共享某些性质 |
指标1 | 指标2 | 指标3 | |
---|---|---|---|
有参考模型(外部指标) | JC=aa+b+c,JC∈[0,1],JC↑,一致性↑JC=\frac{a}{a+b+c},\\JC\in[0,1],JC\uparrow,一致性\uparrowJC=a+b+ca,JC∈[0,1],JC↑,一致性↑ | FMI=aa+baa+c,FMI∈[0,1],FMI↑,一致性↑FMI=\sqrt{\frac{a}{a+b}\frac{a}{a+c}},\\FMI\in[0,1],FMI\uparrow,一致性\uparrowFMI=a+baa+ca,FMI∈[0,1],FMI↑,一致性↑ | RI=2(a+d)m(m−1),RI∈[0,1],RI↑,一致性↑RI=\frac{2(a+d)}{m(m-1)},\\RI\in[0,1],RI\uparrow,一致性\uparrowRI=m(m−1)2(a+d),RI∈[0,1],RI↑,一致性↑ |
无参考模型(内部指标 | * DBI=1kΣi=1kmaxi≠javg(Ci)+avg(Cj)dcen(μi,μj),DBI↓,质量↑DBI=\frac{1}{k}\Sigma_{i=1}^kmax_{i\neq j}\frac{avg(C_i)+avg(C_j)}{d_{cen}(\mu_i,\mu_j)}\\,DBI\downarrow,质量\uparrowDBI=k1Σi=1kmaxi=jdcen(μi,μj)avg(Ci)+avg(Cj),DBI↓,质量↑ | DI=min1≤i<j≤kdmin(Ci,Cj)max1≤l≤kdiam(Cl),DI↑,质量↑DI=min_{1\leq i< j\leq k}\frac{d_{min}(C_i,C_j)}{max_{1\leq l \leq k}diam(C_l)}\\,DI\uparrow,质量\uparrowDI=min1≤i<j≤kmax1≤l≤kdiam(Cl)dmin(Ci,Cj),DI↑,质量↑ | - |
2.1簇的其他区别
- 独占(Exclusive) vs. 非独占的(non-exclusive)
- 在非独占的类簇中, 样本点可以属于多个簇
- 模糊(Fuzzy) vs. 非模糊的(non-fuzzy)
- 在模糊聚类中, 一个样本点以一定权重属于各个聚类簇
- 权重和为1
- 概率聚类有相似的特性
- 部分(Partial) vs. 完备( complete )
- 在一些场景, 我们只聚类部分数据
- 异质(Heterogeneous) vs. 同质(homogeneous)
- 簇的大小、形状和密度的是否有很大的差别
2.2类型
- 基于中心的簇
- 基于邻接的簇
- 基于密度的簇
- 基于概念的簇
2.2.1 基于中心的簇
- 簇内的点
- 距离其他中心远
- 距离自己中心近
- 中心:
- 质心(所有点的平均)或
- 中心点表示(有代表性的点
2.2.2 基于连续性的簇
- 基于连续性的簇:相比其他任何簇的点,每个点都至少和所属簇的某一个点更近
2.2.3 基于密度的簇
- 基于密度的簇:簇是有高密的区域形成的,簇之间是一些低密度的区域
2.2.4 基于概念的簇
- 同一簇共享某种性质,这一性质是从整个结合推导出来的
- 基于概念的簇难检测,它通常不是:
- • 基于中心
- • 基于关系
- • 基于密度
2.3 应用
- 图像分割
- 人类种族分析
- 复杂网络分析
- 用户画像
- 商品分析
- 文本分析
- 计算生物学
2.4 三要素
- 定义远近
- 距离函数、相似度
- 评价聚类质量
- 评价函数(由定义出发
- 如何获得聚类的簇
- 如何表示簇
- 如何,如何设计划分和优化的算法,算法何时停止
3.距离函数
- 如何衡量样本之间的“远近”?
- 文档聚类时,我们如何衡量文档间远近?
- 图像分割时,我们如何衡量像素点之间的远近?
- 用户画像时,我们如何衡量用户之间的远近?
- 我们需要量化这些样本,并计算它们之间的距离
- 距离(Distance)/相似(Similarity)/不相似(Dissimilarity)/邻近(Proximity)函数的选择与应用相关
- 需要考虑特征的类型
- 类别,序值,数值
- 可以从数据直接学习相似/距离函数
- 距离函数要求
- 非负、同一、对称、传递性
- 常用距离函数
- 欧氏距离
- 马氏距离
- 尺度不一致:标准化
- 不一定有效果(可能反而不好)
3.1 距离函数的要求
- 函数dist() 是一种距离度量当且仅当:
- 𝑑𝑖𝑠𝑡 𝑥𝑖, 𝑥𝑗 ≥ 0 (非负性)
- 𝑑𝑖𝑠𝑡 𝑥𝑖, 𝑥𝑗 = 0 𝑖𝑓𝑓𝑥𝑖 = 𝑥𝑗 (同一性)
- 𝑑𝑖𝑠𝑡 𝑥𝑖, 𝑥𝑗 = 𝑑𝑖𝑠𝑡 𝑥𝑗, 𝑥𝑖 (对称性)
- 𝑑𝑖𝑠𝑡 𝑥𝑖, 𝑥𝑗 ≤ 𝑑𝑖𝑠𝑡 𝑥𝑖, 𝑥𝑘 +𝑑𝑖𝑠𝑡 𝑥𝑘, 𝑥𝑗 (直递性)
- Minkowski 距离:distmk=(Σu=1n∣xiu−xju∣p)1pdist_{mk}=(\Sigma_{u=1}^n|x_{iu}-x_{ju}|^p)^{\frac{1}{p}}distmk=(Σu=1n∣xiu−xju∣p)p1
- p=2 Euclidean 距离: :distmk≝disteddist_{mk} ≝ dist_{ed}distmk=defdisted
- p=1 Manhattan 距离: :distmk≝distmandist_{mk} ≝ dist_{man}distmk=defdistman
- 这类距离函数对特征的旋转和平移变换不敏感,对数值尺度敏感
- 如果样本特征值尺度不一致,将数据标准化
3.2标准化
- xij=Z(xij)=xij−xjˉσj,第j个特征的方差σj,均值xjˉx_{ij}=Z(x_{ij})=\frac{x_{ij}-\bar{x_j}}{\sigma_j},第j个特征的方差\sigma_j,均值\bar{x_j}xij=Z(xij)=σjxij−xjˉ,第j个特征的方差σj,均值xjˉ
- (0,1)
- 其他标准化方法
- min-max
- decimal-scaling
- 标准化不一定起效果
3.3其他相似、不相似函数
- 针对二值数据的Jaccard 系数
- 刻画变量之间的相关性系数作为相似性度量
- 无序属性上的值差异性度量
- 向量间的余弦相似度(Cosine similarity)
4.评价指标
- 有效性指标
指标1 | 指标2 | 指标3 | |
---|---|---|---|
有参考模型(外部指标) | JC=aa+b+c,JC∈[0,1],JC↑,一致性↑JC=\frac{a}{a+b+c},\\JC\in[0,1],JC\uparrow,一致性\uparrowJC=a+b+ca,JC∈[0,1],JC↑,一致性↑ | FMI=aa+baa+c,FMI∈[0,1],FMI↑,一致性↑FMI=\sqrt{\frac{a}{a+b}\frac{a}{a+c}},\\FMI\in[0,1],FMI\uparrow,一致性\uparrowFMI=a+baa+ca,FMI∈[0,1],FMI↑,一致性↑ | RI=2(a+d)m(m−1),RI∈[0,1],RI↑,一致性↑RI=\frac{2(a+d)}{m(m-1)},\\RI\in[0,1],RI\uparrow,一致性\uparrowRI=m(m−1)2(a+d),RI∈[0,1],RI↑,一致性↑ |
无参考模型(内部指标 | * DBI=1kΣi=1kmaxi≠javg(Ci)+avg(Cj)dcen(μi,μj),DBI↓,质量↑DBI=\frac{1}{k}\Sigma_{i=1}^kmax_{i\neq j}\frac{avg(C_i)+avg(C_j)}{d_{cen}(\mu_i,\mu_j)}\\,DBI\downarrow,质量\uparrowDBI=k1Σi=1kmaxi=jdcen(μi,μj)avg(Ci)+avg(Cj),DBI↓,质量↑ | DI=min1≤i<j≤kdmin(Ci,Cj)max1≤l≤kdiam(Cl),DI↑,质量↑DI=min_{1\leq i< j\leq k}\frac{d_{min}(C_i,C_j)}{max_{1\leq l \leq k}diam(C_l)}\\,DI\uparrow,质量\uparrowDI=min1≤i<j≤kmax1≤l≤kdiam(Cl)dmin(Ci,Cj),DI↑,质量↑ | - |
4.1外部指标(有参考模型)
- 参考模型
- Jaccard系数
- JC=aa+b+c,JC∈[0,1],JC↑,一致性↑JC=\frac{a}{a+b+c},JC\in[0,1],JC\uparrow,一致性\uparrowJC=a+b+ca,JC∈[0,1],JC↑,一致性↑
- FM指数
- FMI=aa+baa+c,FMI∈[0,1],FMI↑,一致性↑FMI=\sqrt{\frac{a}{a+b}\frac{a}{a+c}},FMI\in[0,1],FMI\uparrow,一致性\uparrowFMI=a+baa+ca,FMI∈[0,1],FMI↑,一致性↑
- Rand指数
- RI=2(a+d)m(m−1),RI∈[0,1],RI↑,一致性↑RI=\frac{2(a+d)}{m(m-1)},RI\in[0,1],RI\uparrow,一致性\uparrowRI=m(m−1)2(a+d),RI∈[0,1],RI↑,一致性↑
4.2无参考模型(内部指标)
- 质量好:簇内相似度高,簇外相似度低
- 簇内相似度
- 平均距离avg(C)=2∣c∣(∣c∣−1)Σ1≤i<j≤∣C∣dist(xi,xj)avg(C)=\frac{2}{|c|(|c|-1)}\Sigma_{1\leq i<j\leq |C|}dist(x_i,x_j)avg(C)=∣c∣(∣c∣−1)2Σ1≤i<j≤∣C∣dist(xi,xj)
- 最远距离diam(C)=max1≤i<j≤∣C∣dist(xi,xj)diam(C)=max_{1\leq i<j\leq |C|}dist(x_i,x_j)diam(C)=max1≤i<j≤∣C∣dist(xi,xj)
- 簇间相似度
- 最小距离KaTeX parse error: Undefined control sequence: \inC at position 38: …x_i \in C_i,x_j\̲i̲n̲C̲_j}dist(x_i,x_j…
- 中心点距离dcen(Ci,Cj)=dist(μi,μj),μi=1∣Ci∣Σxi∈Cixid_{cen}(C_i,C_j)=dist(\mu_i,\mu_j),\mu_i=\frac{1}{|C_i|}\Sigma_{x_i\in C_i}x_idcen(Ci,Cj)=dist(μi,μj),μi=∣Ci∣1Σxi∈Cixi
- DB指数
- DBI=1kΣi=1kmaxi≠javg(Ci)+avg(Cj)dcen(μi,μj),DBI↓,质量↑DBI=\frac{1}{k}\Sigma_{i=1}^kmax_{i\neq j}\frac{avg(C_i)+avg(C_j)}{d_{cen}(\mu_i,\mu_j)},DBI\downarrow,质量\uparrowDBI=k1Σi=1kmaxi=jdcen(μi,μj)avg(Ci)+avg(Cj),DBI↓,质量↑
- Dumn指数
- DI=min1≤i<j≤kdmin(Ci,Cj)max1≤l≤kdiam(Cl),DI↑,质量↑DI=min_{1\leq i< j\leq k}\frac{d_{min}(C_i,C_j)}{max_{1\leq l \leq k}diam(C_l)},DI\uparrow,质量\uparrowDI=min1≤i<j≤kmax1≤l≤kdiam(Cl)dmin(Ci,Cj),DI↑,质量↑
5 聚类算法
5.1k-均值聚类
- 输入:数据𝐷 = 𝐱1, 𝐱2, ⋯ , 𝐱𝑁 ,簇数目K
随机选取K个种子数据点(seeds)作为K个簇中心
repeat foreach 𝐱 ∈ 𝑫 do计算𝐱与每一个簇中心的距离将𝐱指配到距离最近的簇中心endfor用当前的簇内点重新计算K个簇中心位置until 当前簇中心未更新
K均值(K-means)聚类:基于划分的聚类方法
- 如何表示簇?
- 每个簇都用其质心(centroid)或者叫原型(prototype)μk\mu_kμk表示
- 如何划分节点?
- 距离使用欧式距离进行度量
- 每个节点都划分到最近的那个质心的簇中
- rikr_{ik}rik ∈{0,1}为从属度,指示样本𝑥𝑖是否属于簇𝑘,且Σk=1Krik=1\Sigma_{k=1}^Kr_{ik}=1Σk=1Krik=1
- 优化目标:
- 损失函数 J=Σi=1nΣk=1Krik∣∣xi−μk∣∣2J=\Sigma_{i=1}^n\Sigma_{k=1}^Kr_{ik}||x_i-\mu_k||^2J=Σi=1nΣk=1Krik∣∣xi−μk∣∣2, 平方误差和(SSE)
- 如何优化(chicken and egg problem)
- 如果中心点已知,我们可以对所有点进行划分
- 固定μk=ΣirikxiΣirik,最小化J\mu_{k}=\frac{\Sigma_ir_{ik}x_i}{\Sigma_ir_{ik}},最小化Jμk=ΣirikΣirikxi,最小化J
- 如果从属关系已知,我们可以计算中心点
- 固定rik,最小化Jr_{ik},最小化Jrik,最小化J
- 迭代计算
- 如果中心点已知,我们可以对所有点进行划分
收敛性
- k-means 是在损失函数上进行坐标下降(coordinate descent)的优化
- 损失函数J 单调下降, 所以损失函数值会收敛, 所以聚类结果也会收敛
- k-means 有可能会在不同聚类结果间震荡,但是在实际中较少发生
- 局部极小:J 是非凸的(non-convex), 所以损失函数J上应用坐标下降法不能够保证收敛到全局的最小值. 一个常见的方法是运行k-means多次,选择最好的结果(局部极小
k如何确定?
- k是超参数
- J随k增大而递减
- 方法:
- 间隔统计(会有拐点)(分析随k上升,J下降的间隔
- 交叉检验(分两个子集,一个估计中心,一个求J
- 簇的稳定性:通过重采样和分裂,度量簇的收敛程度
- 非参数方法:为k加一个先验概率
如何初始化K-means
- 不同的初始化选择造成不同的结果
- 即便存在k个真实的簇,正好选到k个簇的中心的概率也小
- 启发式
- 随机选择k个数据点作为中心点
- 选择第i+1个中心时,选择与距离之前选出的中心最远的点
预处理和后处理
- 预处理
- 归一化
- 消除离群点
- 后处理
- 删除小的簇:可能代表离群点
- 分裂松散的簇:簇内节点距离和大
- 合并距离近的簇
局限性
- 尺寸不同、密度不同、非球形时,得不到理想的结果
- 扰动影响大
- 消除:
- 使用更大数量的簇,k增加
- 几个小的簇表示一个真实的簇
- 使用基于密度的方法
- 离群点–>自己成了一个簇
- 尺寸不同
- 密度不同
- 非球形
- 离群点带来的问题
k-medoids
- 不用均值,而是用中心点
- 均值作为原型容易受到影响
- 部分情况只知道数据样本见得相似矩阵
- 只需要数据间的相似度量就可迭代计算
- 只需要数据间的相似度量就可迭代计算
5.2GMM高斯混合模型和EM
- 概率解释: 假设有K个簇,每一个簇服从高斯分布,以概率π𝑘随机选择一个簇 k ,从其分布中采样出一个样本点,如此得到观测数据
- N个样本点𝒙的似然函数(Likelihood)
- p(x;θ)=ΠiNΣk=1KπkN(xi∣μk,Σk),其中Σkπk=1,0≤πk≤1p(x;\theta)=\Pi_i^N\Sigma_{k=1}^K\pi_kN(x_i|\mu_k,\Sigma_k),其中\Sigma_k\pi_k=1,0\leq \pi_k\leq 1p(x;θ)=ΠiNΣk=1KπkN(xi∣μk,Σk),其中Σkπk=1,0≤πk≤1
- 引入隐变量,指示所属类,k维独热表示
- p(zk=1)=πkp(z_k=1)=\pi_kp(zk=1)=πk
- p(xi∣z)=ΠkKN(xi∣μk,Σk)zkp(x_i|z)=\Pi_k^KN(x_i|\mu_k,\Sigma_k)^{z_k}p(xi∣z)=ΠkKN(xi∣μk,Σk)zk
- p(xi∣zk=1)=N(xi∣μk,Σk)p(x_i|z_k=1)=N(x_i|\mu_k,\Sigma_k)p(xi∣zk=1)=N(xi∣μk,Σk)
- p(xi)=Σzp(xi∣z)p(z)=Σk=1KπkN(xi∣μk,Σk)p(x_i)=\Sigma_zp(x_i|z)p(z)=\Sigma_{k=1}^K\pi_kN(x_i|\mu_k,\Sigma_k)p(xi)=Σzp(xi∣z)p(z)=Σk=1KπkN(xi∣μk,Σk)
- 从属度(可以看做,xi属于第k个簇的解释
- γ(zik)=p(zik=1∣xi)=p(zik=1)p(xi∣zk=1)Σk=1Kp(zik=1)p(xi∣zk=1)=πkN(xi∣μk,Σk)Σk=1KπkN(xi∣μk,Σk)\gamma(z_{ik})\\=p(z_{ik=1}|x_i)\\=\frac{p(z_{ik}=1)p(x_i|z_k=1)}{\Sigma_{k=1}^Kp(z_{ik}=1)p(x_i|z_k=1)}\\=\frac{\pi_kN(x_i|\mu_k,\Sigma_k)}{\Sigma_{k=1}^K\pi_kN(x_i|\mu_k,\Sigma_k)}γ(zik)=p(zik=1∣xi)=Σk=1Kp(zik=1)p(xi∣zk=1)p(zik=1)p(xi∣zk=1)=Σk=1KπkN(xi∣μk,Σk)πkN(xi∣μk,Σk)
参数学习:极大似然估计–EM
- 极大似然估计
- 难:log里面有求和,所有参数耦合
- 似然函数取最大值时满足的条件:log(P(x∣θ)对μk求导log(P(x|\theta)对\mu_k求导log(P(x∣θ)对μk求导
- 0=−Σi=1NπkN(xi∣μk,Σk)Σk=1KπkN(xi∣μk,Σk)Σk(xi−μk)0=-\Sigma_{i=1}^N\frac{\pi_kN(x_i|\mu_k,\Sigma_k)}{\Sigma_{k=1}^K\pi_kN(x_i|\mu_k,\Sigma_k)}\Sigma_k(x_i-\mu_k)0=−Σi=1NΣk=1KπkN(xi∣μk,Σk)πkN(xi∣μk,Σk)Σk(xi−μk)
- μk=Σiγ(zik)xiγ(zik)\mu_k=\frac{\Sigma_i\gamma(z_{ik})x_i}{\gamma(z_{ik})}μk=γ(zik)Σiγ(zik)xi
- πk=Σiγ(zik)N\pi_k=\frac{\Sigma_i\gamma(z_{ik})}{N}πk=NΣiγ(zik)
- Σk=Σiγ(zik)(xi−μk)(xi−μk)Tγ(zik)\Sigma_k=\frac{\Sigma_i\gamma(z_{ik})(x_i-\mu_k)(x_i-\mu_k)^T}{\gamma(z_{ik})}Σk=γ(zik)Σiγ(zik)(xi−μk)(xi−μk)T
- 这不是封闭解–》EM
- E:给定当前参数估计值,求后验概率γ(zik)=E(zik)\gamma(z_{ik})=E(z_{ik})γ(zik)=E(zik)
- M:依据后验概率γ(zik)\gamma(z_{ik})γ(zik),求参数估计μk、πk、Σk\mu_k、\pi_k、\Sigma_kμk、πk、Σk
- 迭代收敛到局部极小
- 0=−Σi=1NπkN(xi∣μk,Σk)Σk=1KπkN(xi∣μk,Σk)Σk(xi−μk)0=-\Sigma_{i=1}^N\frac{\pi_kN(x_i|\mu_k,\Sigma_k)}{\Sigma_{k=1}^K\pi_kN(x_i|\mu_k,\Sigma_k)}\Sigma_k(x_i-\mu_k)0=−Σi=1NΣk=1KπkN(xi∣μk,Σk)πkN(xi∣μk,Σk)Σk(xi−μk)
EM
- 通用EM
- 目标函数:极大似然函数logP(X∣θ)=logΣzP(x,z∣θ)logP(X|\theta)=log\Sigma_zP(x,z|\theta)logP(X∣θ)=logΣzP(x,z∣θ)
- 用于:不完整数据的对数似然函数
- 不知Z的数据,只知道Z的后验分布P(z∣x,θold)P(z|x,\theta^{old})P(z∣x,θold)
- 考虑其期望Q(θ,θold)=Ep(z∣x,θold)(logP(x,z∣θ))Q(\theta,\theta^{old})=E_{p(z|x,\theta^{old})}(log P(x,z|\theta))Q(θ,θold)=Ep(z∣x,θold)(logP(x,z∣θ))
- 最大化期望θnew=argmaxθQ(θ,θold)\theta^{new}=argmax_\theta Q(\theta,\theta^{old})θnew=argmaxθQ(θ,θold)
- E:求P(z∣x,θold)P(z|x,\theta^{old})P(z∣x,θold)
- M:θnew=argmaxθQ(θ,θold)\theta^{new}=argmax_\theta Q(\theta,\theta^{old})θnew=argmaxθQ(θ,θold)
- why是启发式的,但却存在似然函数?
- Q(θ,θold)=Ep(z∣x,θold)(logP(x,z∣θ))=p(x;θ)Q(\theta,\theta^{old})=E_{p(z|x,\theta^{old})}(log P(x,z|\theta))=p(x;\theta)Q(θ,θold)=Ep(z∣x,θold)(logP(x,z∣θ))=p(x;θ)
- why是启发式的,但却存在似然函数?
- 完整数据和不完整数据的比较
- 不完整数据:logp(x)=ΣilogΣzp(xi∣z)p(z)=ΣilogΣk=1KπkN(xi∣μk,Σk)logp(x)=\Sigma_ilog \Sigma_zp(x_i|z)p(z)=\Sigma_ilog \Sigma_{k=1}^K\pi_kN(x_i|\mu_k,\Sigma_k)logp(x)=ΣilogΣzp(xi∣z)p(z)=ΣilogΣk=1KπkN(xi∣μk,Σk)
- 不完整数据中,参数之间是耦合的,不存在封闭解
- 完整数据
- logp(x,z∣θ)=logp(z∣θ)p(x∣z,θ)=ΣiΣkzik(logπk+logN(xi∣μk,Σk))logp(x,z|\theta)=logp(z|\theta)p(x|z,\theta)=\Sigma_i\Sigma_k z_{ik}(log\pi_k+logN(x_i|\mu_k,\Sigma_k))logp(x,z∣θ)=logp(z∣θ)p(x∣z,θ)=ΣiΣkzik(logπk+logN(xi∣μk,Σk))
- Ez(logp(x,z∣θ))=ΣiΣkE(zik)(logπk+logN(xi∣μk,Σk))=ΣiΣkγ(zik)(logπk+logN(xi∣μk,Σk))E_z(logp(x,z|\theta))\\=\Sigma_i\Sigma_kE(z_{ik})(log\pi_k+logN(x_i|\mu_k,\Sigma_k))\\=\Sigma_i\Sigma_k\gamma(z_{ik})(log\pi_k+logN(x_i|\mu_k,\Sigma_k))Ez(logp(x,z∣θ))=ΣiΣkE(zik)(logπk+logN(xi∣μk,Σk))=ΣiΣkγ(zik)(logπk+logN(xi∣μk,Σk))
EM收敛性保证
- 目标:最大化P(x∣θ)=Σzp(x,z∣θ)P(x|\theta)=\Sigma_zp(x,z|\theta)P(x∣θ)=Σzp(x,z∣θ)
- 直接优化P(x∣θ)P(x|\theta)P(x∣θ)很困难,但优化完整数据的p(x,z∣θ)p(x,z|\theta)p(x,z∣θ)容易
- 证明
- 分解
- 对任意分布q(z),下列分解成立
- lnp(x∣θ)=L(q,θ)+KL(q∣∣p)其中,L(q,θ)=Σzq(z)ln(p(x,z∣θ)q(z))KL(q∣∣p)=−Σzq(z)ln(p(z∣x,θ)q(z))KL(q∣∣p)≥0,L(q,θ)是lnp(x∣θ)的下界lnp(x|\theta)=L(q,\theta)+KL(q||p)\\其中,\\L(q,\theta)=\Sigma_zq(z)ln(\frac{p(x,z|\theta)}{q(z)})\\KL(q||p)=-\Sigma_zq(z)ln(\frac{p(z|x,\theta)}{q(z)})\\KL(q||p)\geq0,L(q,\theta)是lnp(x|\theta)的下界lnp(x∣θ)=L(q,θ)+KL(q∣∣p)其中,L(q,θ)=Σzq(z)ln(q(z)p(x,z∣θ))KL(q∣∣p)=−Σzq(z)ln(q(z)p(z∣x,θ))KL(q∣∣p)≥0,L(q,θ)是lnp(x∣θ)的下界
- E:最大化L(q,θ),q(z)=P(z∣x,θold)最大化L(q,\theta),\\q(z)=P(z|x,\theta^{old})最大化L(q,θ),q(z)=P(z∣x,θold)
- M:原来的下界L(q,θ)=ΣzP(z∣x,θold)ln(p(x,z∣θ)q(z))=Q(θ,θold)+const−−−正好是期望M:原来的下界L(q,\theta)=\Sigma_zP(z|x,\theta^{old})ln(\frac{p(x,z|\theta)}{q(z)})=Q(\theta,\theta^{old})+const---正好是期望M:原来的下界L(q,θ)=ΣzP(z∣x,θold)ln(q(z)p(x,z∣θ))=Q(θ,θold)+const−−−正好是期望
- 下界提升了
与k-means比较
- 高斯混合模型的E步是一个软划分版本的 K-means. 𝑟𝑖𝑘 ∈ [0,1]
- 高斯混合模型的M步估计除了估计均值外还估计协方差矩阵
- 当所有π𝑘 相等,Σk=δ2I,当δ→0,γik→0,1\Sigma_k=\delta^2I,当\delta\rightarrow 0,\gamma_{ik}\rightarrow{0,1}Σk=δ2I,当δ→0,γik→0,1,那么两个方
法是一致的
5.3层次聚类
-
产生树形嵌套的聚类簇
- 可以被可视化为树状图(dendrogram)
- 树形的示意图,记录了簇合并或分割的序列
-
优点
-
不需要提前假定聚类的簇数
- 通过选择树状图的某一层可以获得任意簇数量的聚类结构
- 用户可以在层次化的聚类中选择一个分割,得到一个最自然的聚类结果( 例如,各个簇的簇间相似性高于一定阈值)
-
聚类结果可能对应着有意义的分类体系
- 例如在生物科学中 (e.g., 门纲目科, 人类种系, …)
-
分类
- 自底向上(凝聚式): 递归的合并相似度最高/距离最近的两个簇
- 自顶向下 (分列式): 递归地分裂最不一致的簇(例如:具有最大直径的簇)
凝聚式 | 分列式 | |
---|---|---|
更流行 | ||
近似程度 | ||
更流行 | ||
更流行 |
5.3.1 凝聚式(自底向上)
- 相较于分列式,凝聚式是更加流行的层次聚类技术
- 基本算法非常直观
- 关键是如何计算簇之间的近似程度(proximity ) →不同的定义簇间距离的方
法,将得到不同的聚类算法 - 算法
- 起始状态
- 一个点一个类
- 中间过程
- 经过一些合并步骤后,可以得到一些簇
- 合并最近的两个簇(C2,C5),并更新相似度矩阵–如何更新?
- 起始状态
- 缺点:
- 贪心: 一旦簇被合并或者拆分,过程不可逆
- 没有优化一个全局的目标函数
- 不同方法存在一个或多个以下问题:
- 对噪声和离群点敏感
- 比较难处理不同尺寸的簇和凸的簇
- 成链, 误把大簇分裂
- 相似度矩阵如何更新?
- 如何定义簇间相似度
优点 | 缺点 | |
---|---|---|
最小距离(min) | 可形成非球形、非凸的簇 | 链式效应 |
最大距离(max) | 优点:对噪声更加有鲁棒性(不成链) | 趋向于拆开大的簇,偏好球形簇 |
平均距离(group average) | 折中 | |
中心点距离(distance between centroids) | - | 反向效应(偶棉合并的簇间距离可能比之前合并的簇的簇间距离更近) |
ward’s方法试用平方误差 | 两个簇的相似性基于两个簇融合后的平方误差的增加;偏向球形簇k-means的层次化版本(可用于初始化k-means) | - |
5.4基于密度的聚类DBSCAN
- 概念
- 密度=给定半径(eps)内点的个数
- 核心点:密度大于minPts的点
- 边界点:密度少于minPts,但半径内的点都在某个核心点的范围内
- 噪声点:此外的点
- 点q由p密度可达:连接两个点的路径上所有的点都是核心点
- 如果p 是核心点,那么由它密度可达的点形成一个簇
- 点q 和点p 是密度相连的,如果存在点o 从其密度可达点q 和点p(间接抵达)
- 聚类的簇满足以下两个性质:
- 连接性:簇内的任意两点点是密度相连的;
- 最大性:如果一个点从一个簇中的任意一点密度可达,那么该点属于该簇
算法
如何确定超参数eps,minPts
- 直观想法:同一个簇内的点,它们第k个最近邻大约相同的距离。
- 噪声点到其第k最近邻距离较远
- 方法:画出每个点到其第k最近邻的距离
其他算法
◼聚类公平性
• 意义:聚类主体与人相关
• 多种公平性定义
• 多种聚类算法下的公平性
◼Multi-View数据聚类
• 数据来自多个源
• 数据的属性不一致
• 例如:text + image + voice
◼聚类算法的加速
• 例如DBSCAN++:减少密度计算量,提
升算法应用速度
• 提高密度聚类并行性
基于AutoEncoder
- Deep Embedding Network(DEN):AE加入正则学习更适合的表示
- 步骤:利用AE对原是数据降维,再利用k-means聚类学到的表示
- 局部性保持正则项:聚类𝑥𝑖最近的点距离不变
- 组稀疏正则项:表示分为多组,只有部分组激活
- Deep Embedded Clustering(DEC)是一个典型的基于无监督的深度神经网络聚类算法
- 步骤
- 先在AE预训练,采用encoder参数进行初始化
- 利用聚类损失进行训练,利用自我训练目标
基于CDNN
网络仅仅通过聚类损失进行调节,网络可以使CNN,FCN,DBN等
[参考文献]
1.国科大prml课程郭嘉丰老师ppt