您当前的位置: 首页 >  算法

韩曙亮

暂无认证

  • 2浏览

    0关注

    1068博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【数据挖掘】高斯混合模型 ( 与 K-Means 每个步骤对比 | 初始参数设置 | 计算概率 | 计算平均值参数 | 计算方差参数 | 计算高斯分布概率参数 | 算法终止条件 )

韩曙亮 发布时间:2020-05-04 20:12:20 ,浏览量:2

文章目录
        • 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​ωi​g(x∣μi​,Σi​)ωi​g(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​ωi​g(x∣μi​,Σi​)ωi​g(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∑n​p(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​=ni​1​j=1∑n​p(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=1n​p(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​=ni​1​j=1∑n​p(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=in​p(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%1​j=1∑n​100%×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​=ni​1​j=1∑n​p(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=in​p(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​=ni​1​j=1∑n​p(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​=n1​j=1∑n​100%×(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∏n​p(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​ 参数值 , 与上一次基本一致时 , 就可以停止进行聚类分析了 ; 即 将参数值带入如下 评分函数 (似然函数 ) , 如果评分函数值不再改变 , 那么说明可以终止迭代了 ;

关注
打赏
1663594092
查看更多评论
立即登录/注册

微信扫码登录

0.0516s