Постройте цепь Маркова на основе исторических данных о погоде

В нашем наборе инструментов для машинного обучения есть широкий спектр инструментов, от простых до сложных. Цепи Маркова - это простой конец спектра.

Мы изучим цепи Маркова, чтобы с их помощью предсказывать погоду завтра.

Согласно Википедии,

Цепь Маркова - это стохастическая модель, описывающая последовательность возможных событий, в которой вероятность каждого события зависит только от состояния, достигнутого в предыдущем событии.

Перевод: цепи Маркова имеют конечное число возможных состояний. Каждый период времени он перескакивает из одного состояния в другое (или одно и то же). Вероятности перехода в определенное состояние зависят только от вероятностей, связанных с нашим текущим состоянием.

Это станет более понятным, если мы посмотрим на это в контексте нашего примера.

Погода

В нашей упрощенной Вселенной погода может быть только в одном из двух возможных состояний: «солнечная» или «дождливая».

Загвоздка (в контексте цепей Маркова) заключается в том, что вероятность того, что завтра будет солнечным или дождливым, зависит от того, будет ли оно сегодня солнечным или дождливым.

Мы выведем эти вероятности из прошлых данных и построим матрицу перехода.

Я собрал данные за 7 дней, на которых можно «обучить» нашу цепь Маркова. Дни: [дождь, солнце, дождь, солнце, дождь, дождь, солнце]

Теперь подсчитайте процент случаев, когда солнечная погода наступает сразу после дождливых дней.

3/4 so 75%.

Теперь подсчитайте процент случаев, когда идет дождь в дни, следующие сразу за солнечными.

Это 2/2, так что 100%.

Мы построим нашу матрицу перехода на основе этой информации, выведя недостающие проценты из информации, которую мы уже получили (дождь после дождя = 25% и солнце-после-солнца = 0%).

Матрица перехода

Мы также можем отобразить вышеуказанную информацию в виде диаграммы.

Цепь Маркова

Эта диаграмма подчеркивает тот факт, что вероятности полностью зависят от текущего состояния, а не от погоды вчера или за день до этого.

Давайте сделаем некоторые прогнозы

Пример 1.
Предыдущие 3 дня [дождливый, солнечный, дождливый].
Какова вероятность дождливой погоды завтра?

На основе нашей ранее обученной модели. Завтра вероятность появления солнца составляет 75%, а вероятность дождя - 25%.

Пример 2
Предыдущие 2 дня [дождливый, дождливый].

Опять же, завтра вероятность появления солнца составляет 75%, а вероятность дождя - 25%.

Пример 3
Предыдущие 3 дня были [солнечно, дождливо, солнечно].

Завтра возможен 100% дождь. В дни после захода солнца всегда идет дождь ... грустно, я знаю ...

Помните, что мы учитываем только погоду текущего дня, а затем ищем переходные вероятности для этого состояния в нашей матрице переходов.

Слишком просто? Наверняка.

Но иногда лучшей отправной точкой является простая модель, которая работает лучше, чем случайное предположение.