问题标签 [gmm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
968 浏览

python - 将独立的 sklearn GaussianMixture 对数概率分数转换为总和为 1 的概率

我已经标记了二维数据。集合中有 4 个标签,我知道每个点与其标签的对应关系。我想,给定一个新的任意数据点,找出它具有 4 个标签中的每一个的概率。它必须属于一个且仅属于一个标签,因此概率总和应为 1。

到目前为止,我所做的是sklearn.mixture.GaussianMixture在与每个标签关联的数据点上训练 4 个独立的 sklearn GMM ( )。应该注意的是,我不希望训练具有 4 个组件的单个 GMM,因为我已经知道标签,并且不想以比我已知标签更糟糕的方式重新聚类。(似乎有一种方法可以为函数提供Y=标签fit(),但我似乎无法让它工作)。

在此处输入图像描述

在上图中,点由它们的已知标签着色,等高线表示适合这 4 组点的四个独立 GMM。

对于一个新观点,我尝试通过以下几种方式计算其标签的概率:

  1. GaussianMixture.predict_proba():因为每个独立的 GMM 只有一个分布,所以这只是返回所有模型的概率 1。

  2. GaussianMixture.score_samples():根据文档,这个返回“每个样本的加权对数概率”。我的程序是,对于一个新点,我从代表上述每个分布的四个独立训练的 GMM 中的每一个对该函数进行四次调用。我确实在这里得到了半明智的结果——通常是正确模型的正数和三个不正确模型中的每一个的负数,对于相交分布边界附近的点,结果更加混乱。这是一个典型的明确结果:

2.904136, -60.881554, -20.824841, -30.658509

这个点实际上与第一个标签相关联,并且最不可能是第二个标签(离第二个分布最远)。我的问题是如何将上述分数转换为总和为 1 的概率,并准确表示给定点属于四个分布中的一个且仅属于其中一个的概率?鉴于这些是 4 个独立模型,这可能吗?如果没有,是否有另一种我忽略的方法可以让我根据已知标签训练 GMM,并提供总和为 1 的概率?

0 投票
0 回答
47 浏览

python - 3-D 数据的高斯混合计数图

如何绘制 3 维数据的高斯混合轮廓拟合?我不知道如何转换 Z。

获得每个平面上正态分布的拟合混合的投影,即 xy、xz 和 yz。这是我无法弄清楚的确切问题。

0 投票
0 回答
409 浏览

python - GPU 上具有 BIC 或 AIC 的高斯混合模型

scikit-learn 中有 GMM 的 bic/aic 标准,但我想在 GPU 上拟合我的数据。我发现 GMM 在 CuPy(cuda numpy 包装器)中实现,但它没有 bic/aic 标准。(https://github.com/cupy/cupy/blob/master/examples/gmm/gmm.py

如何对该代码实施 bic/aic 标准?或者有好的图书馆吗?请帮忙。

0 投票
1 回答
117 浏览

gmm - 边箱。sidekit.EM_split() 中的 feature_list 是什么?

我是使用 sidekit 进行说话人识别的新手,我遇到了一个问题,我需要使用“feature_list”。feature_list=ubm_list 但特征列表中有什么?它说它包含用于训练 GMM 的特征文件列表。但是功能文件中应该包含什么。

0 投票
0 回答
454 浏览

python - 解压保存的文件

我使用下面的代码使用 cPickle 保存了一个模型

现在我想用这个方法解开文件

但我得到这个错误:

我希望输出取消保存的文件

0 投票
1 回答
790 浏览

matlab - 使用 GMM 进行灰度图像分割

我正在寻找使用 GMM(高斯混合模型)对嘈杂的医学图像(灰度)进行分割的功能。

我在 MATLAB 中发现:

给定X,我的灰度图像。

你会如何定义musigma?它们应该是什么尺寸?你将如何初始化它们?

我尝试了以下方法(给定尺寸(576x720)的图像):

但我收到一个错误:

wdensity使用(第 29 行)
创建的病态协方差时出错。

gmdistribution/中的错误cluster(第 59 行)
log_lh=wdensity(X,obj.mu, obj.Sigma, obj.PComponents, obj.SharedCov, CovType);

我对 GMM 的工作原理(即软聚类)有一个基本概念,但我希望得到更高级人员的帮助,以了解我在这里所做的事情。

0 投票
1 回答
732 浏览

python - 在直方图上绘制来自 GMM 的估计高斯分量

我有一些从两个正态分布中检索到的一维数据。我的目标是估计两个不同的高斯分量。

我的数据

我使用 GMM(高斯混合模型)。

我检索我的两个高斯。

现在问题是,我想用我上面的高斯参数覆盖直方图。我想我首先必须对直方图进行标准化,但是如何绘制它们以便每个高斯权重的面积正确且总面积等于 1,以及如何覆盖在非标准化直方图之上?

上面的代码块给了我两个规范的高斯图,但它们都有相同的面积。

0 投票
1 回答
197 浏览

python - 在高斯混合模型/期望最大化模型中包括时间依赖性?

我正在处理时间序列数据集,因此在拟合包中的GaussianMixture()函数时scikit-learn,我需要使每个特征(时间戳)依赖。但是,在查看源代码后,我没有找到自定义协方差矩阵的参数。

凭借我有限的统计知识,我很好奇如何在 E 步期间修改协方差矩阵以将时间依赖性纳入 GMM 模型。非常感谢。

这是源代码:我要进行的更改是在 estimate_gaussian_parameters() 函数中 https://github.com/scikit-learn/scikit-learn/blob/7389dba/sklearn/mixture/gaussian_mixture.py#L435

0 投票
0 回答
165 浏览

python - 如何在 Python 中创建高斯混合模型?

出于可重复性的原因,我在这里分享几个数据集。数据集具有以下格式。

从第 2 列开始,我正在读取当前行并将其与前一行的值进行比较。如果它更大,我会继续比较。如果当前值小于前一行的值,我想将当前值(较小)除以前一个值(较大)。因此,以下代码:

这给出了以下图。

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

从图中我们可以看出

  • Data-G,不管数值quotient_times是多少,商总是>=0.9
  • quotient_times当小于 3时, Data-V的商为 0.8,如果大于 3,则商保持为 0.5 quotient_times

  • quotient无论值是多少, Data-C的常数都是 0.7 quotient_times

  • quotient无论值是多少,Data-R的常数都是 0.5quotient_times

基于此要求,我们如何绘制高斯混合模型?任何帮助,将不胜感激。

0 投票
1 回答
658 浏览

python - 如何使用高斯混合模型进行聚类?

我一直在使用 k-Means 将数据聚类为 2 个类。但是,现在,我想使用不同的方法并使用高斯混合模型将数据聚类为 2 个类。我已经阅读了 Scikit-Learn 文档和其他 SO 问题,但无法理解如何在我目前的上下文中使用 GMM 进行 2 类聚类。

我可以使用 k-Means 轻松地将数据聚类到 2 个类中,如下所示:-

我会很感激任何一个线性/短代码段,我可以用它来在我的数据上拟合 GMM 模型(df_tr_std)。我确信这必须是一个相当简单的过程来适应 GMM 模型,但我对如何将我当前的 k-Means 上下文修改为 GMM 模型感到非常困惑。