我有一个角分布,我想把von分布的混合物拟合到
我怎么能这么做?
我在R,拟合R中von分布的混合分布中找到了一个实现
我还发现,可以在Python,http://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.vonmises.html中安装一个von发行版。
我想,如果我已经在scipy
中定义了函数,也许我可以尝试如何拟合混合分布?
最后,我使用rpy2
解决了这个问题。具体而言,我使用Python清理数据,并使用R包对VMM进行培训(因此需要安装R和相关包)。
发布于 2019-07-09 01:34:31
我实现了一个解决类似问题的算法,请参阅
https://framagit.org/fraschelle/mixture-of-von-mises-distributions
来了解详细情况。
从随机样本(一维numpy.array
)出发,应用期望最大化算法对数据进行分类,根据von分布进行分类。
该算法允许对von分布进行任何叠加(虽然与算法相关的数学 (链接到pdf)只描述了两个分布的叠加,但很容易推广),而且速度非常快。它只依赖于Numpy和iv
函数的scipy.special
,调用修改后的贝塞尔函数。
mixture_mises_pdfit返回每个发行版的权重,以及$\mu$和$\kappa$参数,例如,参见维基百科关于von发行的页面。
最好能为代码添加一个真正的分类结果,以便对定期数据进行分类。最终,对Scikit学习的扩展也应该是可行的,尽管它需要更多的时间来实现。
https://stackoverflow.com/questions/38470840
复制相似问题