首页 > 其他分享 >高斯混合模型(GMM)——完整推导与代码实现

高斯混合模型(GMM)——完整推导与代码实现

时间:2024-12-18 12:57:57浏览次数:5  
标签:dots mathbf 高斯 推导 ij GMM theta pi zi

Gaussian Mixed Model

应用​

  1. 聚类

    K-means无法处理两个聚类中心点相同的类。比如 A ∼ N ( μ ,    σ 1 2 ) ,    B ∼ N ( μ , σ 2 2 ) A\sim N(\mu,\;\sigma_1^2),\;B\sim N(\mu,\sigma_2^2) A∼N(μ,σ12​),B∼N(μ,σ22​) 是无法用k-means进行聚类的。

  2. 密度估计​

  3. 新数据的生成

原理

我们认为数据空间是由某些高斯分布生成的,但对于某一具体的样本单元,我们只能观测到它的数值,而无法观测到它具体是由哪个高斯分布生成的,所以我们对样本单元背后的高斯分布进行建模的时候,认为样本单元以一定的权重(也可以理解为概率)服从某个具体的高斯分布。​

符号说明

符号解释
n n n高斯分布的个数(总体聚类的类个数)
N N N样本数
x i x_i xi​ i = 1 , 2 , … , N i=1,2,\dots,N i=1,2,…,N第 i i i个样本单元
z i z_i zi​ i = 1 , 2 , … , N i=1,2,\dots,N i=1,2,…,N第 i i i个样本单元的隐变量
c j c_j cj​ j = 1 , 2 , … , n j=1,2,\dots,n j=1,2,…,n z i z_i zi​可能的取值
π i j \pi_{ij} πij​ i = 1 , 2 , … , N j = 1 , 2 , … , n i=1,2,\dots,N\\j=1,2,\dots,n i=1,2,…,Nj=1,2,…,n p ( z i = c j ) p(z_i=c_j) p(zi​=cj​)
π i j ( t ) \pi_{ij}^{(t)} πij(t)​ i = 1 , 2 , … , N , j = 1 , 2 , … , n , t ∈ N + i=1,2,\dots,N,\\j=1,2,\dots,n,\\t\in\mathbb{N}^+ i=1,2,…,N,j=1,2,…,n,t∈N+隐变量 z i z_i zi​在第 t t t步时取值为 c j c_j cj​的先验概率
γ t ( z i = c j ) \gamma_t(z_i=c_j) γt​(zi​=cj​) i = 1 , 2 , … , N , j = 1 , 2 , … , n , t ∈ N + i=1,2,\dots,N,\\j=1,2,\dots,n,\\t\in\mathbb{N}^+ i=1,2,…,N,j=1,2,…,n,t∈N+隐变量 z i z_i zi​在第 t t t步时取值为 c j c_j cj​的后验概率
π i = ( π i 1 , π i 2 , … , π i n ) \pi_i=(\pi_{i1},\pi_{i2},\dots,\pi_{in}) πi​=(πi1​,πi2​,…,πin​) i = 1 , 2 , … , N i=1,2,\dots,N i=1,2,…,N z i z_i zi​的分布
30
μ j \mu_j μj​ j = 1 , 2 , … , n j=1,2,\dots,n j=1,2,…,n第 j j j个高斯分布的均值
μ j ( t ) \mu_j^{(t)} μj(t)​ j = 1 , 2 , … , n t ∈ N + j=1,2,\dots,n\\t\in\mathbb{N}^+ j=1,2,…,nt∈N+第 t t t步时,第 j j j个高斯分布的均值
μ = ( μ 1 , μ 2 , … , μ n ) \mu=(\mu_1,\mu_2,\dots,\mu_n) μ=(μ1​,μ2​,…,μn​)所有高斯分布的均值
Σ j \Sigma_j Σj​ j = 1 , 2 , … , n j=1,2,\dots,n j=1,2,…,n第 j j j个高斯分布的协方差矩阵
Σ j ( t ) \Sigma_j^{(t)} Σj(t)​ j = 1 , 2 , … , n t ∈ N + j=1,2,\dots,n\\t\in\mathbb{N}^+ j=1,2,…,nt∈N+第 t t t步时,第 j j j个高斯分布的协方差矩阵
Σ = ( Σ 1 , Σ 2 , … , Σ n ) \Sigma=(\Sigma_1,\Sigma_2,\dots,\Sigma_n) Σ=(Σ1​,Σ2​,…,Σn​)所有高斯分布的协方差矩阵
θ i = ( μ i ,    Σ i ) \mathbf{\theta_{i}}=(\mu_i,\;\Sigma_i) θi​=(μi​,Σi​) i = 1 , 2 , … , n i=1,2,\dots,n i=1,2,…,n第 i i i个高斯分布参数的值
θ i ( t ) = ( μ i ( t ) ,    Σ i ( t ) ) \mathbf{\theta_{i}^{(t)}}=(\mu_i^{(t)},\;\Sigma_i^{(t)}) θi(t)​=(μi(t)​,Σi(t)​) i = 1 , 2 , … , n , t ∈ N + i=1,2,\dots,n,\\t\in\mathbb{N}^+ i=1,2,…,n,t∈N+第 t t t步时,第 i i i个高斯分布参数的值
θ = ( θ 1 , θ 2 , … , θ n ) \mathbf{\theta}=(\mathbf{\theta_1},\mathbf{\theta_2},\dots,\mathbf{\theta_n}) θ=(θ1​,θ2​,…,θn​)所有高斯分布参数的值
θ ( t ) = ( θ 1 ( t ) , θ 2 ( t ) , … , θ n ( t ) ) \mathbf{\theta^{(t)}}=(\mathbf{\theta_1^{(t)}},\mathbf{\theta_2^{(t)}},\dots,\mathbf{\theta_n^{(t)}}) θ(t)=(θ1(t)​,θ2(t)​,…,θn(t)​)第 t t t步时,所有高斯分布参数的值
40
l ( θ ) l(\mathbf{\theta}) l(θ)似然函数的下界函数
l t ( θ ) l_t(\mathbf{\theta}) lt​(θ)似然函数的下界函数在 θ ( t ) \mathbf{\theta^{(t)}} θ(t)下的值

