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

2023-03-27 19:56:05 浏览数 (1)

文章目录

  • I . 高斯混合模型 ( 样本 -> 模型 )
    • II . 高斯混合模型 ( 模型 -> 样本 )
    • III . 高斯混合模型 与 K-Means 迭代过程对比
    • IV . 高斯混合模型 聚类分析 步骤 ( 1 ) 设置参数值
    • V . 高斯混合模型 聚类分析 步骤 ( 2 ) 计算概率
    • VI . 高斯混合模型 参数分析 :
    1

    个样本概率 与

    k

    个聚类分组

    • VII . 高斯混合模型 参数分析 :
    n

    个样本概率 与

    1

    个聚类分组

    • VIII . 高斯混合模型 聚类分析 步骤 ( 3 ) 更新参数 平均值
    mu_i

    参数

    • IX . 高斯混合模型 平均值
    mu_i

    参数 的本质分析

    • X . 高斯混合模型 聚类分析 步骤 ( 3 ) 更新参数 方差
    Sigma_i

    参数

    • XI . 高斯混合模型 聚类分析 步骤 ( 3 ) 更新参数 概率
    omega_i

    参数

    • XII . 高斯混合模型 聚类分析 算法终止条件
I . 高斯混合模型 ( 样本 -> 模型 )

根据数据训练模型 : 目的是要 得到 高斯混合模型 的参数值 ;

① 已知条件 : 给定数据集样本

n

个 , 将这些样本分成

k

个聚类分组 ;

② 最终目的 : 使用 高斯混合模型 ( 参数未知 ) , 对这

n

个样本进行聚类分析 , 分析的过程就是确定 高斯混合模型的 参数值 ;

③ 高斯分布参数 : 每个聚类分组的样本都是符合 高斯分布 的 , 根据样本可以得到其 高斯分布的参数 , 均值

mu_i

, 方差

Sigma_i

;

④ 每个聚类分组的未知的参数 : 均值

mu_i

, 方差

Sigma_i

, 生成概率

omega_i

;

⑤ 未知参数总数 : 每个高斯分布 ( 聚类分组 ) 都有 三个 未知参数 , 整个 高斯混合模型有

3 times k

个未知参数 ;

omega_i

参数含义 : 第

i

个样本属于某个聚类分组的概率 ;

如 :

omega_3 = 0.7

, 第

3

个样本能分配到某个聚类分组 ( 高斯模型 ) 中的概率是

70%

;

II . 高斯混合模型 ( 模型 -> 样本 )

根据模型生成数据 : 目的是要得到 高斯混合模型 中每个 高斯模型 ( 聚类分组 ) 的 多个样本值 ;

① 已知条件 : 已知 高斯混合模型 , 所有参数值 , 参数分组

k

个 ;

② 已知的参数 : 高斯混合模型 已知 , 高斯混合模型的所有的参数 均值

mu_i

, 方差

Sigma_i

, 生成概率

omega_i

, 都已知 ,

3 times k

个参数已知 ;

③ 生成单个 高斯分布 ( 聚类分组 ) 的 多个 样本数据 : 根据 高斯分布 函数 , 即知道其 均值

mu_i

, 方差

Sigma_i

参数 , 可以生成该聚类分组的样本 ;

④ 生成 整个 数据集 ( 多个 高斯分布 / 聚类分组 ) : 根据 高斯混合分布 模型 , 生成

k

个聚类分组的样本 , 即所有的

n

个数据 ;

omega_i

参数含义 : 根据 该聚类分组的 高斯分布模型 能正确生成该 样本

i

的概率 ;

如 :

omega_3 = 0.7

, 说明 在某个聚类分组 , 使用高斯模型 , 该模型的 均值

mu_3

, 方差

Sigma_3

参数已知 , 正确生成第

3

个样本的概率是

70%
III . 高斯混合模型 与 K-Means 迭代过程对比

1 . 初始设定 :

k

个中心点 ( K-Means ) ,

