2015-12-04 35 views
0

我使用马尔可夫链在Python中制作天气预报程序。这些程序要求用户输入过去几天的天气并预测未来七天。Python马尔可夫链,转换矩阵的用户输入字符串

我想知道如何改变我的转换矩阵,所以它使用了指定对发生的频率的百分比,即'DD''DR''RR''RD'而不是默认概率,如下所示。

#Possible sequences of events 
transitionName = [["DD","DR"],["RR","RD"]] 

pastweather = input("Enter a string of D's and R's to represent dry/rainy days: ") 

#transition matrix 
transitionMatrix = [[0.8,0.2],[0.4,0.6]] 

回答

2

我不确定马尔可夫链是否是最合适的工具。一般来说,马尔科夫模型没有记忆,即下一个过渡只取决于当前状态(干燥或多雨),并且您想要做七天的预测......

但是,关于您计算转移矩阵我建议以下方法:

让我们考虑一个用户的输入,如:DDDRDD

  • 总体有五个转变。
  • 有三种过渡D-> d
  • 有一个过渡D->ř
  • 有一个过渡R-> d

先决条件:

  • 的所有转换开始与D必须总计为1.
  • 所有与R开始的转换必须总计为1.

因此,根据输入字符串的D-> D的概率为3/4。 D-> R的概率为1/4。 概率R-> D为1且R-> R为0 - 因为从R - > R的输入字符串中没有转换。

相关问题