Accord.NET项目主页(http://code.google.com/p/accord/)包含基于单变量观测序列创建、训练和评估隐马尔可夫模型的示例。我也想做同样的事情,但是有很多变量的序列。我正在设想一个具有一个因变量和多个自变量的多元回归结构。我希望能够估计HMM,其中输出包括每个状态的估计截距和系数,以及转移概率矩阵。股票回报的时变betas就是一个例子。例如,ret(IBM) = intercept + b1*ret(Index) + b2*ret(SectorETF) + error,但其中intercept、b1和b2是状态相关的。
Marcelo Perlin在他的MS_Regress package for Matlab中就提供了这种功能。但是,我希望在C#中实现此功能。因此,无论是(1)使用Accord.NET库来估计多元回归HMM模型,(2)将Marcelo Perlin的软件包翻译成C#,或者(3)关于如何实现我的目标的其他想法,任何帮助都将非常感激。
谢谢!
发布于 2012-11-03 02:50:23
Accord.NET框架也支持多维特性。您可以通过使用泛型来指定要在状态中使用的任何概率分布,而且还有一个example available in the documentation。
例如,如果您有二维观测向量,并选择假设多维模型假设高斯发射密度,则可以使用:
// Assume a Normal distribution for two-dimensional samples.
var density = new MultivariateNormalDistribution(dimension: 2);
// Create a continuous hidden Markov Model with two states organized in a forward
// topology and an underlying multivariate Normal distribution as emission density.
var model = new HiddenMarkovModel<MultivariateNormalDistribution>(new Forward(2), density);然后,你可以使用通常的Baum-Welch,Viterbi或最大似然学习器的通用版本来学习模型。
然而,不幸的是,框架仍然不支持您所提到的确切的回归形式。但它看起来很有趣。也许它可以在未来的某个地方添加到框架中。如果您愿意,请在项目的问题跟踪器中留下一些参考资料和论文作为建议。这似乎是一个非常有用的补充。
https://stackoverflow.com/questions/12787963
复制相似问题