gmm模型难吗
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了gmm模型难吗相关的知识,希望对你有一定的参考价值。
高斯混合模型可用于聚类,这是将一组数据点分组为聚类的任务。GMM 可用于在数据集中可能没有明确定义的集群中查找集群。此外,GMM 可用于估计新数据点属于每个集群的概率。高斯混合模型对异常值也相对稳健,这意味着即使有一些数据点不能完全适合任何集群,它们仍然可以产生准确的结果。这使得 GMM 成为一种灵活而强大的数据聚类工具。它可以被理解为一个概率模型,其中为每个组假设高斯分布,并且它们具有定义其参数的均值和协方差。所以由此可见gmm模型不是很难。 参考技术A 高斯混合模型GMM是一个非常基础并且应用很广的模型。对于它的透彻理解非常重要。网上的关于GMM的大多资料介绍都是大段公式,而且符号表述不太清楚,或者文笔非常生硬高斯混合模型 (GMM) 是一种机器学习算法。它们用于根据概率分布将数据分类为不同的类别。高斯混合模型可用于许多不同的领域,包括金融、营销等等!这里要对高斯混合模型进行介绍以及真实世界的示例、它们的作用以及何时应该使用GMM。高斯混合模型 (GMM) 是一个概率概念,用于对真实世界的数据集进行建模。GMM是高斯分布的泛化,可用于表示可聚类为多个高斯分布的任何数据集。
高斯混合模型是一种概率模型,它假设所有数据点都是从具有未知参数的高斯分布的混合中生成的。 参考技术B gmm模型难吗
gmm(高斯混合)模型是一种混合模型,混合的基本分布是高斯分布而已。GMM中数据对高斯分量的响应度就相当于K-means中的距离计算,GMM中的根据响应度计算高斯分量参数就相当于K-means中计算分类点的位置。然后它们都通过不断迭代达到最优。不同的是:GMM模型给出的是每一个观测点由哪个高斯分量生成的概率,而K-means直接给出一个观测点属于哪一类。
仅给出一个集群的高斯混合模型 (GMM)
【中文标题】仅给出一个集群的高斯混合模型 (GMM)【英文标题】:Gaussian Mixture Model (GMM) giving only one cluster 【发布时间】:2019-02-12 23:40:51 【问题描述】:我有一个包含 70 列和 440 万行的数据集。我想对其进行聚类。我首先做了 TF-IDF,然后我使用了 K-means 聚类、二等分 k-means 和高斯混合模型 (GMM)。虽然其他技术给了我指定数量的集群,但 GMM 只给出了一个集群。例如,在下面的代码中,我想要 20 个集群,但它只返回 1 个集群。这是因为我有很多列还是仅仅是由于数据的性质造成的?
gmm = GaussianMixture(k = 20, tol = 0.000001, maxIter=10000, seed =1)
model = gmm.fit(rescaledData)
df1 = model.transform(rescaledData).select(['label','prediction'])
df1.groupBy('prediction').count().show() # this returns 1 row
【问题讨论】:
【参考方案1】:在我看来,Pyspark GMM 聚类性能不佳的主要原因是它的实现是使用对角协方差矩阵完成的,该矩阵没有考虑数据集中存在的不同特征之间的协方差。
在这里检查它的实现:https://github.com/apache/spark/blob/master/mllib/src/main/scala/org/apache/spark/ml/clustering/GaussianMixture.scala
由于维度灾难,他们明确提到使用对角协方差矩阵。
@note 该算法的特征数量有限,因为它需要存储一个协方差矩阵,该矩阵的大小与特征数量成二次方。即使特征的数量没有超过这个限制,这个算法也可能在高维数据上表现不佳。这是由于高维数据 (a) 使其难以聚类(基于统计/理论论据)和 (b) 高斯分布的数值问题。
【讨论】:
在这种情况下,您会在 GMM 之前建议 PCA 来解决维度灾难吗?以上是关于gmm模型难吗的主要内容,如果未能解决你的问题,请参考以下文章