我是Matlab的家庭用户,所以我不能使用所有的MatLab工具箱,但我不反对偶尔买一个。我目前正在使用另一个自由软件(VarScreen)来生成隐马尔可夫模型。该工具将一些向量作为输入数据,以及我认为可能存在于状态HMM中的状态数。在本例中,我给了它5个输入矢量,一个目标矢量,并告诉它使用2个矢量创建一个模型3状态。它选择了它认为最好的两个向量,生成了一个模型,并返回了以下内容:
Specifications of the best HMM model correlating with RETURN_1D...
Means (top number) and standard deviations (bottom number)
State CCMA_13 CCMA_89
1 -11.96117 -7.22653
21.46392 23.05265
2 18.24447 7.26517
18.36591 21.69893
3 2.75350 12.63285
20.37755 17.43237
Transition probabilities...
1 2 3
1 0.9913 0.0087 0.0000
2 0.0073 0.9843 0.0084
3 0.0015 0.0032 0.9952
Further properties of each state...
Percent of cases state is highest (tied cases are ignored)
Correlation of state probability with target
Mean of target when in this state (tied cases are ignored)
Standard deviation of target when in this state (tied cases are ignored)
State Percent Correlation Target mean Target StdDev
1 26.92 -0.08378 -0.18628 2.27240
2 26.11 0.06865 0.24341 1.53242
3 46.98 0.01524 0.09744 1.52846据我所知,免费工具HMM仅使用向量生成。通过查看状态与目标向量的匹配情况来生成相关性。这些结果至少是我提供的财务数据的一个潜在的合理观点(27%看跌,26%看涨,47%持平),但我实际上并没有尝试在任何地方使用该模型,看看它是否真的提供了任何价值。
无论如何,这里的问题是,我将如何使用MatLab本身或统计和机器学习工具箱来做类似的事情?(或任何其他工具箱)我可以在循环中选择5个向量中的2个,但阅读hmmgenerate/hmmtrain/等内容的在线帮助文件还没有让我了解模型是如何生成的。
谢谢!
发布于 2015-07-17 22:43:13
这个答案可能会来得有点晚,但对其他关注这个帖子的人来说可能会很有用。
Matlab本身目前还没有任何用于HMM的内置熟练工具箱。它只包含一些基本的函数,如hmmtrain、hmmestimate或hmmviterbi。然而,一旦你想要调优你的模型,这些功能是不够的。
这就是说,有一个由Kevin Murphy教授开发的优秀的Matlab工具箱,你可以在它的早期版本中找到:http://www.cs.ubc.ca/~murphyk/Software/HMM/hmm.html,其中包括一个做得很好的“如何使用”。此工具箱后来得到了改进,所有文件都可以在以下位置找到:https://github.com/probml/pmtk3
我给你的第一个链接还包括一些有用的读物,如果你愿意深入了解这个理论的话。
希望这能有所帮助!
https://stackoverflow.com/questions/30810792
复制相似问题