隐变量(latent variable)


个体到底怎样服从于这 n n n个正态分布呢?我们引入隐变量 z z z来表示这一点。每一个个体的背后都有一个 z z z, z z z的每一个取值都对应着一个高斯分布, p ( z i = c j ) ,    i = 1 , 2 , … , n p(z_i=c_j),\;i=1,2,\dots,n p(zi​=cj​),i=1,2,…,n即表示第 i i i个样本服从第 j j j个正态分布的概率,也即第 j j j个高斯分布对于第 i i i个样本的权重。

z i z_i zi​ c 1 c_1 c1​ c 2 c_2 c2​ ⋯ \cdots ⋯ c n c_n cn​
p ( z i = c j ) p(z_i=c_j) p(zi​=cj​) π i 1 \pi_{i1} πi1​ π i 2 \pi_{i2} πi2​ ⋯ \cdots ⋯ π i n \pi_{in} πin​

其中:​
∑ j = 1 n π i j = 1 ,    ∀    i = 1 , 2 , … , N \sum_{j=1}^n\pi_{ij}=1,\;\forall\;i=1,2,\dots,N j=1∑n​πij​=1,∀i=1,2,…,N

算法具体过程


我们使用EM算法来求得参数 θ \mathbf{\theta} θ。

似然函数的构建

给定一个数据集,假设样本间相互独立,则可以给出如下似然函数:

log ⁡ L ( θ ) = ∑ i = 1 N log ⁡ p ( x i ∣ θ ) = ∑ i = 1 N log ⁡ ( ∑ j = 1 n p ( x i , z i = c j ∣ θ ) ) 70 \begin{align*} \log L(\mathbf{\theta}) &=\sum_{i=1}^N\log p(x_i|\mathbf{\theta}) \\ &=\sum_{i=1}^N\log \left(\sum_{j=1}^np(x_i,z_i=c_j|\mathbf{\theta})\right) 70 \end{align*} logL(θ)​=i=1∑N​logp(xi​∣θ)=i=1∑N​log(j=1∑n​p(xi​,zi​=cj​∣θ))70​

step1

定义高斯分布个数 n n n,对每个高斯分布设置初始参数值 θ i ( 0 ) = ( μ i ( 0 ) ,    Σ i ( 0 ) ) ,    i = 1 , 2 , … , n \mathbf{\theta_i^{(0)}}=(\mu_i^{(0)},\;\Sigma_i^{(0)}),\;i=1,2,\dots,n θi(0)​=(μi(0)​,Σi(0)​),i=1,2,…,n,并对所有 π i j \pi_{ij} πij​设置初始参数值 π i j ( 0 ) \pi_{ij}^{(0)} πij(0)​。一般通过k-means算法计算初始值,即先使用k-means聚出 n n n类,对每一类计算它们的均值和协方差矩阵作为初始值。

