GMM简介

高斯混合模型(GMM)

无论是k-means、层次聚类还是DBSCAN,聚类后都是有明显的“分界线”的,但如果是两个混合在一起的数据,这些方法就不能很好地聚类了,而GMM却能很好地对这类混合数据进行分类,GMM是利用同类数据呈现高斯分布的原理对数据进行区分的。

1、步骤

第一步:初始化k个高斯分布;

GMM必需的参数,n_components,指定聚类的数量

第二步:将数据软聚类成我们初始化的k个高斯;

初始化高斯分布的均值 μ \mu μ和方差 σ 2 \sigma^2 σ2,初始化权值均值精度的方法有以下两种方法:
第一种方法:随机生成
第二种方法:kmeans(默认)

第三步:软聚类

概率密度函数:
N ( X ∣ μ , σ 2 ) = 1 2 π σ e − ( x − μ ) 2 2 σ 2 N(X|\mu,\sigma^2) = \frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(x-\mu)^2}{2\sigma^2}} N(Xμ,σ2)=2π σ1e2σ2(xμ)2
隶属度:
E [ Z 1 A ] = N ( X i ∣ μ A , σ A 2 ) ∑ j = 1 m N ( X i ∣ μ j , σ j 2 ) E[Z_{1A}] = \frac{N(X_i|\mu_A,\sigma_A^2) }{\sum_{j=1}^{m}N(X_i|\mu_j,\sigma_j^2) } E[Z1A]=j=1mN(Xiμj,σj2)N(XiμA,σA2)

第三步:基于软聚类重新估计高斯参数

更新增均值:
n e w μ A = ∑ i = 1 N E [ Z i m ] X i ∑ i = 1 N E [ Z i m ] new\mu_A = \frac{\sum_{i=1}^NE[Z_{im}]X_i}{\sum_{i=1}^NE[Z_{im}]} newμA=i=1NE[Zim]i=1NE[Zim]Xi
更新方差:
n e w σ 2 = ∑ i = 1 N E [ Z i A ] ( X i − n e w μ A ) ( X i − n e w μ A ) T ∑ i = 1 N E [ Z i A ] new\sigma^2 = \frac{\sum_{i=1}^NE[Z_{iA}](X_i-new\mu_A)(X_i-new\mu_A)^T}{\sum_{i=1}^NE[Z_{iA}]} newσ2=i=1NE[ZiA]i=1NE[ZiA](XinewμA)(XinewμA)T

第四步:评估对数似然来检查收敛

对数似然:
l n p ( X ∣ μ , σ 2 ) = ∑ i = 1 N l n ( ∑ k = 1 K π k N ( X i ∣ μ k , σ k 2 ) lnp(X|\mu,\sigma^2) = \sum_{i=1}^Nln(\sum_{k=1}^K\pi_kN(X_i|\mu_k,\sigma_k^2) lnp(Xμ,σ2)=i=1Nln(k=1KπkN(Xiμk,σk2)

2、sklearn上的GMM

from sklearn import mixture

#n_components:聚类个数
gmm = mixture.GaussianMixture(n_components=3)
gmm.fit(X_train)
clustering = gmm.predict(X_test)
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值