k

组参数 ( 高斯混合模型 ) ;

① K-Means 初始化中心点 : 第一次迭代时 , 需要指定初始的

k

个聚类的中心点 ;

② 高斯混合模型 初始化参数 : 第一次迭代时 , 需要指定初始的

k

组参数 , 均值

mu_i

, 方差

Sigma_i

, 生成概率

omega_i

, 共有

3 times k

个 ;

2 . 聚类依据计算 : 距离 ( K-Means ) , 概率 ( 高斯混合模型 ) ;

① K-Means 计算距离 : 计算每个样本 与 每个 中心点 的距离 , 样本个数有

n

个 , 中心点个数 ( 聚类个数 ) 有

k

个 , 总共需要计算

n times k

个距离 ;

② 高斯混合模型 计算概率 : 计算每个样本 属于 每个聚类分组的概率 , 样本个数有

n

个 , 聚类 有

k

个 , 总共需要计算

n times k

个概率 ;

3 . 聚类分组 :

① K-Means 根据距离分组 : 每个样本都有与

k

个中心点的距离 , 取距离最小的那个中心点 , 将该样本分到该中心点对应的聚类分组中 ;

② 高斯混合模型 聚类概率 : 这里不需要分组 , 每个样本都有 一组 属于

k

个分组的概率值 ; 每个样本都属于所有的聚类分组 , 但是概率大小不一样 , 如 ,

99%

概率属于聚类

1

,

1%

概率属于聚类

2

,

0%

概率属于其它聚类 ;

4 . 硬指派 与 软指派 : K-Means 属于硬指派 , 必须为样本指派一个聚类分组 ; 高斯混合模型 属于软指派 , 每个样本都属于所有的聚类分组 , 只是概率大小不同 ;

IV . 高斯混合模型 聚类分析 步骤 ( 1 ) 设置参数值

参数初始值设置 :

① 初始状态 ( 第一次迭代 ) : 先给出

k

组参数的初始值 , 每组参数由 概率

omega_i

, 均值

mu_i

, 方差

Sigma_i

组成 , 参数个数是

3 times k

个 ;

① 更新参数值 ( 非第一次迭代 ) : 根据步骤 ( 2 ) 计算的

n times k

个概率 , 更新

k

组参数 , 每组参数由 概率

omega_i

, 均值

mu_i

, 方差

Sigma_i

组成 , 参数个数是

3 times k

个 ;

② 聚类分组个数 :

k

指的是聚类分组的个数 ;

③ 概率

omega_i

参数 : 指样本属于某组聚类的概率 ;

④ 均值

mu_i

参数 : 指的是某组聚类分组的样本 高斯分布 ( 正态分布 ) 的 均值参数 ;

⑤ 方差

Sigma_i

参数 : 指的是某组聚类分组的样本 高斯分布 ( 正态分布 ) 的 方差参数 ;

V . 高斯混合模型 聚类分析 步骤 ( 2 ) 计算概率

计算概率 :

数据集和分组情况 : 数据集有

n

个对象 , 将这

n

个对象分成

k

个聚类分组 ;

计算的概率 : 这里需要计算每个对象

x_j , (1 leq j leq n)

属于每个聚类

C_i , (1 leq i leq k)

的概率 , 需要计算

n times k

次概率 ;

概率说明 :

x_j , (1 leq j leq n)

属于 聚类

C_i , (1 leq i leq k)

的概率 , 反过来说 , 就是

x_j

样本对象 由

C_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 ) }
VI . 高斯混合模型 参数分析 :
1

个样本概率 与

k

个聚类分组


1 . 数据集 及 聚类 情况 :

① 样本个数 :

n

个样本 , 第

i

个样本记做

X_i

, 其中

1 leq i leq n

;

② 聚类个数 : 分成

k

个聚类分组 , 第

j

个聚类 ( Cluster ) 记做

C_j

, 其中

1 leq i leq k

;

2 . 单个样本概率 与

k

