Python 使用scikit-learn.mixed.GMM查找条件高斯混合模型

Python 使用scikit-learn.mixed.GMM查找条件高斯混合模型,python,scikit-learn,gaussian,normal-distribution,Python,Scikit Learn,Gaussian,Normal Distribution,我正在使用一个多元高斯混合模型来拟合一些数据(这非常有效)。但是我需要能够在一些变量的基础上得到一个新的GMM,而scikit工具包似乎无法做到这一点,这让我感到惊讶,因为这似乎是一件非常基本的事情 Wikipedia提供了我正在尝试做的事情(对于单个高斯函数,而不是GMM),我可能自己也能实现它,但我的矩阵数学不是很好,我可以看到它需要很长时间 有人已经这么做了吗?使用NumPy/SciPy/Scikit learn有没有一种简单的方法呢?试试看。从文档中可以看出,GMM是以一个或多个变量为条

我正在使用一个多元高斯混合模型来拟合一些数据(这非常有效)。但是我需要能够在一些变量的基础上得到一个新的GMM,而scikit工具包似乎无法做到这一点,这让我感到惊讶,因为这似乎是一件非常基本的事情

Wikipedia提供了我正在尝试做的事情(对于单个高斯函数,而不是GMM),我可能自己也能实现它,但我的矩阵数学不是很好,我可以看到它需要很长时间

有人已经这么做了吗?使用NumPy/SciPy/Scikit learn有没有一种简单的方法呢?

试试看。从文档中可以看出,GMM是以一个或多个变量为条件的:

# Now we will find the conditional distribution of x given y
(con_cen, con_cov, new_p_k) = gmm.cond_dist(np.array([np.nan, y]), \
    cen_lst, cov_lst, p_k)

据我记忆所及,该软件包附带了一些示例。

沿相关轴分割数据张量。@SlaterTyranus我想你是在建议我将GMM与数据集的切片版本相匹配。我想从我已经安装到完整数据集的GMM中获得一个有条件的GMM。@TomG嗨,Tom,你找到问题的解决方案了吗?被接受的答案对我不起作用。我对使用被描述为“处于早期阶段”并且已经4年没有更新的代码感到紧张,但我尝试了一下。遗憾的是,em_gm.py示例(带有条件GMM)不起作用-作者似乎在GMM.em_gm的定义中使用了关键字“iter”作为变量名,这使得它崩溃。在文档中给出的示例中,将“max_iter=400”设置为“max_iter=400”,而不是“iter=400”和“iter_call=None”。如果您想跟踪EM算法的进度,可以修改plot函数。谢谢!还有其他一些问题(比如一些文档化的特性只在SVN中,而不是在最新的下载中),我已经让它工作了!如果您觉得有帮助,请接受答案。:)对不起,我不知道该怎么回答——我得查一下如何接受答案。