step2 E-step

因为对数函数是个凹函数,由Jensen不等式的期望形式(可见(Jensen’s inequality - Wikipedia)),将 p ( x i , z i ∣ θ ) π i j \frac{p(x_i,z_i|\mathbf{\theta})}{\pi_{ij}} πij​p(xi​,zi​∣θ)​看作为 g ( z i ) g(z_i) g(zi​), p ( x i , z i = c j ∣ θ ) π i j \frac{p(x_i,z_i=c_j|\mathbf{\theta})}{\pi_{ij}} πij​p(xi​,zi​=cj​∣θ)​即为 g ( z i = c j ) g(z_i=c_j) g(zi​=cj​), π i j \pi_{ij} πij​看作为 p ( g ( z i = c j ) ) p(g(z_i=c_j)) p(g(zi​=cj​)),就有:
log ⁡ L ( θ ) = ∑ i = 1 N log ⁡ ∑ j = 1 n p ( x i , z i = c j ∣ θ ) = ∑ i = 1 N log ⁡ ∑ j = 1 n π i j p ( x i , z i = c j ∣ θ ) π i j = ∑ i = 1 N log ⁡ E [ g ( z i ) ] ⩾ ∑ i = 1 N E [ log ⁡ g ( z i ) ] = ∑ i = 1 N ∑ j = 1 n π i j log ⁡ p ( x i , z i = c j ∣ θ ) π i j \begin{align*} \log L(\mathbf{\theta}) &=\sum_{i=1}^N\log \sum_{j=1}^np(x_i,z_i=c_j|\mathbf{\theta}) \\ &=\sum_{i=1}^N\log \sum_{j=1}^n\pi_{ij}\frac{p(x_i,z_i=c_j|\mathbf{\theta})}{\pi_{ij}} \\ &=\sum_{i=1}^N\log E[g(z_i)] \\ &\geqslant\sum_{i=1}^N E[\log g(z_i)] \\ &=\sum_{i=1}^N\sum_{j=1}^n\pi_{ij}\log\frac{p(x_i,z_i=c_j|\mathbf{\theta})}{\pi_{ij}} \end{align*} logL(θ)​=i=1∑N​logj=1∑n​p(xi​,zi​=cj​∣θ)=i=1∑N​logj=1∑n​πij​πij​p(xi​,zi​=cj​∣θ)​=i=1∑N​logE[g(zi​)]⩾i=1∑N​E[logg(zi​)]=i=1∑N​j=1∑n​πij​logπij​p(xi​,zi​=cj​∣θ)​​