个聚类分组 分析 :

某个样本

X_i

属于

k

个聚类分组的概率之和加起来等于

1

;

n

个样本属于

k

个聚类分组的概率之和加起来等于

n

;

引入参数

n_i

, 表示所有的样本 属于 第

i

个聚类分组 ( 高斯分布 ) 的概率之和 ;

该值可以看做该 高斯分布 ( 聚类分组 ) 对生成 整个数据集

n

个对象所做出的的贡献 ;

所有的样本属于第

1

个聚类的概率是

n_1

,

cdots

, 所有的样本属于第

k

个聚类的概率是

n_k

, 此时

n_1 n_2 cdots n_k = n
VII . 高斯混合模型 参数分析 :
n

个样本概率 与

1

个聚类分组


1 . 数据集 及 聚类 情况 :

① 样本个数 :

n

个样本 , 第

i

个样本记做

X_i

, 其中

1 leq i leq n

;

② 聚类个数 : 分成

k

个聚类分组 , 第

j

个聚类 ( Cluster ) 记做

C_j

, 其中

1 leq i leq k

;

2 . 分析 第

i

个 高斯分布 ( 聚类分组 ) 的参数 :

上一步使用如下公式 , 计算出了 每个样本 属于 每个 高斯分布 ( 聚类分组 ) 的概率 ,

p(x_i in C_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 ) }

i

个高斯分布 生成

x_j

值的概率是

p(x_j in C_i)

, 即 该高斯分布生成的 与

x_j

相关的值是

p(x_j in C_i) times x_j

;

3 . 同时考虑

n

个数据样本 :

i

个高斯分布生成了

x_1

的概率是

p(x_1 in C_i)

, 该高斯分布生成了与

x_1

相关的值是

p(x_1 in C_i) times x_1

;

i

个高斯分布生成了

x_2

的概率是

p(x_2 in C_i)

, 该高斯分布生成了与

x_2

相关的值是

p(x_2 in C_i) times x_2

;

vdots

i

个高斯分布生成了

x_n

的概率是

p(x_n in C_i)

, 该高斯分布生成了与

x_n

相关的值是

p(x_n in C_i) times x_n

;

4 . 引入参数值

n_i

:

总结上面的 第

i

个高斯分布的生成样本的情况 : 第

i

个高斯分布生成了

p(x_1 in C_i) times x_1

,

p(x_2 in C_i) times x_2

,

cdots

,

p(x_n in C_i) times x_n

, 这些样本点 ;

将第

i

个高斯分布生成样本的概率相加 , 即将

p(x_1 in C_i)

,

p(x_2 in C_i)

,

cdots

,

p(x_n in C_i)

相加 ;

引入参数值

n_i

: 该值可以看做该 高斯分布 ( 聚类分组 ) 对生成 整个数据集

n

个对象所做出的的贡献 的概率 ;

n_i = sum_{j=i}^{n} , p , ( x_j in C_i )
VIII . 高斯混合模型 聚类分析 步骤 ( 3 ) 更新参数 平均值
mu_i

参数


均值

mu_i

参数计算公式 : 指的是某组聚类分组的样本 高斯分布 ( 正态分布 ) 的 均值参数 ;

mu_i = frac{1}{n_i} sum_{j=1} ^n p(x_j in C_i) x_j
p(x_j in C_i) x_j

是第

i

个高斯分布 , 也是第

i

个聚类分组

C_i

, 生成

x_j

样本所做的的贡献 ;

sum_{j=1} ^n p(x_j in C_i) x_j

是第

i

个高斯分布 , 也是第

i

个聚类分组

C_i

, 生成所有的

n

个样本整体数据集

{x_1 , x_2 , cdots , x_n}

的总贡献 ;

引入参数值

n_i

:

n_i

值可以看做该 高斯分布 ( 聚类分组 ) 对生成 整个数据集

n

个对象所做出的的贡献 的概率 ;

i

个高斯分布 对生成

n

个样本的总贡献除以

