Прогнозирование функциями дискретного аргумента (пример)

Материал из MachineLearning.

(Различия между версиями)
Перейти к: навигация, поиск

Версия 16:52, 3 сентября 2011

Содержание

Введение

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

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

Постановка задачи

Мелодия есть функция m: \ T \rightarrow X\times Y, где T = 0, 1, 2, ... — позиция ноты, X = 0, 1, 2, ... — конечное множество нот, занумерованных в порядке увеличения тона, Y — длительность ноты, в секундах. Таким образом, будем работать с пучком из двух временных рядов.

Предполагается, что мелодия дана законченная, но без нескольких финальных нот(в данной статье одной). Необходимо их предсказать.

Пути решения задачи

Экспоненциальное сглаживание

Пусть X=\{x_1, ... x_T\} — временной ряд.

Экспоненциальное сглаживание ряда осуществляется по рекуррентной формуле: 
S_t=\alpha x_t + \left( 1-\alpha \right) S_{t-1},\ \alpha \in (0,1).

Чем меньше \alpha, тем в большей степени фильтруются, подавляются колебания исходного ряда и шума.

Если последовательно использовать рекуррентное это соотношение, то экспоненциальную среднюю S_t можно выразить через значения временного ряда X.


S_t =\alpha x_t + (1-\alpha)\left( \alpha x_{t-1} + (1-\alpha)S_{t-2}\right)= \cdot\cdot\cdot = \alpha \sum_{i=0}^{t-1} (1-\alpha)^i x_{t-i} + (1-\alpha)^t S_0.

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

Пусть задан временной ряд: y_i \cdot\cdot\cdot y_t,\; y_i \in R.

Необходимо решить задачу прогнозирования временного ряда, т.е. найти

\hat{y}_{t+d}=f_{t,d}\left(y_{1} ... y_{t} \right),\; d \in \{1,2, ... D\},\; D — горизонт прогнозирования, необходимо, чтобы

Q_T=\sum_{i=1}^T \left( y_i-\hat{y}_i \right) \rightarrow min

Предположим, что D - невелико (краткосрочный прогноз), то для решения такой задачи используют модель Брауна.

\hat{y}_{t+d}=\alpha y_t + ( 1-\alpha ) \hat{y}_t,\; \hat{y}_0 = y_0,\; \alpha \in (0,1).

Если рассматривать прогноз на 1 шаг вперед, то \left(y_t - \hat{y}_t\right) — погрешность этого прогноза, а новый прогноз \hat{y}_{t+1} получается в результате корректировки предыдущего прогноза с учетом его ошибки — суть адаптации.

При краткосрочном прогнозировании желательно как можно быстрее отразить новые изменения и в то же время как можно лучше "очистить" ряд от случайных колебаний. Т.о. следует увеличивать вес более свежих наблюдений:  
\alpha \rightarrow 1,\; \hat{y}_{t+d} \rightarrow y_t
. С другой стороны, для сглаживания случайных отклонений, \alpha нужно уменьшить:  \alpha \rightarrow 0,\; \hat{y}_{t+1} \rightarrow \bar{y}_t. Т.о. эти два требования находятся в противоречии. Мы будем брать \alpha из интервала (0,0.5).

Личные инструменты