精华内容
下载资源
问答
  • 无监督学习 | GMM 高斯混合聚类原理及Sklearn实现
    千次阅读
    2019-10-09 15:59:27


    相关文章:

    机器学习 | 目录

    机器学习 | 聚类评估指标

    机器学习 | EM 算法原理

    无监督学习 | KMeans与KMeans++原理

    无监督学习 | KMeans之Sklearn实现:电影评分聚类

    无监督学习 | 层次聚类 之凝聚聚类原理及Sklearn实现

    无监督学习 | DBSCAN 原理及Sklearn实现

    本文大部分内容搬运自周至华老师的《机器学习》[1]

    1. 高斯混合聚类

    k k k 均值 用原型向量来刻画聚类结构不同,高斯混合(Mixture-of-Gaussian)聚类采用概率模型来表达聚类原型

    我们先简单回顾下多元高斯(正态)分布的定义。对 n n n 维样本空间 X \mathcal{X} X 中的随机向量 x x x,若服从高斯分布,其概率密度函数为:

    p ( x ) = 1 ( 2 π ) n 2 ∣ Σ ∣ 1 2 e − 1 2 ( x − μ ) T Σ − 1 ( x − μ ) (1) p(\boldsymbol{x})=\frac{1}{(2 \pi)^{\frac{n}{2}}|\boldsymbol{\Sigma}|^{\frac{1}{2}}} e^{-\frac{1}{2}(\boldsymbol{x}-\boldsymbol{\mu})^{\mathrm{T}} \boldsymbol{\Sigma}^{-1}(\boldsymbol{x}-\boldsymbol{\mu})} \tag{1} p(x)=(2π)2nΣ211e21(xμ)TΣ1(xμ)(1)

    其中 μ \mu μ n n n 维均值向量, Σ \Sigma Σ n × n n \times n n×n 的协方差矩阵。由上式可知,高斯分布完全由均值向量 μ \mu μ 和协方差矩阵 Σ \Sigma Σ 这两个参数确定。为了明确显示高斯分布与相应参数的依赖关系,将概率密度函数记为 p ( x ∣ μ , Σ ) p(x|\mu,\Sigma) p(xμ,Σ)

    1.1 高斯混合分布

    我们可以定义高斯混合分布

    p M = α i ⋅ p ( x ∣ μ i , Σ i ) (2) p_{\mathcal{M}}= \alpha_i \cdot p(x|\mu_i,\Sigma_i) \tag{2} pM=αip(xμi,Σi)(2)

    该分布共由 k k k 个混合成分组成,每个混合成分对应一个高斯分布。其中 μ i \mu_i μi Σ i \Sigma_i Σi 是第 i i i 个高斯混合成分的参数,而 α i > 0 \alpha_i >0 αi>0 为对应的“混合系数”(muxture coefficient),且 ∑ i = 1 k α i = 1 \sum_{i=1}^k \alpha_i =1 i=1kαi=1

    假设样本的生成过程由高斯混合分布给出:首先,根据 α 1 , α 2 , . . . , α k \alpha_1,\alpha_2,...,\alpha_k α1,α2,...,αk 定义的先验分布选择高斯混合成分,其中 α i \alpha_i αi 为选择第 i i i 个混合成分的概率;然后,根据被选择的混合成分的概率密度函数进行采样,从而生成相应的样本。

    若训练集 D = { x 1 , x 2 , . . . , x m } D = \{x_1,x_2,...,x_m\} D={x1,x2,...,xm} 由上述过程生成,令随机变量 z j ∈ { 1 , 2 , . . . , k } z_j \in \{1,2,...,k\} zj{1,2,...,k} 表示生成样本 x j x_j xj 的高斯混合成分,其取值未知。显然, z j z_j zj 的先验概率 P ( z j = i ) P(z_j=i) P(zj=i) 对应于 α i ( i = 1 , 2 , . . . , k ) \alpha_i(i=1,2,...,k) αi(i=1,2,...,k)

    根据贝叶斯定理,有:

    p M ( x j , z j = i ) = p M ( x j ) ⋅ p M ( z j = i ∣ x j ) (3) p_{\mathcal{M}}(x_j,z_j=i)=p_{\mathcal{M}}(x_j) \cdot p_{\mathcal{M}}(z_j=i|x_j) \tag{3} pM(xj,zj=i)=pM(xj)pM(zj=ixj)(3)

    p M ( x j , z j = i ) = P ( z j = i ) ⋅ p M ( x j ∣ z j = i ) (4) p_{\mathcal{M}}(x_j,z_j=i)=P(z_j=i)\cdot p_{\mathcal{M}}(x_j|z_j=i) \tag{4} pM(xj,zj=i)=P(zj=i)pM(xjzj=i)(4)

    所以 z j z_j zj 的后验分布对应于:

    p M ( z j = i ∣ x j ) = P ( z j = i ) ⋅ p M ( x j ∣ z j = i ) p M ( x j ) = α i ⋅ p ( x j ∣ μ i , Σ i ) ∑ l = 1 k α l ⋅ p ( x j ∣ μ l , Σ l ) (5) \begin{aligned} p_{\mathcal{M}}\left(z_{j}=i | \boldsymbol{x}_{j}\right) &=\frac{P\left(z_{j}=i\right) \cdot p_{\mathcal{M}}\left(\boldsymbol{x}_{j} | z_{j}=i\right)}{p_{\mathcal{M}}\left(\boldsymbol{x}_{j}\right)} \\ &=\frac{\alpha_{i} \cdot p\left(\boldsymbol{x}_{j} | \boldsymbol{\mu}_{i}, \boldsymbol{\Sigma}_{i}\right)}{\sum_{l=1}^{k} \alpha_{l} \cdot p\left(\boldsymbol{x}_{j} | \boldsymbol{\mu}_{l}, \mathbf{\Sigma}_{l}\right)} \end{aligned} \tag{5} pM(zj=ixj)=pM(xj)P(zj=i)pM(xjzj=i)=l=1kαlp(xjμl,Σl)αip(xjμi,Σi)(5)

    换言之, p M ( z j = i ∣ x j ) p_{\mathcal{M}}(z_j=i|x_j) pM(zj=ixj) 给出了样本 x j x_j xj 由第 i i i 个高斯混合成分生成的后验概率,为方便叙述,将其简记为 γ j i ( i = 1 , 2 , . . . , k ) \gamma_{ji} (i=1,2,...,k) γji(i=1,2,...,k)

    当高斯混合分布 (2) 已知时,高斯混合聚类将样本集 D D D 划分为 k k k 个簇 C = { C 1 , C 2 , . . . , C k } C=\{C_1,C_2,...,C_k\} C={C1,C2,...,Ck},每个样本 x j x_j xj 的簇标记 λ j \lambda_j λj 如下确定:

    λ j = arg ⁡ max ⁡ i ∈ { 1 , 2 , … , k } γ j i (6) \lambda_{j}=\underset{i \in\{1,2, \ldots, k\}}{\arg \max } \gamma_{j i} \tag{6} λj=i{1,2,,k}argmaxγji(6)

    因此,从原型聚类的角度来看,高斯混合聚类时采用概率模型(高斯分布)对原型进行刻画,簇划分则由原型对应后验概率确定。

    1.2 参数求解

    对于高斯混合分布中的参数 { ( α i , μ i , Σ i ) ∣ 1 ≤ i ≤ k } \{(\alpha_i,\mu_i,\Sigma_i) | 1\leq i\leq k\} {(αi,μi,Σi)1ik} 的求解,对于给定样本集 D D D,可采用极大似然估计,即:

    L L ( D ) = ln ⁡ ( ∏ j = 1 m p M ( x j ) ) = ∑ j = 1 m ln ⁡ ( ∑ i = 1 k α i ⋅ p ( x j ∣ μ i , Σ i ) ) (7) \begin{aligned} L L(D) &=\ln \left(\prod_{j=1}^{m} p_{\mathcal{M}}\left(\boldsymbol{x}_{j}\right)\right) \\ &=\sum_{j=1}^{m} \ln \left(\sum_{i=1}^{k} \alpha_{i} \cdot p\left(\boldsymbol{x}_{j} | \boldsymbol{\mu}_{i}, \mathbf{\Sigma}_{i}\right)\right) \end{aligned} \tag{7} LL(D)=ln(j=1mpM(xj))=j=1mln(i=1kαip(xjμi,Σi))(7)

    常采用 EM 算法 进行迭代优化求解。下面我们做一个简单的推导。

    若参数 { ( α i , μ i , Σ i ) ∣ 1 ≤ i ≤ k } \{(\alpha_i,\mu_i,\Sigma_i) | 1\leq i\leq k\} {(αi,μi,Σi)1ik} 能使式 (7) 最大化,则由 ∂ L L ( D ) ∂ μ i = 0 \frac{\partial L L(D)}{\partial \boldsymbol{\mu}_{i}}=0 μiLL(D)=0 ∂ L L ( D ) ∂ Σ i = 0 \frac{\partial L L(D)}{\partial \boldsymbol{\Sigma}_{i}}=0 ΣiLL(D)=0 有:

    μ i = ∑ j = 1 m γ j i x j ∑ j = 1 m γ j i (8) \boldsymbol{\mu}_{i}=\frac{\sum_{j=1}^{m} \gamma_{j i} \boldsymbol{x}_{j}}{\sum_{j=1}^{m} \gamma_{j i}} \tag{8} μi=j=1mγjij=1mγjixj(8)

    Σ i = ∑ j = 1 m γ j i ( x j − μ i ) ( x j − μ i ) T ∑ j = 1 m γ j i (9) \mathbf{\Sigma}_{i}=\frac{\sum_{j=1}^{m} \gamma_{j i}\left(\boldsymbol{x}_{j}-\boldsymbol{\mu}_{i}\right)\left(\boldsymbol{x}_{j}-\boldsymbol{\mu}_{i}\right)^{\mathrm{T}}}{\sum_{j=1}^{m} \gamma_{j i}} \tag{9} Σi=j=1mγjij=1mγji(xjμi)(xjμi)T(9)

    从式 (8) 可以看出各混合成分的均值 μ i \mu_i μi 可通过样本加权平均来估计,样本权重是每个样本属于该成分的后验概率。

    对于混合系数 α i \alpha_i αi,除了要最大化 L L ( D ) L L(D) LL(D),还要满足 α i ≥ 0 , ∑ i = 1 k α i = 1 \alpha_i \geq 0,\sum_{i=1}^k \alpha_i =1 αi0,i=1kαi=1。考虑 L L ( D ) L L(D) LL(D) 的拉格朗日形式:

    L L ( D ) + λ ( ∑ i = 1 k α i − 1 ) (10) L L(D)+\lambda\bigg(\sum_{i=1}^k \alpha_i -1 \bigg) \tag{10} LL(D)+λ(i=1kαi1)(10)

    其中 λ \lambda λ 为拉格朗日乘子。对式 (10) 求 α i \alpha_i αi 的导数为 0,有:

    ∑ j = 1 m p ( x j ∣ μ i , Σ i ) ∑ l = 1 k α l ⋅ p ( x j ∣ μ l , Σ l ) + λ = 0 (11) \sum_{j=1}^{m} \frac{p\left(\boldsymbol{x}_{j} | \boldsymbol{\mu}_{i}, \mathbf{\Sigma}_{i}\right)}{\sum_{l=1}^{k} \alpha_{l} \cdot p\left(\boldsymbol{x}_{j} | \boldsymbol{\mu}_{l}, \mathbf{\Sigma}_{l}\right)}+\lambda=0 \tag{11} j=1ml=1kαlp(xjμl,Σl)p(xjμi,Σi)+λ=0(11)

    两边同乘以 α i \alpha_i αi ,对所有样本求和可知 λ = − m \lambda = -m λ=m,有:

    α i = 1 m ∑ j = 1 m γ j i (12) \alpha_i = \frac{1}{m} \sum_{j=1}^m \gamma_{ji} \tag{12} αi=m1j=1mγji(12)

    即每个高斯成分的混合系数有样本属于该成分的平均后验概率确定。


    1.3 EM 算法

    由上述推导即可获得高斯混合模型的 EM 算法E 步:在每步迭代中,先根据当前参数来计算每个样本属于每个高斯成分的后验概率 γ j i \gamma_{ji} γjiM 步:根据式 (8)、(9)、(11) 更新模型参数 { ( α i , μ i , Σ i ) ∣ 1 ≤ i ≤ k } \{(\alpha_i,\mu_i,\Sigma_i) | 1\leq i\leq k\} {(αi,μi,Σi)1ik}

    高斯混合聚类算法如下图所示。算法第 1 行对高斯混合分布的模型参数进行初始化(通常是随机或使用 KMeans 进行初始化),然后,在第 2-12 行基于 EM 算法对模型参数进行迭代更新。若 EM 算法的停止条件满足(例如已到达最大迭代轮数,或似然函数 L L ( D ) L L(D) LL(D) 增长很少甚至不再增长),则在第 14-17 行根据高斯混合分布确定簇划分,在第 18 行返回最终结果。

    图1 高斯混合聚类算法的 EM 算法

    2. Sklearn 实现

    sklearn.mixture.GaussianMixture(n_components=1, covariance_type=’full’, tol=0.001, reg_covar=1e-06, max_iter=100, n_init=1, init_params=’kmeans’, weights_init=None, means_init=None, precisions_init=None, random_state=None, warm_start=False, verbose=0, verbose_interval=10)

    参数 [2]

    1. n_components:混合高斯模型个数,默认为1
    2. covariance_type:协方差类型,包括{‘full’,‘tied’, ‘diag’, ‘spherical’}四种,分别对应完全协方差矩阵(元素都不为零),相同的完全协方差矩阵(HMM会用到),对角协方差矩阵(非对角为零,对角不为零),球面协方差矩阵(非对角为零,对角完全相同,球面特性),默认‘full’ 完全协方差矩阵
    3. tol:EM迭代停止阈值,默认为1e-3.
    4. reg_covar:协方差对角非负正则化,保证协方差矩阵均为正,默认为0
    5. max_iter:最大迭代次数,默认100
    6. n_init:初始化次数,用于产生最佳初始参数,默认为1
    7. init_params: {‘kmeans’, ‘random’}, defaults to ‘kmeans’.初始化参数实现方式,默认用kmeans实现,也可以选择随机产生
    8. weights_init:各组成模型的先验权重,可以自己设,默认按照7产生
    9. means_init:初始化均值,同8
    10. precisions_init:初始化精确度(模型个数,特征个数),默认按照7实现
    11. random_state :随机数发生器
    12. warm_start :若为True,则fit()调用会以上一次fit()的结果作为初始化参数,适合相同问题多次fit的情况,能加速收敛,默认为False。
    13. verbose :使能迭代信息显示,默认为0,可以为1或者大于1(显示的信息不同)
    14. verbose_interval :与13挂钩,若使能迭代信息显示,设置多少次迭代后显示信息,默认10次。

    参考文献

    [1] 李航. 统计学习方法[M]. 北京: 清华大学出版社, 2012: 95-96.

    [2] QuantumChaos.SKlearn库EM算法混合高斯模型参数说明及代码实现[EB/OL].https://blog.csdn.net/lihou1987/article/details/70833229?utm_source=copy, 2017-04-26.

    更多相关内容
  • 简单实用的高斯混合聚类算法,适合初学者,方便好用!
  • 对西瓜书高斯混合聚类算法的实现,最终实现效果与西瓜书所展示的效果一致(ps:对混合模型的初始化完全按照西瓜书的来,读者可以稍加修改)
  • 基于高斯混合聚类模型的公交出行特征分析.pdf
  • 高斯混合聚类

    2020-11-28 15:53:31
    高斯混合聚类将高斯分布、贝叶斯公式、极大似然法(EM)估计的思路混合在这一种方法中。高斯混合聚类是从概率的角度对样本进行聚类的,而且这个概率是连续概率。 基础概念 先验概率:指根据以往经验和分析得到的...

    高斯混合聚类将高斯分布、贝叶斯公式、极大似然法(EM)估计的思路混合在这一种方法中。高斯混合聚类是从概率的角度对样本进行聚类的,而且这个概率是连续概率。

    基础概念

    1. 先验概率:指根据以往经验和分析得到的概率。
    2. 类条件概率:指已知一个条件下,结果发生的概率。
    3. 后验概率:判断结果的发生是由哪个原因引起的概率。
    4. 一元高斯函数:

    多元高斯分布:对n维样本空间 X中的随机向量x,若x服从高斯分布,其概率密度函数为:

    上面的一元正态公式其实就是当n = 1 的时候的特殊化

    其中μ是n维均值向量,\sum是n*n的协方差矩阵。由9.28式可看出,高斯分布完全由均值向量\mu和协方差矩阵\sum这两个参数决定。为了明确显示高斯分布与相应参数的依赖关系,将概率密度函数记为\rho \left ( x\mid \mu ,\sum \right )

    二元高斯曲线:

    现在用西瓜例子来理解一下贝叶斯公式

    事件A:随机从坏瓜、一般瓜和好瓜三类中选一类。( P(A i)是三个常数,i=3);

    事件B:随机在一类瓜中选一个含糖量为某值、密度为某值的瓜。(P(B j ) 是二维高斯曲线,j=3)

    1.乘法公式:在自然界中随机选择一个瓜(事件A B ), P(AB) = P(A)P(B|A) = P(B)P(A|B),操作是选一个类再在这个类里选一个瓜。或者先随机决定要选的瓜的含糖量和密度数值,再随机决定要去哪类瓜里找

    2.全概率公式:事先写下我想要的“dream瓜”的含糖量和密度数值(事 件 B ),随机选一个瓜,选中瓜的刚好是我的dream瓜的概率: P ( B ) = P ( A 1 ) P ( B ∣ A 1 ) + P ( A 2 ) P ( B ∣ A 2 ) + … + P ( A n ) P ( B ∣ A n ) ​。将这个数值已确定的瓜是来自坏瓜、一般瓜、好瓜的概率分别相加。

     3.贝叶斯公式:随机抽个瓜,假如我抽到了一个含量糖为某值、密度为某值的瓜,这个瓜是来自第i ii类瓜的概率?在第i ii类中抽到这个数值的瓜的概率除以从各类中抽到这个数值的瓜的概率之和。

    我们可定义高斯混合分布:

    我们已知样本集30个瓜的含量糖、密度的值。先重点研究其中一个编号为x 的样本瓜x,P m ( x ) 是指我们在自然界中随机选一个瓜,选中的恰好是这个样本瓜x 的概率。

    1.首先,当i =1,比如这里是指坏瓜类,那么这时坏瓜的高斯曲线已知已确定了(μ 1、Σ 1 已确定)。根据这个确定高斯曲线可以得到样本瓜x 在坏瓜类中存在的概率p(x∣μ 1,Σ 1 )。

    2.然后,p(x∣μ 1,Σ 1 )与 α i ​  相乘的结果就是从坏瓜类中抽中样本瓜x xx的概率。

    3.最后,分别计算i =1(从坏瓜类中抽)、i=2(从一般瓜类中抽)和i =3(从好瓜类中抽)的情况下抽到样本瓜x 的概率,将这三种情况下的概率相加,得到的P m ( x ) 即是在自然界中抽一个瓜正好抽中样本瓜x 的概率。

    后验分布:假如已知μ 、 Σ ,现在我们已经拿到了一个瓜,已知这个瓜的含糖量和密度数值,但不知道这个瓜来自哪个类,怎么办?我们可以将这个瓜的含糖量和密度数值分别代入3类瓜的高斯分布曲线,在哪类瓜中的概率高,即说明这个瓜来自哪类瓜的可能性最大。

    如何划分簇:从原型聚类的角度来看,高斯混合聚类是采用概率模型(高斯分布)对原型进行刻画, 簇划分则由原型对应后验概率确定。

     

     

    展开全文
  • 在讲高斯混合聚类算法之前先补充以下相关的数学知识,由于篇幅原因,只是简单叙述,如需详细内容,请查阅相关资料 一、正态分布 在概率论中我们学过某些数值在一定情况下是符合正态分布的。 我们经常见到某某数据...


    image-20210629190626766

     
    简 介:下面是我在学习时候的记录并加上自己的理解。本文意在记录自己近期学习过程中的所学所得,如有错误,欢迎大家指正。
     
    关键词:高斯混合聚类、机器学习、极大似然估计

    在讲高斯混合聚类算法之前先补充以下相关的数学知识,由于篇幅原因,只是简单叙述,如需详细内容,请查阅相关资料

    一、正态分布

    在概率论中我们学过某些数值在一定情况下是符合正态分布的。

    我们经常见到某某数据符合正态分布,那么它到底是什么意思呢?

    正态曲线呈钟型,两头低,中间高,左右对称因其曲线呈钟形,因此人们又经常称之为钟形曲线。
    若随机变量X服从一个数学期望为μ、方差为σ2的正态分布,记为N(μ,σ2)。其概率密度函数为正态分布的期望值μ决定了其位置,其标准差σ决定了分布的幅度。当μ = 0,σ = 1时的正态分布是标准正态分布。

    image-20210717191517298

    正态分布是许多统计方法的理论基础。检验、方差分析、相关和回归分析等多种统计方法均要求分析的指标服从正态分布。许多统计方法虽然不要求分析指标服从正态分布,但相应的统计量在大样本时近似正态分布,因而大样本时这些统计推断方法也是以正态分布为理论基础的。

    为什么很多假设都是使用正态分布呢?为什么不适用像泊松分布、指数分布这些分布呢?

    1. 根据中心极限定律,如果我们的样本足够多的情况下,我们的数据是符合正态分布的
    2. 正态分布是属于一种正态分布,具有良好的数学性质,便于建模

    1.一元正态分布

    一元正态分布的概率密度为:
    f ( x ) = 1 2 π σ e − ( x − μ ) 2 2 σ 2 f(x)=\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(x-\mu)^2}{2\sigma^2}} f(x)=2π σ1e2σ2(xμ)2
    我们记作 N ( μ , σ 2 ) N(\mu,\sigma^2) N(μ,σ2) ,其中 μ \mu μ 为数据的均值,而 σ 2 \sigma^2 σ2 为样本的方差,f(x)为概率密度,进行积分后值为1。

    2.二元正态分布

    二元正态分布的概率密度为:
    f ( x 1 , x 2 ) = 1 2 π σ 1 σ 2 1 − ρ 2 e − 1 2 ( 1 − ρ 2 ) 2 { ( x 1 − μ 1 ) 2 σ 1 2 − 2 ρ ( x 1 − μ 1 ) ( x 2 − μ 2 ) σ 1 σ 2 + ( x 2 − μ 2 ) 2 σ 2 2 } f(x_1,x_2)=\frac{1}{2\pi\sigma_1\sigma_2\sqrt{1-\rho^2}}e^{\frac{-1}{2(1-\rho^2)^2}\{\frac{(x_1-\mu_1)^2}{\sigma_1^2}-2\rho\frac{(x_1-\mu_1)(x_2-\mu_2)}{\sigma_1\sigma_2}+\frac{(x_2-\mu_2)^2}{\sigma_2^2}\}} f(x1,x2)=2πσ1σ21ρ2 1e2(1ρ2)21{σ12(x1μ1)22ρσ1σ2(x1μ1)(x2μ2)+σ22(x2μ2)2}
    常记作 N ( μ 1 , μ 2 , σ 1 2 , σ 2 2 , ρ ) N(\mu_1,\mu_2,\sigma_1^2,\sigma_2^2,\rho) N(μ1,μ2,σ12,σ22,ρ) ,分别对应着两个随机变量的均值和方差,以及两个随机变量之间的相关系数。

    3.多元正态分布

    多元正态分布的概率密度为:
    f ( X ) = 1 ( 2 π ) n 2 ∣ ∑ ∣ 1 2 e − 1 2 ( X − μ ) T ∑ − 1 ( X − μ ) f(X)=\frac{1}{(2\pi)^{\frac{n}{2}}|\sum|^{\frac{1}{2}}}e^{-\frac{1}{2}(X-\mu)^T\sum^-1(X-\mu)} f(X)=(2π)2n211e21(Xμ)T1(Xμ)
    上面式子中的 μ \mu μ 为n维均值向量,形状为 (n,1), ∑ \sum 为随机变量X的协方差矩阵。

    该式子为一元正态分布的推广公式,涉及到多维变量,用矩阵进行表示。

    4.概率密度函数

    我们发现上面的三个式子中存在两种变量,一种是数据X,另外一种就是参数 μ \mu μ σ \sigma σ ,也就是分布的参数。对于概率来说,我们是已知模型分布和参数,然后带入数据去求概率,而概率统计是已知分布,但是不知道分布符合的参数,然后基于样本数据X去估计分布的参数,使用的方法就是极大似然估计。

    5.极大似然估计

    什么是极大似然估计?

    上面我们说有些情况,我们只是知道数据符合的分布,但是不知道具体符合的参数为多少,就是我们只知道某某数据符合正态分布,但是正态分布的均值和方差我们是不知道的,所以要根据已有样本进行估计,其实就是将所有样本数据带入概率密度公式,会获得每个数据的概率,然后将各概率相乘,最终优化就是使该式子达到最大,为什么是最大?因为我们的数据符合该分布,也就是要我们的样本数据大概率的出现在该分布中,然后求出使概率乘积最大的参数。

    二、高斯混合聚类

    说了这么久,终于到了我们的主题,就是我们的高斯混合聚类。

    它是一种基于概率分布的聚类算法,它是首先假设每个簇符合不同的高斯分布,也就是多元正态分布,说白了就是每个簇内的数据会符合一定的数据分布。

    它的大致流程就是首先假设k个高斯分布,然后判断每个样本符合各个分布的概率,将该样本划为概率最大的那个分布簇内,然后一轮后,进行更新我们的高斯分布参数,就会用到我们的极大似然估计,然后再基于新的分布去计算符合各个分布的概率,不断迭代更新,直至模型收敛达到局部最优解,常见的算法就是EM算法,它会同时估计出每个样本所属的簇类别以及每个簇的概率分布的参数。

    概率密度常记为:
    f ( X ) = p ( x ∣ μ i , ∑ ) f(X)=p(x|\mu_i,\sum) f(X)=p(xμi,)
    意思就是在参数为一定值的情况下符合的分布,对应相应的概率密度函数。

    image-20210717202556494

    有了上述的铺垫之后,我们就可以定义聚类需要的高斯混合分布函数:
    p ( X ) = ∑ i = 1 k α i p ( X ∣ μ i , ∑ i ) p(X)=\sum_{i=1}^k\alpha_ip(X|\mu_i,\sum_i) p(X)=i=1kαip(Xμi,i)
    其中 α \alpha α 就代表我们选择每个簇的概率,那么它的和肯定是等于1的, ∑ i = 1 k α i = 1 \sum_{i=1}^k\alpha_i=1 i=1kαi=1

    我们现在想计算对于某一个数据符合哪个簇的概率,如果对应哪个簇的概率大,那么该数据就划分为该簇内,也就对应条件概率 p ( Z ∣ x ) p(Z|x) p(Zx) ,意思就是在x的前提,符合哪个分布的概率。

    我们引入几个变量, z i z_i zi代表我们选择某个分布的随机变量,那么取值肯定是1-k之间,很显然它是对应我们上面的 α \alpha α 的,也就是 p ( z i = i ) = α i p(z_i=i)=\alpha_i p(zi=i)=αi,所以我们最终的条件概率公式为:
    p ( z j = i ∣ x j ) = P ( z j = i ) p ( x j ∣ z j = i ) p ( x j ) = α i p ( x j ∣ μ i , ∑ ) ∑ l = 1 k α l p ( x j ∣ μ l , ∑ ) p(z_j=i|x_j)=\frac{P(z_j=i)p(x_j|z_j=i)}{p(x_j)} =\frac{\alpha_ip(x_j|\mu_i,\sum)}{\sum_{l=1}^k\alpha_lp(x_j|\mu_l,\sum)} p(zj=ixj)=p(xj)P(zj=i)p(xjzj=i)=l=1kαlp(xjμl,)αip(xjμi,)
    该公式的意思就是我们的某一样本符合某一分布的概率,记为 γ j i \gamma_{ji} γji ,意思是数据 j j j 符合分布 i i i 的概率,所以我们就是要求:
    λ j = a r g m a x i ∈ { 1 , 2 , . . . k } γ j i \lambda_j=argmax_{i\in \{1,2,...k\}}\gamma_{ji} λj=argmaxi{1,2,...k}γji
    我们会求出数据 j j j 符合每个分布的概率,然后获得之中最大的概率,那么数据 j j j 就会被划分到与之对应的簇。

    但是问题来了,在求该概率时,公式分子和分母都存在某一分布的概率密度,我们只是知道符合高斯分布,但是具体的参数是不知道的,那么怎么获得概率密度函数呢?

    上面说到了,采用极大似然的方式,就是我们的样本数据出现在对应分布的概率乘积达到最大,所以我们就要进行最大化似然:
    L L ( D ) = l n ( ∏ j = 1 m p ( x j ) ) = ∑ j = 1 m l n ( ∑ i = 1 k α i p ( x j ∣ u i , ∑ ) ) LL(D)=ln(\prod_{j=1}^mp(x_j))=\sum_{j=1}^mln(\sum_{i=1}^k\alpha_ip(x_j|u_i,\sum)) LL(D)=ln(j=1mp(xj))=j=1mln(i=1kαip(xjui,))

    对上述函数进行求导,然后另导数为0,分别求出对应的 μ \mu μ ,和 ∑ \sum

    然后求得:
    μ i = ∑ j = 1 m γ j i x j ∑ j = 1 m γ j i \mu_i=\frac{\sum_{j=1}^m\gamma_{ji}x_j}{\sum_{j=1}^m\gamma_{ji}} μi=j=1mγjij=1mγjixj

    ∑ i = ∑ j = 1 m γ j i ( x j − μ i ) ( x j − μ i ) T ∑ j = 1 m γ j i \sum_i=\frac{\sum_{j=1}^m\gamma_{ji}(x_j-\mu_i)(x_j-\mu_i)^T}{\sum_{j=1}^m\gamma_{ji}} i=j=1mγjij=1mγji(xjμi)(xjμi)T

    但是在求对应高斯混合系数 α \alpha α 时,会有约束条件,就是 a i ≥ 0 , ∑ i = 1 k α i = 1 a_i\geq0,\sum_{i=1}^k\alpha_i=1 ai0,i=1kαi=1 ,所以我们需要对原方程添加个拉格朗日乘子。

    拉格朗日乘法得基本形态就是:

    对于函数 z = f ( x , y ) z=f(x,y) z=f(x,y) ,在满足 ψ ( x , y ) = 0 \psi(x,y)=0 ψ(x,y)=0 时得条件极值,可以转化为:
    f ( x , y ) + λ ψ ( x , y ) f(x,y)+\lambda\psi(x,y) f(x,y)+λψ(x,y)
    就是在原有的方程后面添加约束条件。

    对与我们的问题就是要解方程:
    L L ( D ) + λ ( ∑ i = 1 k α i − 1 ) LL(D)+\lambda(\sum_{i=1}^k\alpha_i-1) LL(D)+λ(i=1kαi1)
    解得:
    α i = 1 m ∑ j = 1 m γ j i \alpha_i=\frac{1}{m}\sum_{j=1}^m\gamma_{ji} αi=m1j=1mγji

    三、详细算法流程

    下面的图是我从西瓜书中摘出来的,公式看起来有点多,下面我用简单的语言将整个流程叙述一下。

    image-20210717205850203

    1. 首先在算法开始前需要确立簇的个数k,这也就对应着k个不同的高斯分布
    2. 初始化每个簇的高斯分布参数, μ , ∑ , α \mu,\sum,\alpha μ,,α,用于构建高斯混合概率密度,由于是开始还没有数据,肯定是要随机给值的
    3. 遍历所有的样本数据,计算每个样本符合每个分布的条件概率,即 γ j i \gamma_{ji} γji
    4. 然后利用计算好的 γ j i \gamma_{ji} γji 去计算新的 μ , ∑ , α \mu,\sum,\alpha μ,,α ,用新的参数去更新我们的分布模型,获得新的概率密度
    5. 利用新的分布模型计算每个样本的条件概率,重复2-4步骤,不断地进行更新模型分布参数
    6. 直到模型收敛,达到一定精度,停止迭代
    7. 根据我们新的模型参数获取每个样本的条件概率,然后获取的最大值,即 λ j = a r g m a x i ∈ { 1 , 2 , . . . k } γ j i \lambda_j=argmax_{i\in \{1,2,...k\}}\gamma_{ji} λj=argmaxi{1,2,...k}γji,将其划分到相应的簇中
    8. 结束

    写在最后

    ​         大家好,我是阿光,觉得文章还不错的话,记得“一键三连”哦!!!

    本文意在记录自己近期学习过程中的所学所得,如有错误,欢迎大家指正。

    image-20210629204336524

    展开全文
  • 聚类:高斯混合聚类

    2020-08-21 23:59:19
    定义高斯混合分布为:由k个高斯分布按照各自的系数组成 样本生成的过程:αi\alpha_iαi​ 是选择第 iii 个混合成分的概率,根据k 个先验分布选择哪个分布;按照被选择成分的概率密度函数进行采样,生成样本。 1 ...

    1概率分布

    高斯混合聚类(GMM),一种基于概率的聚类模型。
    (还是截图方便很多)

    1.1 高斯分布

    高斯分布密度函数为:
    在这里插入图片描述

    1.2 高斯混合分布

    定义高斯混合分布为:由k个高斯分布按照各自的系数组成,概率密度函数定义为:
    在这里插入图片描述
    假设有k个高斯分布,每个样本由其中一个分布生成,这k个高斯分布就是k个簇。

    样本生成的过程: α i \alpha_i αi 是选择第 i i i 个混合成分的概率,根据k 个先验分布选择哪个分布;按照被选择成分的概率密度函数进行采样,生成样本。

    1.3 后验概率

    z j z_j zj代表样本 j j j 属于的高斯分布,取值为1,2,…,k, z j z_j zj的后验概率为:
    在这里插入图片描述

    2 EM求解

    2.1 极大似然

    在这里插入图片描述

    2.2 EM

    • E步:对于每一个样本,计算k个高斯成分的后验概率
      γ j i = p m ( z j = i ∣ x j ) \gamma_{ji}=p_m(z_j=i|x_j) γji=pm(zj=ixj)

    • M步:更新分布的参数

      • ①LLD对参数 μ i ∑ i \mu_i \sum_i μii 分别求导=0 得:
        在这里插入图片描述
        在这里插入图片描述

      • ②对参数 α i \alpha_i αi 先构造拉格朗日,再求导=0
        在这里插入图片描述
        在这里插入图片描述
        GMM的整体流程图:
        在这里插入图片描述

    展开全文
  • 高斯混合聚类算法及python实现

    千次阅读 2019-07-05 19:46:41
    1 高斯混合聚类算法 输入: 样本数据 D = c o r 1 , c o r 2 , . . . , c o r m , c o r i = ( x i , y i ) D={cor_1, cor_2, ..., cor_m}, cor_i=(x_i, y_i) D = c o r 1 ​ , c o r 2 ​ , . . . , c o r m ...
  • 高斯混合(Mixture-of-Gaussian)聚类采用概率模型来表达聚类原型,我们先大概回忆一下高斯分布的概率密度函数,对于n维样本空间中的随机变量,如果服从高斯分布,其概率密度函数为: 我们可以看到其中的高斯分布...
  • 本文提出一种基于高斯混合聚类的风电出力场景划分的方法, 即通过属于某一类的概率大小来判断最终的归属类别. 首先根据BIC准则, 肘部法则和轮廓系数分别确定GMM聚类和K-means聚类的最佳数量, 然后以某地区实际风电为...
  • 这是用于聚类高斯混合建模的简单实现。 此实现旨在用于教育目的,它的实现方式使代码尽可能具有可读性,而不是尽可能高效。
  • 高斯混合模型聚类(Gaussian Mixture Mode,GMM)是一种概率式的聚类方法,它假定所有的数据样本x由k个混合多元高斯分布组合成的混合分布生成。 使用场景:用于平坦的结合结构,对密度估计很合适
  • EM算法和高斯混合聚类

    千次阅读 2018-11-15 21:36:49
    EM算法引言 在现实应用中,概率模型有时既含有观测变量(observable variable),又含有不能被观测到的变量,该变量称为隐变量(latent variable)。如果给定数据全都是观测变量,那么可以使用最大似然估计求解模型参数...
  • 高斯混合聚类(GMM)

    千次阅读 2018-12-02 16:10:53
    ##初始化 均值向量、混合比例、协方差矩阵 # mus = dataset[[5,21,26]]#西瓜书上的均值 mus = dataset [ random . sample ( range ( 1 , len ( dataset ) ) , k ) ] alphas = 0.3 * np . ones ( k...
  • 看了西关书的聚类算法,算法原理很容易明白,接下来就是整理成自己的理解思路,然后一步一步来实现算法,那么就来做吧。 Guassian代码下载链接 ok啦,接下来不废话上代码(Matlab发布形式) %Fucntion :...
  • 基于高斯混合聚类的煤岩识别技术研究.pdf
  • 基于高斯混合聚类的风电出力场景划分.pdf
  • 基于高斯混合聚类的切换系统的辨识.pdf
  • 【机器学习笔记】通俗易懂解释高斯混合聚类原理

    万次阅读 多人点赞 2018-04-18 15:52:32
    其它聚类方法都比较容易看懂,唯有高斯混合聚类这种方法看上去比较复杂,有点难理解。但是,当将它的原理和过程看懂之后,其实这节书所讲的内容并不复杂,只是将高斯分布、贝叶斯公式、极大似然法和聚类的思路混合在...
  • 基于刷卡数据和高斯混合聚类的地铁车站分类.pdf
  • 基于高斯混合聚类的阵列干涉SAR三维成像.pdf
  • 基于高斯混合聚类模型的汽轮机运行状态预警.pdf
  • 基于高斯混合聚类的电力工控系统异常检测研究.pdf
  • 基于程序变异和高斯混合聚类的错误定位技术.pdf
  • 嵌套删失数据期望最大化的高斯混合聚类算法.pdf
  • 高斯混合模型聚类(Gaussian Mixture Mode,GMM) 高斯混合模型是一种概率式的聚类方法,它假定所有的数据样本 xxx由kkk个混合多元高斯分布组合成的混合分布生成。 p(x)=∑i=1kαi⋅p(x|μi,Σi)(1.1)(1.1)p(x)=∑i=...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,681
精华内容 4,272
关键字:

高斯混合聚类

友情链接: 概率统计4.zip