generate.java

来自「java实现的隐马尔科夫模型」· Java 代码 · 共 61 行

JAVA
61
字号
package be.ac.ulg.montefiore.run.jahmm.test;import be.ac.ulg.montefiore.run.jahmm.*;import be.ac.ulg.montefiore.run.jahmm.draw.*;import be.ac.ulg.montefiore.run.jahmm.learn.*;import be.ac.ulg.montefiore.run.jahmm.toolbox.*;import java.util.*;public class Generate {    static public void main(String[] argv) 	throws java.io.IOException {		/* Build two simple sequences */	Vector oseq1 = new Vector();        for (int i = 0; i < 3; i++)            oseq1.add(new ObservationInteger(i));        Vector oseq2 = new Vector();        for (int i = 2; i < 5; i++)            oseq2.add(new ObservationInteger(i));        Vector obsSeqs = new Vector();        obsSeqs.add(oseq1);        obsSeqs.add(oseq2);			/* Build a model according to those sequences using the k-means	   algorithm */	KMeansLearner kml = new KMeansLearner(5, new OpdfIntegerFactory(10),					      obsSeqs);	Hmm hmmModel = kml.learn();		HmmDrawer hmmDrawer = new HmmIntegerDrawer();	hmmDrawer.write(hmmModel, "graph-generate-model.dot");			/* Generate sequences according to this model */	MarkovGenerator mg = new MarkovGenerator(hmmModel);	Vector sequences = new Vector();	for (int i = 0; i < 100; i++)	    sequences.add(mg.observationSequence(5));			/* Build a model according to those sequences using the Baum-Welch	   algorithm */	Hmm initHmm = new Hmm(5, new OpdfIntegerFactory(10));	for (int i = 1; i < 5; i++)	    initHmm.getOpdf(i).fit(new Observation[] {		new ObservationInteger(i)});	initHmm.getOpdf(0).fit(new Observation[] { new ObservationInteger(0),						   new ObservationInteger(1)});		BaumWelchLearner bwl =	    new BaumWelchLearner(5, new OpdfIntegerFactory(10), sequences);	Hmm hmmLearnt = bwl.learn(initHmm);	hmmDrawer.write(hmmLearnt, "graph-generate-learnt.dot");    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?