Apache mahout中HMM(隐马尔可夫)算法的测试

来源:互联网 发布:东方不败同人知离 编辑:程序博客网 时间:2024/06/15 08:30

  隐马尔可夫模型(Hidden Markov Model,HMM)是概率学上的一种统计模型,它用来描述一个含有隐含未知参数的马尔可夫过程。其难点是从可观察的参数中确定该过程的隐含参数。

HMM正常主要用来解决三类问题,这三类问题对应都有相关的算法。
*1 评估问题: 前向算法
*2 解码问题: Viterbi算法
*3 学习问题: Baum-Welch算法(向前向后算法)

  Mahout中居然还真的支持了这几种算法,于是进行下实验。

   

  (1)按照mahout官方文档给的例子进行测试。(https://mahout.apache.org/users/classification/hidden-markov-models.html

  首先定义一个输入:

$ echo "0 1 2 2 2 1 1 0 0 3 3 3 2 1 2 1 1 1 1 2 2 2 0 0 0 0 0 0 2 2 2 0 0 0 0 0 0 2 2 2 3 3 3 3 3 3 2 3 2 3 2 3 2 1 3 0 0 0 1 0 1 0 2 1 2 1 2 1 2 3 3 3 3 2 2 3 2 1 1 0" > hmm-input
然后进行Baum-Welch算法测试
$ export MAHOUT_LOCAL=true$ $MAHOUT_HOME/bin/mahout baumwelch -i hmm-input -o hmm-model -nh 3 -no 4 -e .0001 -m 1000

    最后返回预测的结果值:

$ $MAHOUT_HOME/bin/mahout hmmpredict -m hmm-model -o hmm-predictions -l 10

轻松试验成功,搞定。结果如图所示。



(2)进行mahout例子中的词性判断例子验证,其结果如图所示:





0 0