如何在Java中编写GMM(高斯混合模型)?

4
我该如何用Java编写GMM(高斯混合模型)?MATLAB中有一些实现,但我正在寻找相关文档和Java示例代码。
PS:如果可能的话,我该如何在我的代码中采用Weka实现?
PS 2:我发现http://www.lix.polytechnique.fr/~nielsen/MEF/,其中包含GMM的源代码,所以我可以在我的代码中采用它吗?
PS 3:其他找到的代码是:http://www.dii.unisi.it/~freno/JProGraM.html,但仍然存在如何采用它的问题。我应该提供我的输入列表,并从算法中获取所有分类元素列表。

两个链接都(实际上)失效了(第一个手册的GitHub链接(两个相同的URL)重定向到404,第二个链接导致“禁止访问此资源”)。 - Peter Mortensen
3个回答

5

Weka是一款Java数据挖掘软件,可以进行GMM操作。它还有一个漂亮的图形用户界面,在进行所有操作之前,您可以在其中进行一些初步建模。


1
你可以下载WEKA的源代码包,在自己的代码中使用不同的模型 :) - jberg
你能找到GMM Weka包的链接吗? - kamaci
你想使用EM算法生成GMM,可以参考以下链接:http://weka.sourceforge.net/doc/weka/clusterers/EM.html - jberg
这里有一个示例让你开始:http://weka.wikispaces.com/Programmatic+Use。请注意,FastVector现在已被弃用,因此对于此示例,您最好使用java.util.ArrayList。此外,由于Instance现在是一个接口,您必须使用一些实现类(如DenseInstance或SparseInstance)进行实例化。那个示例需要更新:p - Håvard Geithus

3

我是jMEF的作者 :) jMEF可以让您创建、处理和管理指数族混合模型,当然也包括高斯混合模型(GMMs)。您只需要基于高斯分布创建一个混合模型即可。我编写了一系列教程来帮助您正确使用它,非常简单易懂。好处在于您可以使用EM算法从样本中估计混合模型。


它的新URL是什么?在GitHub上还是其他地方? - Peter Mortensen

0

您可以使用"MATLAB Builder JA"从您的“MATLAB实现”中获取“.JAR”文件和源代码。这样,您就可以将结果合并到您的Java应用程序中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接