因此我们可以通过提高 ∑ i = 1 N ∑ j = 1 n π i j log ⁡ p ( x i , z i = c j ∣ θ ) π i j \sum_{i=1}^N\sum_{j=1}^n\pi_{ij}\log\frac{p(x_i,z_i=c_j|\mathbf{\theta})}{\pi_{ij}} ∑i=1N​∑j=1n​πij​logπij​p(xi​,zi​=cj​∣θ)​ 的下界来提高似然函数值。由Jensen不等式等号成立的条件,当 g ( z i ) = E [ g ( z i ) ] g(z_i)=E[g(z_i)] g(zi​)=E[g(zi​)]时等号成立。令 E [ g ( z i ) ] = C E[g(z_i)]=C E[g(zi​)]=C,于是此时:​
p ( x i , z i = c j ∣ θ ) π i j = C ,    ∀    j ∈ { 1 , 2 , … , n } ∑ j = 1 n p ( x i , z i = c j ∣ θ ) = ∑ j = 1 n C π i j ∑ j = 1 n p ( x i , z i = c j ∣ θ ) = C 100 \begin{gather*} \frac{p(x_i,z_i=c_j|\mathbf{\theta})}{\pi_{ij}}=C,\;\forall\;j\in\{1,2,\dots,n\} \\ \sum_{j=1}^np(x_i,z_i=c_j|\mathbf{\theta})=\sum_{j=1}^nC\pi_{ij} \\ \sum_{j=1}^np(x_i,z_i=c_j|\mathbf{\theta})=C \end{gather*} 100 πij​p(xi​,zi​=cj​∣θ)​=C,∀j∈{1,2,…,n}j=1∑n​p(xi​,zi​=cj​∣θ)=j=1∑n​Cπij​j=1∑n​p(xi​,zi​=cj​∣θ)=C​100
也即:​
π i j = p ( x i , z i = c j ∣ θ ) ∑ k = 1 n p ( x i , z i = c k ∣ θ ) = p ( x i , z i = c j ∣ θ ) p ( x i ∣ θ ) = p ( z i = c j ∣ x i , θ ) \begin{align*} \pi_{ij} &=\frac{p(x_i,z_i=c_j|\mathbf{\theta})}{\sum_{k=1}^np(x_i,z_i=c_k|\mathbf{\theta})} \\ &=\frac{p(x_i,z_i=c_j|\mathbf{\theta})}{p(x_i|\mathbf{\theta})} \\ &=p(z_i=c_j|x_i,\mathbf{\theta}) \end{align*} πij​​=∑k=1n​p(xi​,zi​=ck​∣θ)p(xi​,zi​=cj​∣θ)​=p(xi​∣θ)p(xi​,zi​=cj​∣θ)​=p(zi​=cj​∣xi​,θ)​
这说明在固定高斯分布参数的时候,使似然函数下界达到最大值的 π i j \pi_{ij} πij​的计算公式即为 z i = c j z_i=c_j zi​=cj​的后验概率。
根据当前参数 θ ( t ) = ( θ 1 ( t ) , θ 2 ( t ) , … , θ n ( t ) ) \mathbf{\theta^{(t)}}=(\mathbf{\theta_1^{(t)}},\mathbf{\theta_2^{(t)}},\dots,\mathbf{\theta_n^{(t)}}) θ(t)=(θ1(t)​,θ2(t)​,…,θn(t)​)和 π i j ( t ) ,    i = 1 , 2 , … , N ,    j = 1 , 2 , … , n \pi_{ij}^{(t)},\;i=1,2,\dots,N,\;j=1,2,\dots,n πij(t)​,i=1,2,…,N,j=1,2,…,n,计算每一个隐变量的后验概率分布:
γ t ( z i = c j ) = π i j ( t ) N ( x i ∣ μ j ( t ) , Σ j ( t ) ) ∑ k = 1 n π i k ( t ) N ( x i ∣ μ k ( t ) , Σ k ( t ) ) \gamma_t(z_i=c_j)=\frac{\pi_{ij}^{(t)}N(x_i|\mu_j^{(t)},\Sigma_j^{(t)})}{\sum\limits_{k=1}^n\pi_{ik}^{(t)}N(x_i|\mu_k^{(t)},\Sigma_k^{(t)})} γt​(zi​=cj​)=k=1∑n​πik(t)​N(xi​∣μk(t)​,Σk(t)​)πij(t)​N(xi​∣μj(t)​,Σj(t)​)​
令 π i j ( t + 1 ) = γ t ( z i = c j ) \pi_{ij}^{(t+1)}=\gamma_t(z_i=c_j) πij(t+1)​=γt​(zi​=cj​)。

step3 M-step

我们在前面使用隐变量的后验概率分布提高了似然函数能达到的理论下界,接下来的工作就是优化参数 θ \mathbf{\theta} θ来提高现在似然函数实际下界的值,那么我们就提高了似然函数的值。也即:

θ ( t + 1 ) = arg max ⁡ θ ( t + 1 ) l ( θ ) = arg max ⁡ θ ( t + 1 ) ∑ i = 1 N ∑ j = 1 n π i j log ⁡ p ( x i , z i = c j ∣ θ ) π i j = arg max ⁡ θ ( t + 1 ) ∑ i = 1 N ∑ j = 1 n π i j log ⁡ N ( x i ∣ μ j , Σ j ) π i j ​ \begin{align*} \mathbf{\theta^{(t+1)}} &=\argmax_\mathbf{\theta^{(t+1)}}l(\mathbf{\theta}) \\ &=\argmax_\mathbf{\theta^{(t+1)}}\sum_{i=1}^N\sum_{j=1}^n\pi_{ij}\log\frac{p(x_i,z_i=c_j|\mathbf{\theta})}{\pi_{ij}} \\ &=\argmax_\mathbf{\theta^{(t+1)}}\sum_{i=1}^N\sum_{j=1}^n\pi_{ij}\log\frac{N(x_i|\mu_j,\Sigma_j)}{\pi_{ij}} \end{align*} ​ θ(t+1)​=θ(t+1)argmax​l(θ)=θ(t+1)argmax​i=1∑N​j=1∑n​πij​logπij​p(xi​,zi​=cj​∣θ)​=θ(t+1)argmax​i=1∑N​j=1∑n​πij​logπij​N(xi​∣μj​,Σj​)​​​

