【数据挖掘】高斯混合模型 ( 与 K-Means 每个步骤对比 | 初始参数设置 | 计算概率 | 计算平均值参数 | 计算方差参数 | 计算高斯分布概率参数 | 算法终止条件 )
I . 高斯混合模型 ( 样本 -> 模型 )II . 高斯混合模型 ( 模型 -> 样本 )III . 高斯混合模型 与 K-Means 迭代过程对比IV . 高斯混合模型 聚类分析 步骤 ( 1 ) 设置参数值V . 高斯混合模型 聚类分析 步骤 ( 2 ) 计算概率VI . 高斯混合模型 参数分析 : 11 个样本概率 与 kk 个聚类分组VII . 高斯混合模型 参数分析 : nn 个样本
文章目录
- I . 高斯混合模型 ( 样本 -> 模型 )
- II . 高斯混合模型 ( 模型 -> 样本 )
- III . 高斯混合模型 与 K-Means 迭代过程对比
- IV . 高斯混合模型 聚类分析 步骤 ( 1 ) 设置参数值
- V . 高斯混合模型 聚类分析 步骤 ( 2 ) 计算概率
- VI . 高斯混合模型 参数分析 : 1 1 1 个样本概率 与 k k k 个聚类分组
- VII . 高斯混合模型 参数分析 : n n n 个样本概率 与 1 1 1 个聚类分组
- 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 . 高斯混合模型 ( 样本 -> 模型 )
根据数据训练模型 : 目的是要 得到 高斯混合模型 的参数值 ;
① 已知条件 : 给定数据集样本 n n n 个 , 将这些样本分成 k k k 个聚类分组 ;
② 最终目的 : 使用 高斯混合模型 ( 参数未知 ) , 对这 n n n 个样本进行聚类分析 , 分析的过程就是确定 高斯混合模型的 参数值 ;
③ 高斯分布参数 : 每个聚类分组的样本都是符合 高斯分布 的 , 根据样本可以得到其 高斯分布的参数 , 均值 μ i \mu_i μi , 方差 Σ i \Sigma_i Σi ;
④ 每个聚类分组的未知的参数 : 均值 μ i \mu_i μi , 方差 Σ i \Sigma_i Σi , 生成概率 ω i \omega_i ωi ;
⑤ 未知参数总数 : 每个高斯分布 ( 聚类分组 ) 都有 三个 未知参数 , 整个 高斯混合模型有 3 × k 3 \times k 3×k 个未知参数 ;
⑥ ω i \omega_i ωi 参数含义 : 第 i i i 个样本属于某个聚类分组的概率 ;
如 : ω 3 = 0.7 \omega_3 = 0.7 ω3=0.7 , 第 3 3 3 个样本能分配到某个聚类分组 ( 高斯模型 ) 中的概率是 70 % 70\% 70% ;
II . 高斯混合模型 ( 模型 -> 样本 )
根据模型生成数据 : 目的是要得到 高斯混合模型 中每个 高斯模型 ( 聚类分组 ) 的 多个样本值 ;
① 已知条件 : 已知 高斯混合模型 , 所有参数值 , 参数分组 k k k 个 ;
② 已知的参数 : 高斯混合模型 已知 , 高斯混合模型的所有的参数 均值 μ i \mu_i μi , 方差 Σ i \Sigma_i Σi , 生成概率 ω i \omega_i ωi , 都已知 , 3 × k 3 \times k 3×k 个参数已知 ;
③ 生成单个 高斯分布 ( 聚类分组 ) 的 多个 样本数据 : 根据 高斯分布 函数 , 即知道其 均值 μ i \mu_i μi , 方差 Σ i \Sigma_i Σi 参数 , 可以生成该聚类分组的样本 ;
④ 生成 整个 数据集 ( 多个 高斯分布 / 聚类分组 ) : 根据 高斯混合分布 模型 , 生成 k k k 个聚类分组的样本 , 即所有的 n n n 个数据 ;
⑤ ω i \omega_i ωi 参数含义 : 根据 该聚类分组的 高斯分布模型 能正确生成该 样本 i i i 的概率 ;
如 : ω 3 = 0.7 \omega_3 = 0.7 ω3=0.7 , 说明 在某个聚类分组 , 使用高斯模型 , 该模型的 均值 μ 3 \mu_3 μ3 , 方差 Σ 3 \Sigma_3 Σ3 参数已知 , 正确生成第 3 3 3 个样本的概率是 70 % 70\% 70%
III . 高斯混合模型 与 K-Means 迭代过程对比
1 . 初始设定 : k k k 个中心点 ( K-Means ) , k k k 组参数 ( 高斯混合模型 ) ;
① K-Means 初始化中心点 : 第一次迭代时 , 需要指定初始的 k k k 个聚类的中心点 ;
② 高斯混合模型 初始化参数 : 第一次迭代时 , 需要指定初始的 k k k 组参数 , 均值 μ i \mu_i μi , 方差 Σ i \Sigma_i Σi , 生成概率 ω i \omega_i ωi , 共有 3 × k 3 \times k 3×k 个 ;
2 . 聚类依据计算 : 距离 ( K-Means ) , 概率 ( 高斯混合模型 ) ;
① K-Means 计算距离 : 计算每个样本 与 每个 中心点 的距离 , 样本个数有 n n n 个 , 中心点个数 ( 聚类个数 ) 有 k k k 个 , 总共需要计算 n × k n \times k n×k 个距离 ;
② 高斯混合模型 计算概率 : 计算每个样本 属于 每个聚类分组的概率 , 样本个数有 n n n 个 , 聚类 有 k k k 个 , 总共需要计算 n × k n \times k n×k 个概率 ;
3 . 聚类分组 :
① K-Means 根据距离分组 : 每个样本都有与 k k k 个中心点的距离 , 取距离最小的那个中心点 , 将该样本分到该中心点对应的聚类分组中 ;
② 高斯混合模型 聚类概率 : 这里不需要分组 , 每个样本都有 一组 属于 k k k 个分组的概率值 ; 每个样本都属于所有的聚类分组 , 但是概率大小不一样 , 如 , 99 % 99\% 99% 概率属于聚类 1 1 1 , 1 % 1\% 1% 概率属于聚类 2 2 2 , 0 % 0\% 0% 概率属于其它聚类 ;
4 . 硬指派 与 软指派 : K-Means 属于硬指派 , 必须为样本指派一个聚类分组 ; 高斯混合模型 属于软指派 , 每个样本都属于所有的聚类分组 , 只是概率大小不同 ;
IV . 高斯混合模型 聚类分析 步骤 ( 1 ) 设置参数值
参数初始值设置 :
① 初始状态 ( 第一次迭代 ) : 先给出 k k k 组参数的初始值 , 每组参数由 概率 ω i \omega_i ωi , 均值 μ i \mu_i μi , 方差 Σ i \Sigma_i Σi 组成 , 参数个数是 3 × k 3 \times k 3×k 个 ;
① 更新参数值 ( 非第一次迭代 ) : 根据步骤 ( 2 ) 计算的 n × k n \times k n×k 个概率 , 更新 k k k 组参数 , 每组参数由 概率 ω i \omega_i ωi , 均值 μ i \mu_i μi , 方差 Σ i \Sigma_i Σi 组成 , 参数个数是 3 × k 3 \times k 3×k 个 ;
② 聚类分组个数 : k k k 指的是聚类分组的个数 ;
③ 概率 ω i \omega_i ωi 参数 : 指样本属于某组聚类的概率 ;
④ 均值 μ i \mu_i μi 参数 : 指的是某组聚类分组的样本 高斯分布 ( 正态分布 ) 的 均值参数 ;
⑤ 方差 Σ i \Sigma_i Σi 参数 : 指的是某组聚类分组的样本 高斯分布 ( 正态分布 ) 的 方差参数 ;
V . 高斯混合模型 聚类分析 步骤 ( 2 ) 计算概率
计算概率 :
数据集和分组情况 : 数据集有 n n n 个对象 , 将这 n n n 个对象分成 k k k 个聚类分组 ;
计算的概率 : 这里需要计算每个对象 x j ( 1 ≤ j ≤ n ) x_j \, (1 \leq j \leq n) xj(1≤j≤n) 属于每个聚类 C i ( 1 ≤ i ≤ k ) C_i \, (1 \leq i \leq k) Ci(1≤i≤k) 的概率 , 需要计算 n × k n \times k n×k 次概率 ;
概率说明 : x j ( 1 ≤ j ≤ n ) x_j \, (1 \leq j \leq n) xj(1≤j≤n) 属于 聚类 C i ( 1 ≤ i ≤ k ) C_i \, (1 \leq i \leq k) Ci(1≤i≤k) 的概率 , 反过来说 , 就是 x j x_j xj 样本对象 由 C i C_i Ci 聚类分组对应的 高斯分布 生成的概率 ;
计算公式 :
p ( x i ∈ C i ) = ω i g ( x ∣ μ i , Σ i ) ∑ i = 1 k ω i g ( 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 . 高斯混合模型 参数分析 : 1 1 1 个样本概率 与 k k k 个聚类分组
1 . 数据集 及 聚类 情况 :
① 样本个数 : 有 n n n 个样本 , 第 i i i 个样本记做 X i X_i Xi , 其中 1 ≤ i ≤ n 1 \leq i \leq n 1≤i≤n ;
② 聚类个数 : 分成 k k k 个聚类分组 , 第 j j j 个聚类 ( Cluster ) 记做 C j C_j Cj , 其中 1 ≤ i ≤ k 1 \leq i \leq k 1≤i≤k ;
2 . 单个样本概率 与 k k k 个聚类分组 分析 :
某个样本 X i X_i Xi 属于 k k k 个聚类分组的概率之和加起来等于 1 1 1 ;
n n n 个样本属于 k k k 个聚类分组的概率之和加起来等于 n n n ;
引入参数 n i n_i ni , 表示所有的样本 属于 第 i i i 个聚类分组 ( 高斯分布 ) 的概率之和 ;
该值可以看做该 高斯分布 ( 聚类分组 ) 对生成 整个数据集 n n n 个对象所做出的的贡献 ;
所有的样本属于第
1
1
1 个聚类的概率是
n
1
n_1
n1 ,
⋯
\cdots
⋯ , 所有的样本属于第
k
k
k 个聚类的概率是
n
k
n_k
nk , 此时
n
1
+
n
2
+
⋯
+
n
k
=
n
n_1 + n_2 + \cdots + n_k = n
n1+n2+⋯+nk=n
VII . 高斯混合模型 参数分析 : n n n 个样本概率 与 1 1 1 个聚类分组
1 . 数据集 及 聚类 情况 :
① 样本个数 : 有 n n n 个样本 , 第 i i i 个样本记做 X i X_i Xi , 其中 1 ≤ i ≤ n 1 \leq i \leq n 1≤i≤n ;
② 聚类个数 : 分成 k k k 个聚类分组 , 第 j j j 个聚类 ( Cluster ) 记做 C j C_j Cj , 其中 1 ≤ i ≤ k 1 \leq i \leq k 1≤i≤k ;
2 . 分析 第 i i i 个 高斯分布 ( 聚类分组 ) 的参数 :
上一步使用如下公式 , 计算出了 每个样本 属于 每个 高斯分布 ( 聚类分组 ) 的概率 , p ( x i ∈ C i ) p(x_i \in C_i) p(xi∈Ci) ;
p ( x i ∈ C i ) = ω i g ( x ∣ μ i , Σ i ) ∑ i = 1 k ω i g ( 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)
第 i i i 个高斯分布 生成 x j x_j xj 值的概率是 p ( x j ∈ C i ) p(x_j \in C_i) p(xj∈Ci) , 即 该高斯分布生成的 与 x j x_j xj 相关的值是 p ( x j ∈ C i ) × x j p(x_j \in C_i) \times x_j p(xj∈Ci)×xj ;
3 . 同时考虑 n n n 个数据样本 :
第 i i i 个高斯分布生成了 x 1 x_1 x1 的概率是 p ( x 1 ∈ C i ) p(x_1 \in C_i) p(x1∈Ci) , 该高斯分布生成了与 x 1 x_1 x1 相关的值是 p ( x 1 ∈ C i ) × x 1 p(x_1 \in C_i) \times x_1 p(x1∈Ci)×x1 ;
第 i i i 个高斯分布生成了 x 2 x_2 x2 的概率是 p ( x 2 ∈ C i ) p(x_2 \in C_i) p(x2∈Ci) , 该高斯分布生成了与 x 2 x_2 x2 相关的值是 p ( x 2 ∈ C i ) × x 2 p(x_2 \in C_i) \times x_2 p(x2∈Ci)×x2 ;
⋮ \vdots ⋮
第 i i i 个高斯分布生成了 x n x_n xn 的概率是 p ( x n ∈ C i ) p(x_n \in C_i) p(xn∈Ci) , 该高斯分布生成了与 x n x_n xn 相关的值是 p ( x n ∈ C i ) × x n p(x_n \in C_i) \times x_n p(xn∈Ci)×xn ;
4 . 引入参数值 n i n_i ni :
总结上面的 第 i i i 个高斯分布的生成样本的情况 : 第 i i i 个高斯分布生成了 p ( x 1 ∈ C i ) × x 1 p(x_1 \in C_i) \times x_1 p(x1∈Ci)×x1 , p ( x 2 ∈ C i ) × x 2 p(x_2 \in C_i) \times x_2 p(x2∈Ci)×x2 , ⋯ \cdots ⋯ , p ( x n ∈ C i ) × x n p(x_n \in C_i) \times x_n p(xn∈Ci)×xn , 这些样本点 ;
将第 i i i 个高斯分布生成样本的概率相加 , 即将 p ( x 1 ∈ C i ) p(x_1 \in C_i) p(x1∈Ci) , p ( x 2 ∈ C i ) p(x_2 \in C_i) p(x2∈Ci) , ⋯ \cdots ⋯ , p ( x n ∈ C i ) p(x_n \in C_i) p(xn∈Ci) 相加 ;
引入参数值 n i n_i ni : 该值可以看做该 高斯分布 ( 聚类分组 ) 对生成 整个数据集 n n n 个对象所做出的的贡献 的概率 ;
n i = ∑ j = i n p ( x j ∈ C i ) 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 = 1 n i ∑ j = 1 n p ( x j ∈ C i ) x j \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 ( x j ∈ C i ) x j p(x_j \in C_i) x_j p(xj∈Ci)xj 是第 i i i 个高斯分布 , 也是第 i i i 个聚类分组 C i C_i Ci , 生成 x j x_j xj 样本所做的的贡献 ;
∑ j = 1 n p ( x j ∈ C i ) x j \sum_{j=1} ^n p(x_j \in C_i) x_j ∑j=1np(xj∈Ci)xj 是第 i i i 个高斯分布 , 也是第 i i i 个聚类分组 C i C_i Ci , 生成所有的 n n n 个样本整体数据集 x 1 , x 2 , ⋯ , x n {x_1 , x_2 , \cdots , x_n} x1,x2,⋯,xn 的总贡献 ;
引入参数值 n i n_i ni : n i n_i ni 值可以看做该 高斯分布 ( 聚类分组 ) 对生成 整个数据集 n n n 个对象所做出的的贡献 的概率 ;
第 i i i 个高斯分布 对生成 n n n 个样本的总贡献除以 n i n_i ni 概率 , 就是该 高斯分布 生成 n n n 个样本的贡献的均值 ;
IX . 高斯混合模型 平均值 μ i \mu_i μi 参数 的本质分析
均值计算的理解 :
μ i = 1 n i ∑ j = 1 n p ( x j ∈ C i ) x j \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 ( x j ∈ C i ) x j p(x_j \in C_i) x_j p(xj∈Ci)xj 是概率值乘以 x j x_j xj ,
n i = ∑ j = i n p ( x j ∈ C i ) n_i = \sum_{j=i}^{n} \, p \, ( x_j \in C_i ) ni=∑j=inp(xj∈Ci) , 是本 高斯分布 ( 聚类中 ) 生成所有样本的概率之和 ;
假如所有样本值生成的概率都是 100 % 100\% 100% , 那么此时的公式就是 :
μ i = 1 n × 100 % ∑ j = 1 n 100 % × x j \mu_i = \frac{1}{n \times 100\%} \sum_{j=1} ^n \, 100\% \times x_j μi=n×100%1j=1∑n100%×xj
上面的就是一个普通的求平均值的公式 , 每个值前面都乘以 1 1 1 , 概率都是 100 % 100\% 100% , n n n 个值相加 , 然后再除以 n n n , 可以看做 n n n 个 100 100% 100 相加 , 即 n n n 个 1 1 1 相加 , 还是 n n n , 这就是普通的平均值公式 ;
实际 上所有样本值生成的概率不确定 , 区范围 0 % 0\% 0% 到 100 % 100\% 100% , 那么此时的公式就是 :
μ i = 1 n i ∑ j = 1 n p ( x j ∈ C i ) × x j \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 ( x j ∈ C i ) p(x_j \in C_i) p(xj∈Ci) 替换了每个样本的生成概率 100 % 100\% 100% 值 , 使用 n i = ∑ j = i n p ( x j ∈ C i ) n_i = \sum_{j=i}^{n} \, p \, ( x_j \in C_i ) ni=∑j=inp(xj∈Ci) 替换了所有样本生成的概率之和 , 即 n n n 个 100 100% 100 相加的和 n n n ;
该公式的本质还是求平均值 ;
X . 高斯混合模型 聚类分析 步骤 ( 3 ) 更新参数 方差 Σ i \Sigma_i Σi 参数
方差 Σ i \Sigma_i Σi 参数计算公式 : 指的是某组聚类分组的样本 高斯分布 ( 正态分布 ) 的 方差参数 ;
μ i = 1 n i ∑ j = 1 n p ( x j ∈ C i ) ( x j − μ i ) ( x j − μ 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 = 1 n ∑ j = 1 n 100 % × ( x j − μ i ) ( x j − μ 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 ( x j ∈ C i ) p(x_j \in C_i) p(xj∈Ci) 代替上面的 100 % 100\% 100% 概率 , 就是方差参数的计算公式 ;
XI . 高斯混合模型 聚类分析 步骤 ( 3 ) 更新参数 概率 ω i \omega_i ωi 参数
概率 ω i \omega_i ωi 参数计算公式 : 指样本属于某组聚类的概率 ;
ω i = n i n \omega_i = \frac{n_i}{n} ωi=nni
n i n_i ni 是 每个 高斯分布 ( 聚类分组 ) 对 生成整个数据集所做的贡献 ;
n n n 是所有的 高斯分布 生成 所有的 数据集数据 的总体贡献 ;
XII . 高斯混合模型 聚类分析 算法终止条件
1 . 继续迭代 : 将参数值带入如下 评分函数 (似然函数 ) , 如果评分函数值发生了改变 , 那么继续迭代 , 更新 3 k 3k 3k 个参数值 , 计算 每个样本 属于 每个分组的 k × n k \times n k×n 个概率 ;
2 . 似然函数 : 高斯混合模型 中 , 采用似然函数 , 作为评分函数 ;
E = ∏ j = 1 n p ( x j ) E = \prod_{j = 1} ^ n p(x_j) E=j=1∏np(xj)
∏ \prod ∏ 是多个乘积 , 与 ∑ \sum ∑ 多个加和性质类似 ;
n n n 表示数据集中样本个数 ;
x j x_j xj 表示数据样本对象 , 被聚类的样本点 ;
p ( x j ) p(x_j) p(xj) 表示高斯混合模型中 , x j x_j xj 生成的概率 , 也就是 x j x_j xj 被分为某个聚类分组的概率 ;
3 . 高斯混合模型 聚类分析 算法终止条件 : 当计算出的 k k k 组 概率 ω i \omega_i ωi , 均值 μ i \mu_i μi , 方差 Σ i \Sigma_i Σi 参数值 , 与上一次基本一致时 , 就可以停止进行聚类分析了 ; 即 将参数值带入如下 评分函数 (似然函数 ) , 如果评分函数值不再改变 , 那么说明可以终止迭代了 ;
更多推荐
所有评论(0)