Классы настроек процессора МКП.

Рассмотрим тип CUniLogicProcessorSettings. Он содержит настройки, относящиеся непосредственно к организации и хранению входящих данных в процессоре, а также основным принципам работы с данными, к этим настройкам относятся: шаг прогнозирования, начальная и конечная даты входной статистики, размер цикла и флаг отсечения последнего шага.

Шаг прогнозирования представлен свойством TimeStep типа ETimeSeed. Перечисление ETimeSeed содержит следующие значения: Year, Quarter, Month, Day. На данный момент процессор поддерживает прогнозирование исключительно по месяцам, как наиболее востребованное на практике. При попытке создать процессор с шагом прогнозирования отличном от месяца, возникнет исключение типа NotSupportedException. В дальнейшем предусмотрено расширение функционала процессора и включение возможностей прогнозирования по годам, кварталам и дням. Шаг прогнозирования, среди прочего, используется для агрегирования исходных данных. Т.е., для шага Month исходные данные внутри процессора будут просуммированы по месяцам.

Начальную и конечную даты нормализованной исходной статистики (свойства FirstDate и LastDate) также следует понимать в контексте шага прогнозирования. Для создания объекта типа CUniLogicProcessorSettings используется конструктор, в который передаются все обязательные параметры, в том числе размер шага, начальная и конечная даты. Конструктор, прежде чем присвоить значения параметров-дат соответствующим свойствам, производит их нормализацию в соответствии с шагом прогнозирования. Делается это следующим образом: определяется конкретный шаг, которому принадлежит исходная дата, после чего берется первая дата этого шага. В случае шага прогнозирования в месяц, будет взята первая дата месяца, к которому относится дата. Например, дата 24.01.2012 превратится в 01.01.2012, а 17.10.2016 станет 01.10.2016.

Важно! Следует понимать, что у нормализованной даты нет функции указания точки во времени, её функция — обозначить шаг, в данном примере – конкретный месяц конкретного года. Т.е., конечная нормализованная дата не равна конечной дате временного отрезка, который она ограничивает. Реальной последней датой отрезка будет последний день конечного шага, обозначаемого конечной нормализованной датой. Т.е., конечным нормализованным по месяцам датам 01.02.2015, 01.02.2016, 01.06.2016 и 01.10.2016 будут соответствовать 28.02.2015, 29.02.2016, 30.06.2016, 31.10.2016 как последние даты обозначаемых временных отрезков.

Пример нормализованных дат

Рисунок 4. Пример нормализации дат

Создавая внутри себя нормализованные статистические данные, процессор ориентируется на начальную и конечную дату, а также на шаг прогнозирования. Логически эти действия можно представить, как создание ряда (массива) «пустых» шагов от начального до конечного включительно с последующим распределением по этому ряду соответствующих исходных статистических данных.

Другими словами, если в исходных данных содержится информация, выходящая за пределы обозначаемого нормализованными датами отрезка времени, то эта информация будет отброшена и не включена в нормализованные данные. Так, если исходная статистика содержит записи с 01.01.2011 по 31.12.2016, при этом начальная нормализованная дата — 01.03.2012, конечная нормализованная дата — 01.09.2015, а шаг — месяц, то для формирования нормализованной статистики будут использованы статистические записи только с 01.03.2012 по 30.09.2015 включительно, все остальные будут отброшены.
Стоит также обратить внимание, что, если отрезок, обозначаемый начальной и конечной датами, шире, чем отрезок, за который имеются статистические данные, тогда нормализованные данные будут «дополнены» по краям отрезка пустыми (нулевыми) данными.

Выбор временного отрезка

Рисунок 5. Выбор временного отрезка

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

Конечная дата несет и другой чрезвычайно важный смысл: период, на который будет составляться прогноз, начнется с шага, следующего после шага обозначаемого конечной датой. Т.е., если конечная дата — 01.11.2016 (обозначает ноябрь 2016 года), тогда первым шагом помесячного прогноза будет декабрь 2016.

Размер цикла (количество шагов в цикле прогнозирования) представлен свойством CycleSize. При шаге в месяц наиболее естественный размер цикла будет 12, по числу месяцев в году. Размер цикла используется на всех этапах МКП и для правильной обработки данных должен всегда (на всех этапах) быть одним и тем же.

Флаг отсечения последнего шага (свойство TrimLastSteps) имеет следующий смысл. Когда он установлен в TRUE, и текущая системная дата попадает в отрезок времени нормализованных входящих данных, то отрезок будет обрезан (с его конца) до шага, предшествующего тому, который включает в себя текущую системную дату. Такое поведение может быть полезно для того, чтобы отсечь неполные данные, избежав, таким образом, искажений прогноза. Значение по умолчанию — FALSE.

Пример создания объекта настроек процессора:
DateTime firstDate = new DateTime(2014, 1, 1);
DateTime lastDate = new DateTime(2016, 9, 1);
int cycleSize = 12;
CUniLogicProcessorSettings procSettings = new CUniLogicProcessorSettings(ETimeSeed.Month, firstDate, lastDate, cycleSize, false);

Оставить комментарий

Вы комментируете как Гость.

Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.
+7 812 407-10-11
Общество с ограниченной ответственностью "Ново Би Ай"©, ИНН 7813219842
199026, г. Санкт-Петербург, В.О. 26-я линия, д. 15, корп.2, Литер А - БЦ "Биржа"
Государственная аккредитация Минкомсвязи России № 8353

Авторизация