有没有办法将三维高斯分布或高斯混合分布拟合到矢量?

时间:2016-07-08 07:24:57

标签: python numpy 3d distribution gaussian

我有一个数据点矢量,似乎代表了一个3D高斯分布或一个高斯混合分布。有没有办法将3D高斯分布或高斯混合分布拟合到这个矩阵,如果是的话,是否存在可以做到这一点的库(例如在Python中)?

问题似乎与下面的问题有关,但我想在其中加入3D高斯: Fit multivariate gaussian distribution to a given dataset

目标最终结果将如下所示(单个分布或混合): enter image description here

例如,非常简化,我的数据向量(应该从中学习高斯(混合)分布)如下所示:

[[0,0,0,0,0,0], [0,1,1,1,1,0], [0,1,2,2,1,0], [1,2,3,3,2,1], [0,1,2,2,1,0], [0,0,0,0,0,0]]

2 个答案:

答案 0 :(得分:0)

如果你知道高斯人的数量,我可以给出答案。您的向量在X,Y点的网格上给出Z值。你可以制作X和Y向量:

import numpy as np
num_x, num_y = np.shape(z)
xx = np.outer(np.ones(num_x), np.arange(num_y))
yy = np.outer(np.arange(num_x), np.ones(num_y))

然后遵循任何常规拟合程序,例如2D Gaussian Fit for intensities at certain coordinates in Python

答案 1 :(得分:0)

有所谓的高斯混合模型(GMM),背后有很多文献。并且有python代码可以进行采样,参数估计等,不确定它是否符合您的需求

http://scikit-learn.org/stable/modules/generated/sklearn.mixture.GMM.html

免责声明:使用scikit,但从未使用过GMM