我正在尝试使用协议框架实现基于隐藏马尔可夫模型的天气预测应用程序。我在如何将概念映射到HMM结构方面遇到了一些麻烦,并希望得到一些见解。我从他们的示例应用程序开始,可以在这里找到:https://github.com/accord-net/framework/tree/master/Samples/Statistics/Gestures%20(HMMs)
想象一下以下场景:
每隔6小时我会被告知天气如何:多云,晴天或多雨。这些将是我在框架中的状态正确吗?
除此之外,我还可以访问两种不同仪器的结果,这些仪器是空气湿度计和风速计。为简单起见,我们假设两种仪器都提供0到100之间的度量,有4个范围。对于湿度(0-25,26-50,51-75,76-100),我会得到0,1,2和3之类的东西,风的相同范围会有4,5,6和7的值这些是序列的可观察值。
有几天,我存储了关于这两种工具的观察结果,并基于此我将保存数据以供将来使用,用于学习目的。
我遇到的一个问题是时间问题。由于我计划每6小时了解一次状态,是否有意义或者是否可以以不同的速率存储有关仪器的观察结果?例如,如果我每小时存储仪器的观察结果,我最终会得到一个12元素序列和相应的状态,在最初的12小时内就像这样:
0-4-0-5-0-4-1-7-1-6-0-4 - Cloudy
0-4-0-5-0-4-0-4-0-5-0-4 - Sunny
12元素序列将是: 湿度的第一个小时观察 - 观察风速(0-4) 湿度第二小时观察 - 风速观测(0-5) 等等...
除了观察序列和状态之外,我是否应该为每种乐器使用标签?像这样:
0-0-0-1-1-0 - Humidity - Cloudy
4-5-4-4-5-4 - Wind Sp - Sunny
0-0-0-1-1-0 - Humidity - Cloudy
4-5-4-4-5-4 - Wind Sp - Sunny
标签将是被测量的仪器,序列将是观察到的值,状态将是每6小时结束时的状态。
有了这个,我希望能够将这些信息反馈给模型并预测下一个状态。我正确地解决了这个问题吗?我能做到这样的需要吗?
谢谢。