n_i

概率 , 就是该 高斯分布 生成

n

个样本的贡献的均值 ;

IX . 高斯混合模型 平均值
mu_i

参数 的本质分析


均值计算的理解 :

mu_i = frac{1}{n_i} sum_{j=1} ^n p(x_j in C_i) x_j
p(x_j in C_i) x_j

是概率值乘以

x_j

,

n_i = sum_{j=i}^{n} , p , ( x_j in C_i )

, 是本 高斯分布 ( 聚类中 ) 生成所有样本的概率之和 ;

假如所有样本值生成的概率都是

100%

, 那么此时的公式就是 :

mu_i = frac{1}{n times 100%} sum_{j=1} ^n , 100% times x_j

上面的就是一个普通的求平均值的公式 , 每个值前面都乘以

1

, 概率都是

100%

,

n

个值相加 , 然后再除以

n

, 可以看做

n

100%

相加 , 即

n

1

相加 , 还是

n

, 这就是普通的平均值公式 ;

实际 上所有样本值生成的概率不确定 , 区范围

0%

100%

, 那么此时的公式就是 :

mu_i = frac{1}{n_i} sum_{j=1} ^n , p(x_j in C_i) times x_j

该公式与上面

100%

公式的区别是 , 使用

p(x_j in C_i)

替换了每个样本的生成概率

100%

值 , 使用

n_i = sum_{j=i}^{n} , p , ( x_j in C_i )

替换了所有样本生成的概率之和 , 即

n

100%

相加的和

n

;

该公式的本质还是求平均值 ;

X . 高斯混合模型 聚类分析 步骤 ( 3 ) 更新参数 方差
Sigma_i

参数


方差

Sigma_i

参数计算公式 : 指的是某组聚类分组的样本 高斯分布 ( 正态分布 ) 的 方差参数 ;

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

根据上面的本质分析逻辑 , 此处求方差 , 是在普通的方差基础上 , 增加了不同概率 ;

普通方差公式 : 每个值都是

100%

概率取值 ;

mu_i = frac{1}{n} sum_{j=1} ^n 100% times ( x_j - mu_i ) ( x_j - mu_i ) ^T

使用

p(x_j in C_i)

代替上面的

100%

概率 , 就是方差参数的计算公式 ;

XI . 高斯混合模型 聚类分析 步骤 ( 3 ) 更新参数 概率
omega_i

参数


概率

omega_i

参数计算公式 : 指样本属于某组聚类的概率 ;

omega_i = frac{n_i}{n}
n_i

是 每个 高斯分布 ( 聚类分组 ) 对 生成整个数据集所做的贡献 ;

n

是所有的 高斯分布 生成 所有的 数据集数据 的总体贡献 ;

XII . 高斯混合模型 聚类分析 算法终止条件

1 . 继续迭代 : 将参数值带入如下 评分函数 (似然函数 ) , 如果评分函数值发生了改变 , 那么继续迭代 , 更新

3k

个参数值 , 计算 每个样本 属于 每个分组的

k times n

个概率 ;

2 . 似然函数 : 高斯混合模型 中 , 采用似然函数 , 作为评分函数 ;

E = prod_{j = 1} ^ n p(x_j)
prod

是多个乘积 , 与

sum

多个加和性质类似 ;

n

表示数据集中样本个数 ;

x_j

表示数据样本对象 , 被聚类的样本点 ;

p(x_j)

表示高斯混合模型中 ,

x_j

生成的概率 , 也就是

x_j

被分为某个聚类分组的概率 ;

3 . 高斯混合模型 聚类分析 算法终止条件 : 当计算出的

k

组 概率

omega_i

, 均值

mu_i

, 方差

Sigma_i

参数值 , 与上一次基本一致时 , 就可以停止进行聚类分析了 ; 即 将参数值带入如下 评分函数 (似然函数 ) , 如果评分函数值不再改变 , 那么说明可以终止迭代了 ;

0 人点赞