2015-12-04 3 views
0

Я делаю программу прогнозирования погоды на Python с использованием цепи Маркова. Программы запрашивают у пользователя ввод данных о погоде прошлых дней и предсказывают следующие семь дней.Python markov chain, строка ввода пользователя для матрицы перехода

Мне было интересно, как я могу изменить свою матрицу перехода, поэтому он использует проценты того, как часто указанная пара происходит, а именно: «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
  • Существует один переход R-> D

Предпосылки:

  • Все переходы начиная с D следует суммировать до 1.
  • Все переходы, смотрящие на R, должны суммировать до 1.

Следовательно, вероятность для D-> D в соответствии с входной строкой будет 3/4. Вероятность для D-> R будет 1/4. Вероятность R-> D равна 1, а R-> R равно 0, поскольку в входной строке не было никакого перехода из R -> R.

Смежные вопросы