高斯混合模型GMM

本文介绍了高斯混合模型(GMM),一种基于概率的聚类方法,对比了GMM与K-means的区别,并通过数学推导阐述了GMM的原理。通过EM算法进行参数估计,同时提供了numpy和sklearn的代码实现,展示了如何应用GMM进行数据处理。
摘要由CSDN通过智能技术生成

这周突发兴致,拿起“西瓜书”啃了啃,没按照书上的目录来,结合目前正在做的,看到了高斯混合模型(Gaussian mixture model——GMM)。这个模型与原型聚类稍有区别,是

采用概率模型来聚类。

1.高斯分布

既然有“高斯”两字,那就跟高斯分布有关吧~然而我连概率密度表达式都记不太清了,赶紧复习一下!

一元高斯分布:

多元高斯分布:

我使用的是多元高斯分布,\mathbf{\mu}是均值向量,\Sigma是协方差矩阵,这两个参数可以完全确定高斯分布,我们分析可以从二元开始。我们再定义由K个高斯分布形成的混合分布:

其中\mu _{i}\Sigma_{i}是第i个高斯混合成分的参数,\alpha _{i}为相应的混合系数,满足:

这三个参数共同构成了高斯混合模型的参数,高斯混合成分的个数可以自行选择,当然也可以自动选择,写一个迭代器就好了。

2.为什么要用高斯混合模型?

高斯混合模型针对K-means的不足,聚类方式不一样。

对于上图中的数据,可以用K-means得到比较好的结果。但是对于下图的情况,采用K-means得到的效果就很差。

而高斯混合模型可以很好地处理这一类数据:

3.简要数学推导

 

假设现有训练集样本

### 回答1: 高斯混合模型GMM)聚类是一种机器学习方法,它是将数据集分成多个高斯分布的集合的过程。MATLAB中有一个专门用于GMM聚类的函数gmdistribution,可以用来确定数据集中存在的高斯分布的数量。通过使用该函数,可以将数据集分成不同的聚类。当然,可以使用其他聚类方法,例如K均值聚类,但GMM聚类具有以下优点: 1. 在确定聚类的数量时更加灵活,因为可以使用概率模型来估计每个聚类的权重。 2. 可以处理非球形簇,这是K均值聚类无法处理的。 3. 可以估计聚类的不确定性。 为了使用gmdistribution函数进行聚类,需要将待聚类的数据集作为参数传递给函数。还必须指定每个高斯分布的数量。最后,gmdistribution函数需要一个初始值矩阵来初始化每个高斯分布。可以选择从数据集中选取初始值,也可以使用一组随机值来初始化。在运行gmdistribution函数后,将返回一个包含数据点所属聚类的向量。可以使用这些向量来进一步分析和可视化数据。 总之,GMM聚类是一种有用的机器学习技术,可用于将数据集分成不同的聚类。MATLAB中的gmdistribution函数可帮助用户确定聚类的数量和每个高斯分布的初始值,聚类之后可以进一步分析和可视化数据点。 ### 回答2: 高斯混合模型GMM)是一种基于概率分布建立的聚类方法。它假设每个聚类都可以用多个高斯分布来拟合,而这些高斯分布的加权和就形成了整个数据集的概率密度函数。Matlab提供了GMM聚类算法的实现,可以方便地进行聚类操作。 在Matlab中,通过调用gmdistribution函数可以建立一个GMM模型,并用数据集进行初始化。该函数的参数包括聚类数目、协方差类型、初始化方式等。在得到GMM模型后,可以使用fit函数对数据集进行拟合。fit函数会返回每个数据点属于每个聚类的概率值。 在对数据进行聚类后,可以使用gmdistribution对象的其他函数进行分析和可视化,如pdf函数可以计算某个点属于每个聚类的概率密度值,cluster函数可以给出数据集中每个点所属的聚类,plot函数可以绘制聚类的概率密度函数。此外,Matlab还提供了一些有关GMM的其他函数,如gmdistribution.fit和gmdistribution.random,可以用来生成满足GMM模型的数据集和对新数据进行预测。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Code Wang

打赏后可联系博主分享本博客内容

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值