【数据挖掘】高斯混合模型 ( 与 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?ωi?g(x∣μi?,Σi?)ωi?g(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?ωi?g(x∣μi?,Σi?)ωi?g(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∑n?p(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?=ni?1?j=1∑n?p(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=1n?p(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?=ni?1?j=1∑n?p(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=in?p(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%1?j=1∑n?100%×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?=ni?1?j=1∑n?p(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=in?p(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?=ni?1?j=1∑n?p(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?=n1?j=1∑n?100%×(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∏n?p(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