问题标签 [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.
python - 将独立的 sklearn GaussianMixture 对数概率分数转换为总和为 1 的概率
我已经标记了二维数据。集合中有 4 个标签,我知道每个点与其标签的对应关系。我想,给定一个新的任意数据点,找出它具有 4 个标签中的每一个的概率。它必须属于一个且仅属于一个标签,因此概率总和应为 1。
到目前为止,我所做的是sklearn.mixture.GaussianMixture
在与每个标签关联的数据点上训练 4 个独立的 sklearn GMM ( )。应该注意的是,我不希望训练具有 4 个组件的单个 GMM,因为我已经知道标签,并且不想以比我已知标签更糟糕的方式重新聚类。(似乎有一种方法可以为函数提供Y=
标签fit()
,但我似乎无法让它工作)。
在上图中,点由它们的已知标签着色,等高线表示适合这 4 组点的四个独立 GMM。
对于一个新观点,我尝试通过以下几种方式计算其标签的概率:
GaussianMixture.predict_proba()
:因为每个独立的 GMM 只有一个分布,所以这只是返回所有模型的概率 1。GaussianMixture.score_samples()
:根据文档,这个返回“每个样本的加权对数概率”。我的程序是,对于一个新点,我从代表上述每个分布的四个独立训练的 GMM 中的每一个对该函数进行四次调用。我确实在这里得到了半明智的结果——通常是正确模型的正数和三个不正确模型中的每一个的负数,对于相交分布边界附近的点,结果更加混乱。这是一个典型的明确结果:
2.904136, -60.881554, -20.824841, -30.658509
这个点实际上与第一个标签相关联,并且最不可能是第二个标签(离第二个分布最远)。我的问题是如何将上述分数转换为总和为 1 的概率,并准确表示给定点属于四个分布中的一个且仅属于其中一个的概率?鉴于这些是 4 个独立模型,这可能吗?如果没有,是否有另一种我忽略的方法可以让我根据已知标签训练 GMM,并提供总和为 1 的概率?
python - 3-D 数据的高斯混合计数图
如何绘制 3 维数据的高斯混合轮廓拟合?我不知道如何转换 Z。
获得每个平面上正态分布的拟合混合的投影,即 xy、xz 和 yz。这是我无法弄清楚的确切问题。
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 标准?或者有好的图书馆吗?请帮忙。
gmm - 边箱。sidekit.EM_split() 中的 feature_list 是什么?
我是使用 sidekit 进行说话人识别的新手,我遇到了一个问题,我需要使用“feature_list”。feature_list=ubm_list 但特征列表中有什么?它说它包含用于训练 GMM 的特征文件列表。但是功能文件中应该包含什么。
python - 解压保存的文件
我使用下面的代码使用 cPickle 保存了一个模型
现在我想用这个方法解开文件
但我得到这个错误:
我希望输出取消保存的文件
matlab - 使用 GMM 进行灰度图像分割
我正在寻找使用 GMM(高斯混合模型)对嘈杂的医学图像(灰度)进行分割的功能。
我在 MATLAB 中发现:
给定X
,我的灰度图像。
你会如何定义mu
和sigma
?它们应该是什么尺寸?你将如何初始化它们?
我尝试了以下方法(给定尺寸(576x720)的图像):
但我收到一个错误:
wdensity
使用(第 29 行)
创建的病态协方差时出错。
gmdistribution
/中的错误cluster
(第 59 行)
log_lh=wdensity(X,obj.mu, obj.Sigma, obj.PComponents, obj.SharedCov, CovType);
我对 GMM 的工作原理(即软聚类)有一个基本概念,但我希望得到更高级人员的帮助,以了解我在这里所做的事情。
python - 在高斯混合模型/期望最大化模型中包括时间依赖性?
我正在处理时间序列数据集,因此在拟合包中的GaussianMixture()
函数时scikit-learn
,我需要使每个特征(时间戳)依赖。但是,在查看源代码后,我没有找到自定义协方差矩阵的参数。
凭借我有限的统计知识,我很好奇如何在 E 步期间修改协方差矩阵以将时间依赖性纳入 GMM 模型。非常感谢。
这是源代码:我要进行的更改是在 estimate_gaussian_parameters() 函数中 https://github.com/scikit-learn/scikit-learn/blob/7389dba/sklearn/mixture/gaussian_mixture.py#L435
python - 如何在 Python 中创建高斯混合模型?
出于可重复性的原因,我在这里分享几个数据集。数据集具有以下格式。
从第 2 列开始,我正在读取当前行并将其与前一行的值进行比较。如果它更大,我会继续比较。如果当前值小于前一行的值,我想将当前值(较小)除以前一个值(较大)。因此,以下代码:
这给出了以下图。
从图中我们可以看出
- Data-G,不管数值
quotient_times
是多少,商总是>=0.9 quotient_times
当小于 3时, Data-V的商为 0.8,如果大于 3,则商保持为 0.5quotient_times
。quotient
无论值是多少, Data-C的常数都是 0.7quotient_times
。quotient
无论值是多少,Data-R的常数都是 0.5quotient_times
基于此要求,我们如何绘制高斯混合模型?任何帮助,将不胜感激。
python - 如何使用高斯混合模型进行聚类?
我一直在使用 k-Means 将数据聚类为 2 个类。但是,现在,我想使用不同的方法并使用高斯混合模型将数据聚类为 2 个类。我已经阅读了 Scikit-Learn 文档和其他 SO 问题,但无法理解如何在我目前的上下文中使用 GMM 进行 2 类聚类。
我可以使用 k-Means 轻松地将数据聚类到 2 个类中,如下所示:-
我会很感激任何一个线性/短代码段,我可以用它来在我的数据上拟合 GMM 模型(df_tr_std
)。我确信这必须是一个相当简单的过程来适应 GMM 模型,但我对如何将我当前的 k-Means 上下文修改为 GMM 模型感到非常困惑。