我正在使用 python pomegranate 库,并且我正在使用方法
from_sample
初始化一个 hmm 模型。我有多元时间序列数据 - 每个时间点 t 具有不同的观察变量(a、b、c)。根据石榴文档,我将数据作为 numpy 数组列表传递,其中行是不同的时间点,列是特征/观察到的变量。
array = numpy.array([[t1a, t1b, t1c], [t2a, t2b, t2c])
model = HiddenMarkovModel.from_samples(MultivariateGaussianDistribution, n_components=20, X=array)
我正在使用“样本”从模型生成数据。
samples = model.sample(length = 5)
据我了解,用此方法生成的序列应该是发出的项目列表 - 但在上面的示例中,“samples”包含 5 个列表,每个列表只有一个元素。但我的意思是做一个多变量嗯 - 每个时间点发出三个变量。那么,为什么“样本”不包含每三个变量的列表呢?我做错了什么?
我非常感谢对此的任何帮助和反馈!
提前非常感谢您。
我已经在这里和石榴文档中搜索了问题/问题......但我找不到解决方案。
我认为这里的错误是当使用“sample”方法通过使用model.sample(lenght=5)生成数据时。您正在生成 5 个未连接的独立序列。样本应该定义为包含 ([[t1a, t1b, t1c], [t2a, t2b, t2c]),而不是数组,这样它就被注册为相同的序列而不是 5 个单独的序列。
我附上了另一个使用类似命令和程序的 stackoverflow 问题的链接。 石榴贝叶斯网络的样本