机器学习知识点(二十五)Java实现隐马尔科夫模型HMM之jahmm库
来源:互联网 发布:java synchronized原理 编辑:程序博客网 时间:2024/06/05 20:47
1、隐马尔可夫模型HMM的应用场景,关乎于序列和状态变化的都可以。
发现java有可库,专为开发HMM,可惜只能在CSDN上有得下载。
2、jahmm是java开发隐马尔科夫模型的一个jar包。
下载jahmm-0.6.1.rar包,源地址是google(国内无法访问),好在CSDN资源上有得下载,我也上传一个(零积分可下载):
http://download.csdn.net/detail/fjssharpsword/9843680
包里有jar还有html可以参照学习;userguide.pdf作为入门看,html是jar中类和函数说明,要重点看。
可惜包里没有源码,有兴趣可以jar反编译看看。
3、工程中引入jahmm-0.6.1.jar,导入结构图如下:
4、参照userguide.pdf建立的demo代码如下:
从userguide.pdf中找出的代码不痛不痒,看来要仔细看源码才能知道中间算法和具体实例应用。
发现java有可库,专为开发HMM,可惜只能在CSDN上有得下载。
2、jahmm是java开发隐马尔科夫模型的一个jar包。
下载jahmm-0.6.1.rar包,源地址是google(国内无法访问),好在CSDN资源上有得下载,我也上传一个(零积分可下载):
http://download.csdn.net/detail/fjssharpsword/9843680
包里有jar还有html可以参照学习;userguide.pdf作为入门看,html是jar中类和函数说明,要重点看。
可惜包里没有源码,有兴趣可以jar反编译看看。
3、工程中引入jahmm-0.6.1.jar,导入结构图如下:
4、参照userguide.pdf建立的demo代码如下:
package sk.ml;import java.io.FileReader;import java.io.Reader;import java.util.List;import be.ac.ulg.montefiore.run.jahmm.Hmm;import be.ac.ulg.montefiore.run.jahmm.ObservationInteger;import be.ac.ulg.montefiore.run.jahmm.ObservationVector;import be.ac.ulg.montefiore.run.jahmm.OpdfInteger;import be.ac.ulg.montefiore.run.jahmm.OpdfIntegerFactory;import be.ac.ulg.montefiore.run.jahmm.OpdfMultiGaussianFactory;import be.ac.ulg.montefiore.run.jahmm.io.ObservationSequencesReader;import be.ac.ulg.montefiore.run.jahmm.io.ObservationVectorReader;import be.ac.ulg.montefiore.run.jahmm.learn.KMeansLearner;public class HMMDemo {public static void main(String args[]) throws Exception{Reader reader = new FileReader("D:\\tmp\\test.seq");List<List<ObservationVector >> seqs = ObservationSequencesReader.readSequences (new ObservationVectorReader (),reader);reader.close ();KMeansLearner <ObservationVector > kml = new KMeansLearner <ObservationVector >(3, new OpdfMultiGaussianFactory(2) , seqs);Hmm <ObservationVector> fittedHmm = kml.learn ();System.out.println(fittedHmm.nbStates());/*//给定高斯分布的均值和协方差矩阵 double [] mean = {2.0, 4.0}; double [][] covariance = { {3.0, 2.0}, {2.0, 4.0} }; OpdfMultiGaussian omg = new OpdfMultiGaussian (mean,covariance); //根据该分布生成10000个观测向量 ObservationVector[] obs = new ObservationVector[10000]; for (int i = 0; i < obs.length; i++) obs[i] = omg.generate(); //找到适合这些观测的高斯分布 omg.fit(obs); *//*OpdfIntegerFactory factory = new OpdfIntegerFactory(2);Hmm<ObservationInteger> hmm = new Hmm<ObservationInteger>(2, factory); hmm.setPi(0, 0.95);hmm.setPi(1, 0.05);hmm.setOpdf(0, new OpdfInteger(new double[] { 0.95, 0.05 }));hmm.setOpdf(1, new OpdfInteger(new double[] { 0.2, 0.8 }));hmm.setAij (0, 1, 0.05);hmm.setAij (0, 0, 0.95);hmm.setAij (1, 0, 0.1);hmm.setAij (1, 1, 0.9);*/}}
test.seq文件:保存成txt文件,结束要新行。
# A simple data file[ 1.1 2.2 ];[ 4.4 5.5 ];[ 4.3 6.0 ];[ 7.7 8.8 ];[ 0.5 1.5 ];[ 1.5 2.5 ];[ 4.5 5.5 ];[ 8.0 8.0 ];[ 7.0 8.0];
从userguide.pdf中找出的代码不痛不痒,看来要仔细看源码才能知道中间算法和具体实例应用。
阅读全文
0 0
- 机器学习知识点(二十五)Java实现隐马尔科夫模型HMM之jahmm库
- 机器学习知识点(二十四)隐马尔可夫模型HMM维特比Viterbi算法Java实现
- 机器学习27—隐马尔科夫模型HMM(二)
- 机器学习:隐马尔可夫模型(HMM)
- 隐马尔科夫模型HMM学习(二)
- HMM(隐马尔科夫模型)学习二
- 机器学习知识点(八)感知机模型Java实现
- 机器学习知识点(三十)LDA话题模型Java实现
- 机器学习知识点(二)各类型平均数Java实现
- 机器学习中的隐马尔科夫模型(HMM)详解
- 机器学习中的隐马尔科夫模型(HMM)详解
- 机器学习26-隐马尔科夫模型HMM(一)
- 学习笔记之HMM模型
- 机器学习-隐Markov模型(hmm)
- 王小草【机器学习】笔记--隐马尔可夫模型HMM
- 机器学习_隐马尔可夫模型HMM
- 机器学习(十五)隐马尔科夫模型-未完待续
- 机器学习(十五)隐马尔科夫模型-未完待续
- python 单个字节到单个字符的转换
- Opencv 检测线
- 优雅的表单验证模式--策略设计模式和ES6的Proxy代理模式
- openwrt下的wget注意要点
- 队列基本用法
- 机器学习知识点(二十五)Java实现隐马尔科夫模型HMM之jahmm库
- 机器学习感悟1
- ReactiveCocoa学习篇
- 使用HttpURLConnection和HttpClient的区别
- 爱测未来移动-QNX性能监控方案
- JQuery文字轮播简单代码
- 生成组合序列算法
- ReactiveCocoa之基础篇
- CF#808 C. Tea Party(贪心)