我试图在python中的两个数据集之间执行贝叶斯推理,例如
x = [9, 11, 12, 4, 56, 32, 45], y = [23, 56, 78, 13, 27, 49, 89]
我查看了大量的文档页面,发现pymc https://pymc-devs.github.io/pymc/modelfitting.html#markov-chain-monte-carlo-the-mcmc-class和bayespy http://bayespy.org/en/latest/examples/gmm.html可能是我最好的赌注,但文档难以置信。
我试图预测y的值是什么,取决于x的值和两个数据集之间的相关强度。
提前致谢,
最高
答案 0 :(得分:0)
Markov链是序列,序列中项目的概率取决于它们的前辈。
假设你有一个很长的列表x,包含数字。 您可以定义每个数字取决于它之前的两个数字。然后训练一个模型:
您可以使用此模型生成新序列: 从两位数开始。然后使用该模型预测下一个数字的概率,选择最可能的数字。您始终使用序列中的最后两位数字为模型提供信息,并根据预测添加新数字。
这也可用于判断现有序列的概率。您将逐步完成该序列,查看每个数字并使用您的模型计算该数字的可能性,给出其前身。
这里的关键部分是模型。为了使用它,您需要使用现有数据进行训练。对于序列,最常见的示例是文本中的字符。您可以根据前面的字符训练模型以预测下一个字符。例如(这里模型看到3个前面的字符):
字符之间的依赖关系非常复杂,只需考虑可能的输入序列的数量。理想情况下,模型应该在训练期间的某个时刻看到所有这些序列。当然这是不可能的,但要获得好的结果,你需要尽可能多的训练数据。
如果您希望我们回答您的问题,我们需要更多详细信息。
所以每个国家有20个国家和16个数据集。我正在研究这16个数据集中的每一个如何相互影响,因此数据集1如何影响数据集2,2如何影响3,3如何影响1等
所以数据集对彼此有一些影响吗?
然后你说:
来自其他集合的预测在预测其他集合方面确实没有用处
这没有意义。 您无法使用如此少的数据进行序列建模。如果数据集没有结构,如果你不能通过查看整体来学习一般模式,那么在比较各个对时就不会有任何用处。