我目前正在学习murphyk's
的隐马尔可夫模型工具箱。然而,我在确定模型系数和通过对数似然进行序列预测的算法方面遇到了问题。
我的场景:
我有飞行鸟类在三维空间中的轨迹,即其X
、Y
和Z
坐标,这些属于连续
隐马尔可夫模型的范畴。我有200次飞行鸟类的观测数据,即500行的轨迹数据,我希望预测序列。我希望以20个数据点进行采样,即在10个点之后,我的第一个问题是,以下参数是否适合我的情况?
O = 3; %向量中的系数数量 T = 20; %序列中的向量数量 nex = 50; %序列数量 M = 2; %混合数量 Q = 20; %状态数量
我的第二个问题是,哪种算法适合序列预测?训练是否是必需的?
回答:
据我所知,我假设你在训练200个不同的类别(HMM),每个类别有500个训练样本(观测序列)。
O
是向量的维度,看起来是正确的。
没有必要固定T
,它取决于你拥有的观测序列。
M
是状态的高斯混合模型(GMM)中的多元高斯分布(或混合)数量。更多的混合将更好地拟合你的数据,并提供更高的准确性,但会牺牲性能。选择一个合适的值。
N
不需要等于T
。对于最佳的状态数量N
,你需要自己进行基准测试并查看结果:
是的,你必须使用Baum-Welch算法训练你的类别, optionally preceded by something like the segmental k-means procedure。在那之后,你可以轻松地使用前向/后向概率或Viterbi概率进行孤立单元识别,只需选择概率最高的类别即可。