对于这个优化问题,我们就可以使用一般的极大似然估计(MLE)去做了。

对 l ( θ ) l(\mathbf{\theta}) l(θ)中的各参数求偏导,令偏导为 0 0 0,即可求得 θ \mathbf{\theta} θ的更新公式为:

μ j ( t + 1 ) = ∑ i = 1 N π i j ( t + 1 ) x i ∑ i = 1 N π i j ( t + 1 ) Σ j ( t + 1 ) = ∑ i = 1 N π i j ( t + 1 ) ( x i − μ j ( t ) ) ( x i − μ j ( t ) ) T ∑ i = 1 N π i j ( t + 1 ) \begin{align*} \mu_j^{(t+1)}&=\frac{\sum_{i=1}^N\pi_{ij}^{(t+1)}x_i}{\sum_{i=1}^N\pi_{ij}^{(t+1)}} \\ \Sigma_j^{(t+1)}&=\frac{\sum_{i=1}^N\pi_{ij}^{(t+1)}(x_i-\mu_j^{(t)})(x_i-\mu_j^{(t)})^T}{\sum_{i=1}^N\pi_{ij}^{(t+1)}} \end{align*} μj(t+1)​Σj(t+1)​​=∑i=1N​πij(t+1)​∑i=1N​πij(t+1)​xi​​=∑i=1N​πij(t+1)​∑i=1N​πij(t+1)​(xi​−μj(t)​)(xi​−μj(t)​)T​​

step4 重复E-step和M-step直到收敛

由于似然函数值有上界 1 1 1,而EM算法会不断提高似然函数值,所以算法最终会收敛。但是要注意,迭代一定会收敛,但不一定会收敛到真实的参数值,因为可能会陷入局部最优。所以 EM 算法的结果很受初始值的影响。

可设置 ε \varepsilon ε,当 ∣ l t + 1 ( θ ) − l t ( θ ) ∣ < ε |l_{t+1}(\mathbf{\theta})-l_{t}(\mathbf{\theta})|<\varepsilon ∣lt+1​(θ)−lt​(θ)∣<ε时,认为已经达到收敛,停止训练。

超参数 n n n的选择


使用AIC与BIC去选择合适的 n n n。

代码实现

这里使用sklearn中的函数进行建模。

from sklean.mixture import GaussianMixture
​
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)[source]


具体参数解释与使用请参考sklearn官网文档。GaussianMixture — scikit-learn 1.6.0 documentation

结果


我们最终得到了三组参数,分别为 π = ( π 1 , π 2 , … , π N ) ,    μ = ( μ 1 , μ 2 , … , μ n ) ,    Σ = ( Σ 1 , Σ 2 , … , Σ n ) \pi=(\pi_1,\pi_2,\dots,\pi_N),\;\mu=(\mu_1,\mu_2,\dots,\mu_n),\;\Sigma=(\Sigma_1,\Sigma_2,\dots,\Sigma_n) π=(π1​,π2​,…,πN​),μ=(μ1​,μ2​,…,μn​),Σ=(Σ1​,Σ2​,…,Σn​)

  1. 目的是聚类

    对于每一个样本单元产生了一个 π i = ( π i 1 , π i 2 , … , π i n ) \pi_i=(\pi_{i1},\pi_{i2},\dots,\pi_{in}) πi​=(πi1​,πi2​,…,πin​),即样本单元以怎样的概率服从 n n n个具体的高斯分布,取 j = arg max ⁡ j π i j j=\argmax_j\pi_{ij} j=argmaxj​πij​,可认为该样本单元属于第 j j j个高斯分布,也即第 j j j类。

GMM优缺点

  1. 优点:

    • GMM聚出的类可以呈现出椭圆形,优于k-means的圆形

    • GMM得到的最终结果是样本属于每一类的概率,而不像k-means那样必须把样本分给某一类。

  2. 缺点:

    • 对大规模数据和多维高斯分布,计算量大,迭代速度慢

    • 如果初始值设置不当,收敛过程的计算代价会非常大。

    • EM算法求得的是局部最优解而不一定是全局最优解。

References


【机器学习笔记11】高斯混合模型(GMM)【上篇】原理与推导_高斯混合模型推导-CSDN博客

【机器学习】EM——期望最大(非常详细)

高斯混合模型(GMM)

标签:dots,mathbf,高斯,推导,ij,GMM,theta,pi,zi
From: https://blog.csdn.net/dc20221127/article/details/144558297

