1

Accord.NET 项目主页 (http://code.google.com/p/accord/) 包含基于单变量观察序列创建、训练和评估隐马尔可夫模型的示例。我也想做同样的事情,但是有很多变量的序列。我正在设想一个具有因变量和多个自变量的多元回归结构。我希望能够估计一个 HMM,其中输出包括每个状态的估计截距和系数,以及一个转移概率矩阵。一个例子是股票收益的时变贝塔。例如 ret(IBM) = intercept + b1*ret(Index) + b2*ret(SectorETF) + error,但其中 intercept、b1 和 b2 是依赖于状态的。

Marcelo Perlin 在他的 Matlab 的 MS_Regress 包中提供了这个功能。但是,我想要 C# 中的这个功能。因此,对于 (1) 使用 Accord.NET 库来估计多元回归 HMM 模型,(2) 将 Marcelo Perlin 的包翻译成 C#,或 (3) 关于如何实现我的目标的其他想法,任何帮助都将不胜感激。

谢谢!

4

1 回答 1

3

Accord.NET Framework 也支持多维功能。您可以使用泛型指定要在状态中使用的任何概率分布,文档中也有一个示例。

例如,如果您有二维观测向量,并选择假设多维模型假设高斯发射密度,则可以使用:

// 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 或最大似然学习器的通用版本来学习模型。

但是,不幸的是,该框架仍然不支持您提到的确切回归形式。但它看起来非常有趣。也许它可以在将来的某个地方添加到框架中。如果您愿意,请将其作为建议与一些参考资料和论文一起留在项目的问题跟踪器中。这似乎是一个非常有用的补充。

于 2012-11-02T18:50:23.200 回答