【数据挖掘】高斯混合模型 ( 与 K-Means 每个步骤对比 | 初始参数设置 | 计算概率 | 计算平均值参数 | 计算方差参数 | 计算高斯分布概率参数 | 算法终止条件 )
文章目录
- I . 高斯混合模型 ( 样本 -> 模型 )
- II . 高斯混合模型 ( 模型 -> 样本 )
- III . 高斯混合模型 与 K-Means 迭代过程对比
- IV . 高斯混合模型 聚类分析 步骤 ( 1 ) 设置参数值
- V . 高斯混合模型 聚类分析 步骤 ( 2 ) 计算概率
- VI . 高斯混合模型 参数分析 : 111 个样本概率 与 kkk 个聚类分组
- VII . 高斯混合模型 参数分析 : nnn 个样本概率 与 111 个聚类分组
- VIII . 高斯混合模型 聚类分析 步骤 ( 3 ) 更新参数 平均值 μi\mu_iμi 参数
- IX . 高斯混合模型 平均值 μi\mu_iμi 参数 的本质分析
- X . 高斯混合模型 聚类分析 步骤 ( 3 ) 更新参数 方差 Σi\Sigma_iΣi 参数
- XI . 高斯混合模型 聚类分析 步骤 ( 3 ) 更新参数 概率 ωi\omega_iωi 参数
- XII . 高斯混合模型 聚类分析 算法终止条件
I . 高斯混合模型 ( 样本 -> 模型 )
根据数据训练模型 : 目的是要 得到 高斯混合模型 的参数值 ;
① 已知条件 : 给定数据集样本 nnn 个 , 将这些样本分成 kkk 个聚类分组 ;
② 最终目的 : 使用 高斯混合模型 ( 参数未知 ) , 对这 nnn 个样本进行聚类分析 , 分析的过程就是确定 高斯混合模型的 参数值 ;
③ 高斯分布参数 : 每个聚类分组的样本都是符合 高斯分布 的 , 根据样本可以得到其 高斯分布的参数 , 均值 μi\mu_iμi , 方差 Σi\Sigma_iΣi ;
④ 每个聚类分组的未知的参数 : 均值 μi\mu_iμi , 方差 Σi\Sigma_iΣi , 生成概率 ωi\omega_iωi ;
⑤ 未知参数总数 : 每个高斯分布 ( 聚类分组 ) 都有 三个 未知参数 , 整个 高斯混合模型有 3×k3 \times k3×k 个未知参数 ;
⑥ ωi\omega_iωi 参数含义 : 第 iii 个样本属于某个聚类分组的概率 ;
如 : ω3=0.7\omega_3 = 0.7ω3=0.7 , 第 333 个样本能分配到某个聚类分组 ( 高斯模型 ) 中的概率是 70%70\%70% ;
II . 高斯混合模型 ( 模型 -> 样本 )
根据模型生成数据 : 目的是要得到 高斯混合模型 中每个 高斯模型 ( 聚类分组 ) 的 多个样本值 ;
① 已知条件 : 已知 高斯混合模型 , 所有参数值 , 参数分组 kkk 个 ;
② 已知的参数 : 高斯混合模型 已知 , 高斯混合模型的所有的参数 均值 μi\mu_iμi , 方差 Σi\Sigma_iΣi , 生成概率 ωi\omega_iωi , 都已知 , 3×k3 \times k3×k 个参数已知 ;
③ 生成单个 高斯分布 ( 聚类分组 ) 的 多个 样本数据 : 根据 高斯分布 函数 , 即知道其 均值 μi\mu_iμi , 方差 Σi\Sigma_iΣi 参数 , 可以生成该聚类分组的样本 ;
④ 生成 整个 数据集 ( 多个 高斯分布 / 聚类分组 ) : 根据 高斯混合分布 模型 , 生成 kkk 个聚类分组的样本 , 即所有的 nnn 个数据 ;
⑤ ωi\omega_iωi 参数含义 : 根据 该聚类分组的 高斯分布模型 能正确生成该 样本 iii 的概率 ;
如 : ω3=0.7\omega_3 = 0.7ω3=0.7 , 说明 在某个聚类分组 , 使用高斯模型 , 该模型的 均值 μ3\mu_3μ3 , 方差 Σ3\Sigma_3Σ3 参数已知 , 正确生成第 333 个样本的概率是 70%70\%70%
III . 高斯混合模型 与 K-Means 迭代过程对比
1 . 初始设定 : kkk 个中心点 ( K-Means ) , kkk 组参数 ( 高斯混合模型 ) ;
① K-Means 初始化中心点 : 第一次迭代时 , 需要指定初始的 kkk 个聚类的中心点 ;
② 高斯混合模型 初始化参数 : 第一次迭代时 , 需要指定初始的 kkk 组参数 , 均值 μi\mu_iμi , 方差 Σi\Sigma_iΣi , 生成概率 ωi\omega_iωi , 共有 3×k3 \times k3×k 个 ;
2 . 聚类依据计算 : 距离 ( K-Means ) , 概率 ( 高斯混合模型 ) ;
① K-Means 计算距离 : 计算每个样本 与 每个 中心点 的距离 , 样本个数有 nnn 个 , 中心点个数 ( 聚类个数 ) 有 kkk 个 , 总共需要计算 n×kn \times kn×k 个距离 ;
② 高斯混合模型 计算概率 : 计算每个样本 属于 每个聚类分组的概率 , 样本个数有 nnn 个 , 聚类 有 kkk 个 , 总共需要计算 n×kn \times kn×k 个概率 ;
3 . 聚类分组 :
① K-Means 根据距离分组 : 每个样本都有与 kkk 个中心点的距离 , 取距离最小的那个中心点 , 将该样本分到该中心点对应的聚类分组中 ;
② 高斯混合模型 聚类概率 : 这里不需要分组 , 每个样本都有 一组 属于 kkk 个分组的概率值 ; 每个样本都属于所有的聚类分组 , 但是概率大小不一样 , 如 , 99%99\%99% 概率属于聚类 111 , 1%1\%1% 概率属于聚类 222 , 0%0\%0% 概率属于其它聚类 ;
4 . 硬指派 与 软指派 : K-Means 属于硬指派 , 必须为样本指派一个聚类分组 ; 高斯混合模型 属于软指派 , 每个样本都属于所有的聚类分组 , 只是概率大小不同 ;
IV . 高斯混合模型 聚类分析 步骤 ( 1 ) 设置参数值
参数初始值设置 :
① 初始状态 ( 第一次迭代 ) : 先给出 kkk 组参数的初始值 , 每组参数由 概率 ωi\omega_iωi , 均值 μi\mu_iμi , 方差 Σi\Sigma_iΣi 组成 , 参数个数是 3×k3 \times k3×k 个 ;
① 更新参数值 ( 非第一次迭代 ) : 根据步骤 ( 2 ) 计算的 n×kn \times kn×k 个概率 , 更新 kkk 组参数 , 每组参数由 概率 ωi\omega_iωi , 均值 μi\mu_iμi , 方差 Σi\Sigma_iΣi 组成 , 参数个数是 3×k3 \times k3×k 个 ;
② 聚类分组个数 : kkk 指的是聚类分组的个数 ;
③ 概率 ωi\omega_iωi 参数 : 指样本属于某组聚类的概率 ;
④ 均值 μi\mu_iμi 参数 : 指的是某组聚类分组的样本 高斯分布 ( 正态分布 ) 的 均值参数 ;
⑤ 方差 Σi\Sigma_iΣi 参数 : 指的是某组聚类分组的样本 高斯分布 ( 正态分布 ) 的 方差参数 ;
V . 高斯混合模型 聚类分析 步骤 ( 2 ) 计算概率
计算概率 :
数据集和分组情况 : 数据集有 nnn 个对象 , 将这 nnn 个对象分成 kkk 个聚类分组 ;
计算的概率 : 这里需要计算每个对象 xj(1≤j≤n)x_j \, (1 \leq j \leq n)xj(1≤j≤n) 属于每个聚类 Ci(1≤i≤k)C_i \, (1 \leq i \leq k)Ci(1≤i≤k) 的概率 , 需要计算 n×kn \times kn×k 次概率 ;
概率说明 : xj(1≤j≤n)x_j \, (1 \leq j \leq n)xj(1≤j≤n) 属于 聚类 Ci(1≤i≤k)C_i \, (1 \leq i \leq k)Ci(1≤i≤k) 的概率 , 反过来说 , 就是 xjx_jxj 样本对象 由 CiC_iCi 聚类分组对应的 高斯分布 生成的概率 ;
计算公式 :
p(xi∈Ci)=ωig(x∣μi,Σi)∑i=1kωig(x∣μi,Σi)p(x_i \in C_i) = \dfrac{\omega_i g ( x | \mu_i , \Sigma_i )}{ \sum_{i=1}^{k} \, \omega_i g ( x | \mu_i , \Sigma_i ) }p(xi∈Ci)=∑i=1kωig(x∣μi,Σi)ωig(x∣μi,Σi)
VI . 高斯混合模型 参数分析 : 111 个样本概率 与 kkk 个聚类分组
1 . 数据集 及 聚类 情况 :
① 样本个数 : 有 nnn 个样本 , 第 iii 个样本记做 XiX_iXi , 其中 1≤i≤n1 \leq i \leq n1≤i≤n ;
② 聚类个数 : 分成 kkk 个聚类分组 , 第 jjj 个聚类 ( Cluster ) 记做 CjC_jCj , 其中 1≤i≤k1 \leq i \leq k1≤i≤k ;
2 . 单个样本概率 与 kkk 个聚类分组 分析 :
某个样本 XiX_iXi 属于 kkk 个聚类分组的概率之和加起来等于 111 ;
nnn 个样本属于 kkk 个聚类分组的概率之和加起来等于 nnn ;
引入参数 nin_ini , 表示所有的样本 属于 第 iii 个聚类分组 ( 高斯分布 ) 的概率之和 ;
该值可以看做该 高斯分布 ( 聚类分组 ) 对生成 整个数据集 nnn 个对象所做出的的贡献 ;
所有的样本属于第 111 个聚类的概率是 n1n_1n1 , ⋯\cdots⋯ , 所有的样本属于第 kkk 个聚类的概率是 nkn_knk , 此时
n1+n2+⋯+nk=nn_1 + n_2 + \cdots + n_k = nn1+n2+⋯+nk=n
VII . 高斯混合模型 参数分析 : nnn 个样本概率 与 111 个聚类分组
1 . 数据集 及 聚类 情况 :
① 样本个数 : 有 nnn 个样本 , 第 iii 个样本记做 XiX_iXi , 其中 1≤i≤n1 \leq i \leq n1≤i≤n ;
② 聚类个数 : 分成 kkk 个聚类分组 , 第 jjj 个聚类 ( Cluster ) 记做 CjC_jCj , 其中 1≤i≤k1 \leq i \leq k1≤i≤k ;
2 . 分析 第 iii 个 高斯分布 ( 聚类分组 ) 的参数 :
上一步使用如下公式 , 计算出了 每个样本 属于 每个 高斯分布 ( 聚类分组 ) 的概率 , p(xi∈Ci)p(x_i \in C_i)p(xi∈Ci) ;
p(xi∈Ci)=ωig(x∣μi,Σi)∑i=1kωig(x∣μi,Σi)p(x_i \in C_i) = \dfrac{\omega_i g ( x | \mu_i , \Sigma_i )}{ \sum_{i=1}^{k} \, \omega_i g ( x | \mu_i , \Sigma_i ) }p(xi∈Ci)=∑i=1kωig(x∣μi,Σi)ωig(x∣μi,Σi)
第 iii 个高斯分布 生成 xjx_jxj 值的概率是 p(xj∈Ci)p(x_j \in C_i)p(xj∈Ci) , 即 该高斯分布生成的 与 xjx_jxj 相关的值是 p(xj∈Ci)×xjp(x_j \in C_i) \times x_jp(xj∈Ci)×xj ;
3 . 同时考虑 nnn 个数据样本 :
第 iii 个高斯分布生成了 x1x_1x1 的概率是 p(x1∈Ci)p(x_1 \in C_i)p(x1∈Ci) , 该高斯分布生成了与 x1x_1x1 相关的值是 p(x1∈Ci)×x1p(x_1 \in C_i) \times x_1p(x1∈Ci)×x1 ;
第 iii 个高斯分布生成了 x2x_2x2 的概率是 p(x2∈Ci)p(x_2 \in C_i)p(x2∈Ci) , 该高斯分布生成了与 x2x_2x2 相关的值是 p(x2∈Ci)×x2p(x_2 \in C_i) \times x_2p(x2∈Ci)×x2 ;
⋮\vdots⋮
第 iii 个高斯分布生成了 xnx_nxn 的概率是 p(xn∈Ci)p(x_n \in C_i)p(xn∈Ci) , 该高斯分布生成了与 xnx_nxn 相关的值是 p(xn∈Ci)×xnp(x_n \in C_i) \times x_np(xn∈Ci)×xn ;
4 . 引入参数值 nin_ini :
总结上面的 第 iii 个高斯分布的生成样本的情况 : 第 iii 个高斯分布生成了 p(x1∈Ci)×x1p(x_1 \in C_i) \times x_1p(x1∈Ci)×x1 , p(x2∈Ci)×x2p(x_2 \in C_i) \times x_2p(x2∈Ci)×x2 , ⋯\cdots⋯ , p(xn∈Ci)×xnp(x_n \in C_i) \times x_np(xn∈Ci)×xn , 这些样本点 ;
将第 iii 个高斯分布生成样本的概率相加 , 即将 p(x1∈Ci)p(x_1 \in C_i)p(x1∈Ci) , p(x2∈Ci)p(x_2 \in C_i)p(x2∈Ci) , ⋯\cdots⋯ , p(xn∈Ci)p(x_n \in C_i)p(xn∈Ci) 相加 ;
引入参数值 nin_ini : 该值可以看做该 高斯分布 ( 聚类分组 ) 对生成 整个数据集 nnn 个对象所做出的的贡献 的概率 ;
ni=∑j=inp(xj∈Ci)n_i = \sum_{j=i}^{n} \, p \, ( x_j \in C_i )ni=j=i∑np(xj∈Ci)
VIII . 高斯混合模型 聚类分析 步骤 ( 3 ) 更新参数 平均值 μi\mu_iμi 参数
均值 μi\mu_iμi 参数计算公式 : 指的是某组聚类分组的样本 高斯分布 ( 正态分布 ) 的 均值参数 ;
μi=1ni∑j=1np(xj∈Ci)xj\mu_i = \frac{1}{n_i} \sum_{j=1} ^n p(x_j \in C_i) x_jμi=ni1j=1∑np(xj∈Ci)xj
p(xj∈Ci)xjp(x_j \in C_i) x_jp(xj∈Ci)xj 是第 iii 个高斯分布 , 也是第 iii 个聚类分组 CiC_iCi , 生成 xjx_jxj 样本所做的的贡献 ;
∑j=1np(xj∈Ci)xj\sum_{j=1} ^n p(x_j \in C_i) x_j∑j=1np(xj∈Ci)xj 是第 iii 个高斯分布 , 也是第 iii 个聚类分组 CiC_iCi , 生成所有的 nnn 个样本整体数据集 x1,x2,⋯,xn{x_1 , x_2 , \cdots , x_n}x1,x2,⋯,xn 的总贡献 ;
引入参数值 nin_ini : nin_ini 值可以看做该 高斯分布 ( 聚类分组 ) 对生成 整个数据集 nnn 个对象所做出的的贡献 的概率 ;
第 iii 个高斯分布 对生成 nnn 个样本的总贡献除以 nin_ini 概率 , 就是该 高斯分布 生成 nnn 个样本的贡献的均值 ;
IX . 高斯混合模型 平均值 μi\mu_iμi 参数 的本质分析
均值计算的理解 :
μi=1ni∑j=1np(xj∈Ci)xj\mu_i = \frac{1}{n_i} \sum_{j=1} ^n p(x_j \in C_i) x_jμi=ni1j=1∑np(xj∈Ci)xj
p(xj∈Ci)xjp(x_j \in C_i) x_jp(xj∈Ci)xj 是概率值乘以 xjx_jxj ,
ni=∑j=inp(xj∈Ci)n_i = \sum_{j=i}^{n} \, p \, ( x_j \in C_i )ni=∑j=inp(xj∈Ci) , 是本 高斯分布 ( 聚类中 ) 生成所有样本的概率之和 ;
假如所有样本值生成的概率都是 100%100\%100% , 那么此时的公式就是 :
μi=1n×100%∑j=1n100%×xj\mu_i = \frac{1}{n \times 100\%} \sum_{j=1} ^n \, 100\% \times x_jμi=n×100%1j=1∑n100%×xj
上面的就是一个普通的求平均值的公式 , 每个值前面都乘以 111 , 概率都是 100%100\%100% , nnn 个值相加 , 然后再除以 nnn , 可以看做 nnn 个 100100%100 相加 , 即 nnn 个 111 相加 , 还是 nnn , 这就是普通的平均值公式 ;
实际 上所有样本值生成的概率不确定 , 区范围 0%0\%0% 到 100%100\%100% , 那么此时的公式就是 :
μi=1ni∑j=1np(xj∈Ci)×xj\mu_i = \frac{1}{n_i} \sum_{j=1} ^n \, p(x_j \in C_i) \times x_jμi=ni1j=1∑np(xj∈Ci)×xj
该公式与上面 100%100\%100% 公式的区别是 , 使用 p(xj∈Ci)p(x_j \in C_i)p(xj∈Ci) 替换了每个样本的生成概率 100%100\%100% 值 , 使用 ni=∑j=inp(xj∈Ci)n_i = \sum_{j=i}^{n} \, p \, ( x_j \in C_i )ni=∑j=inp(xj∈Ci) 替换了所有样本生成的概率之和 , 即 nnn 个 100100%100 相加的和 nnn ;
该公式的本质还是求平均值 ;
X . 高斯混合模型 聚类分析 步骤 ( 3 ) 更新参数 方差 Σi\Sigma_iΣi 参数
方差 Σi\Sigma_iΣi 参数计算公式 : 指的是某组聚类分组的样本 高斯分布 ( 正态分布 ) 的 方差参数 ;
μi=1ni∑j=1np(xj∈Ci)(xj−μi)(xj−μi)T\mu_i = \frac{1}{n_i} \sum_{j=1} ^n p(x_j \in C_i) \, ( x_j - \mu_i ) ( x_j - \mu_i ) ^Tμi=ni1j=1∑np(xj∈Ci)(xj−μi)(xj−μi)T
根据上面的本质分析逻辑 , 此处求方差 , 是在普通的方差基础上 , 增加了不同概率 ;
普通方差公式 : 每个值都是 100%100\%100% 概率取值 ;
μi=1n∑j=1n100%×(xj−μi)(xj−μi)T\mu_i = \frac{1}{n} \sum_{j=1} ^n 100\% \times ( x_j - \mu_i ) ( x_j - \mu_i ) ^Tμi=n1j=1∑n100%×(xj−μi)(xj−μi)T
使用 p(xj∈Ci)p(x_j \in C_i)p(xj∈Ci) 代替上面的 100%100\%100% 概率 , 就是方差参数的计算公式 ;
XI . 高斯混合模型 聚类分析 步骤 ( 3 ) 更新参数 概率 ωi\omega_iωi 参数
概率 ωi\omega_iωi 参数计算公式 : 指样本属于某组聚类的概率 ;
ωi=nin\omega_i = \frac{n_i}{n}ωi=nni
nin_ini 是 每个 高斯分布 ( 聚类分组 ) 对 生成整个数据集所做的贡献 ;
nnn 是所有的 高斯分布 生成 所有的 数据集数据 的总体贡献 ;
XII . 高斯混合模型 聚类分析 算法终止条件
1 . 继续迭代 : 将参数值带入如下 评分函数 (似然函数 ) , 如果评分函数值发生了改变 , 那么继续迭代 , 更新 3k3k3k 个参数值 , 计算 每个样本 属于 每个分组的 k×nk \times nk×n 个概率 ;
2 . 似然函数 : 高斯混合模型 中 , 采用似然函数 , 作为评分函数 ;
E=∏j=1np(xj)E = \prod_{j = 1} ^ n p(x_j)E=j=1∏np(xj)
∏\prod∏ 是多个乘积 , 与 ∑\sum∑ 多个加和性质类似 ;
nnn 表示数据集中样本个数 ;
xjx_jxj 表示数据样本对象 , 被聚类的样本点 ;
p(xj)p(x_j)p(xj) 表示高斯混合模型中 , xjx_jxj 生成的概率 , 也就是 xjx_jxj 被分为某个聚类分组的概率 ;
3 . 高斯混合模型 聚类分析 算法终止条件 : 当计算出的 kkk 组 概率 ωi\omega_iωi , 均值 μi\mu_iμi , 方差 Σi\Sigma_iΣi 参数值 , 与上一次基本一致时 , 就可以停止进行聚类分析了 ; 即 将参数值带入如下 评分函数 (似然函数 ) , 如果评分函数值不再改变 , 那么说明可以终止迭代了 ;
总结
以上是生活随笔为你收集整理的【数据挖掘】高斯混合模型 ( 与 K-Means 每个步骤对比 | 初始参数设置 | 计算概率 | 计算平均值参数 | 计算方差参数 | 计算高斯分布概率参数 | 算法终止条件 )的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 【数据挖掘】高斯混合模型 ( 模型简介
- 下一篇: 【数据挖掘】基于密度的聚类方法 - DB