相关文章

  • 洛谷P3389 【模板】高斯消元法 高斯消元模板题
    题目链接:https://www.luogu.com.cn/problem/P3389题目大意:略解题思路:略(因为是模板题)示例程序:#include<bits/stdc++.h>usingnamespacestd;constintmaxn=110;constdoubleeps=1e-7;intn;doublea[maxn][maxn];boolgauss(){for(inti=1;i<=n;i++......
  • sim(3)变换的理论与推导
    前言Sim(3)三维空间的相似变换,计算Sim(3)实际上就是计算三个参数:旋转R、平移t、尺度因子s。计算Sim(3)的目的:已知至少三个匹配的不共线的三维点对,求它们之间的相对旋转、平移、尺度因子。假设坐标系1下有三个不共线的三维点P1,P2,P3,它们分别和坐标系2下的三个不共线的三......
  • guassdb华为OpenGauss高斯数据库间隔分区表自动创建分区sql实例
    命令行操作流程#切换用户su-omm#连接数据库gsql-dpostgres-p6432-r#选择数据库\cenv_demo#设置查询模式SETSEARCH_PATHTOpublic;sql模板1、预创建时间范围sql分区(非数据库自动创建分区)CREATETABLEt_metadata(idVARCHAR(36)NOTNULLPRIMA......
  • 三维坐标旋转矩阵推导过程以及C语言实现
    此篇文章在2023年9月13日被记录前提:坐标使用右手坐标系,角度逆时针旋转为正。绕X轴旋转角度为俯仰角即Pitch绕Y轴旋转角度为偏航角即Yaw(Head)绕Z轴旋转角度为翻滚角即Roll1、平面二维坐标点的旋转根据三角函数关系,可以列出向量OP与OP'的坐标表示形式:x=|OP|•co......
  • 解题报告-论对“动态规划方程推导”的新理解
    解题报告-论对“动态规划方程推导”的新理解方程推导是动态规划的一大难点。其既要合法,又要有用,还要推正确。实际上,动态规划题就是一个方程。今天晚上被这道题卡了\(2\)个小时。这其实就是一道朴素的线性动态规划题目,但是由于它的方程,使我最终没把这道题做出来。去看题解之后,......
  • 三大分布密度函数推导
    目录三大分布密度函数推导第六节\(\chi^{2}\)分布、t分布和F分布密度的推导一、\(\chi^{2}\)分布密度的推导二、t分布密度的推导三、F分布密度的推导三大分布密度函数推导下面方程的解\(\sum_{j=v}^{n}C_{n}^{i}\underline{p}'(1-\underline{p})^{n-1}=\alpha/2\),\(\sum_{j=......
  • 五种方法!上市公司全要素生产率数据及测算方法(OL、FE、LP、OP、GMM)(2000-2023年)
    资源介绍全要素生产率(TFP)也可以称之为系统生产率。指生产单位(主要为企业)作为系统中的各个要素的综合生产率,以区别于要素生产率(如技术生产率)。测算公式为:全要素生产率=产出总量/全部资源投入量。数据测算:包含OL、FE、LP、OP、GMM共五种TFP测算方法!数据结果包括excel和dta格......
  • 高斯混合模型(GMM)与K均值算法(K-means)算法的异同
    高斯混合模型(GaussianMixtureModel,GMM)和K均值(K-Means)算法都是常用于聚类分析的无监督学习方法,虽然它们的目标都是将数据分成若干个类别或簇,但在实现方法、假设和适用场景上有所不同。1.模型假设K均值(K-Means):假设每个簇的样本点在簇中心附近呈均匀分布,通常是球形的(即每个......
  • 01华为高斯数据库(笔记)
    数据(符号,文字,数字,语音,图像,视频):是事实观察的结果,对客观事物的归纳总结,信息的载体和表现形式。数据本身没有意义,只有对实体产生影响才成为信息。数据+对实体的影响=信息数据分类:数字数据((离散)符号文字等)和模拟数据((连续)视频图像文字等)数据库:数据按一定数据模型有组织、可共享的......
  • Python 推导式说明
    Python推导式是一种独特的数据处理方式,可以从一个数据序列构建另一个新的数据序列的结构体。Python推导式是一种强大且简洁的语法,适用于生成列表、字典、集合和生成器。在使用推导式时,需要注意可读性,尽量保持表达式简洁,以免影响代码的可读性和可维护性。Python支持各种数......