天天看点

GMM理解

GMM理解:

用高斯混合模型(GMM)的最大期望(EM)聚类

使用高斯混合模型(GMM)做聚类首先假设数据点是呈高斯分布的,相对应K-Means假设数据点是圆形的,高斯分布(椭圆形)给出了更多的可能性。我们有两个参数来描述簇的形状:均值和标准差。所以这些簇可以采取任何形状的椭圆形,因为在x,y方向上都有标准差。因此,每个高斯分布被分配给单个簇。 所以要做聚类首先应该找到数据集的均值和标准差,我们将采用一个叫做最大期望(EM)的优化算法。

具体步骤:

  1. 选择簇的数量(与K-Means类似)并随机初始化每个簇的高斯分布参数(均值和方差)。也可以先观察数据给出一个相对精确的均值和方差。
  2. 给定每个簇的高斯分布,计算每个数据点属于每个簇的概率。一个点越靠近高斯分布的中心就越可能属于该簇。
  3. 基于这些概率我们计算高斯分布参数使得数据点的概率最大化,可以使用数据点概率的加权来计算这些新的参数,权重就是数据点属于该簇的概率。
  4. 重复迭代2和3直到在迭代中的变化不大。

    GMMs的优点:

    (1)GMMs使用均值和标准差,簇可以呈现出椭圆形而不是仅仅限制于圆形。K-Means是GMMs的一个特殊情况,是方差在所有维度上都接近于0时簇就会呈现出圆形。

    (2)GMMs是使用概率,所有一个数据点可以属于多个簇。例如数据点X可以有百分之20的概率属于A簇,百分之80的概率属于B簇。也就是说GMMs可以支持混合资格。

3.2 GMM与K-Means相比

高斯混合模型与K均值算法的相同点是:

它们都是可用于聚类的算法;

都需要 指定K值;

都是使用EM算法来求解;

都往往只能收敛于局部最优。

而它相比于K 均值算法的优点是,可以给出一个样本属于某类的概率是多少;不仅仅可以用于聚类,还可以用于概率密度的估计;并且可以用于生成新的样本点。

别人高斯 python 实验:

https://github.com/NLP-LOVE/ML-NLP/blob/master/Machine%20Learning/7.%20Clustering/GMM.ipynb

常见的六大聚类算法:

https://blog.csdn.net/qq_39581763/article/details/103614756

K-Means(K均值)、GMM(高斯混合模型),通俗易懂,先收藏了!

https://blog.csdn.net/weixin_41510260/article/details/97297294

继续阅读