Математическое бюро
Прогнозирование на ОРЭМ

Первый этап: реализация первой модели прогнозирования

Разработка моделей прогнозирования начинается с выбора первой модели. Сейчас моделей много, материалов в открытом доступе на эту тему много. Обычно человек находит или что-то знакомое по университетским лабораториям (если оные были), или просто понятную статью, из которой ясно, как сделать первую версию модели.

Что важно на этом этапе?

  1. Не бояться изучать программирование вместе с математикой, так как гибкие, точные и удобные алгоритмы проще написать самому, чем взять чужой, часто неудобный и его приладить к своей задаче.
  2. Выбирать из моделей одну из популярных моделей (рекомендация ARIMAX, ANN), потому как их популярность является прямым следствием их эффективности, а также удобства разработки и использования.

Второй этап: доработка первой модели прогнозирования

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

Что важно на этом этапе?

  1. Всегда следить за точностью прогноза. Сделал нововведение, тестируй — стало ли точнее? Сделал еще одно нововведение, тестируй! Нововведений появляются десятки, одно нововведение начинает влиять на другое, модель получается перегруженная, алгоритмы громоздкие, а в результатах начинает преобладать эффект overfitted (слишком подогнанная модель). Со временем удобство использования падает, так как модель все дольше считается. Рано или поздно обязательно наступает момент, когда добавление дюжины нововведений не повышают точности совсем.
  2. Из всей этой экстенсивной работы, из всех исключений и нововведений, как золото из песка, нужно намыть то, что действительно повышает точность. Для того, чтобы это сделать, нужно на время остановиться и подумать, чтобы после на все нагроможденное «великолепие» программного кода взглянуть свежим взглядом. Именно в этой точке формируется первый значительный опыт разработки моделей.

Намыв золота, т.е. сократив алгоритм и сделав первый приемлемый вариант расчета, стоит остановиться и успокоиться! Вы — молодец!

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

Третий этап: повтор первых двух этапов — продвинутая версия

Продолжение работы будет иметь характер второй итерации: берем первый «золотой» вариант алгоритма и начинаем в нем производить изменения. Изменения вносятся уже более грамотно, взвешено, эффективно — работа уже имеет интенсивный характер. Со временем получаем «навороченный золотой алгоритм», который со временем снова становится громоздок. После мы уже в «золотом песке» должны намыть «бриллиантов». И дальше до бесконечности… ибо нельзя прогнозировать с ошибкой, равной нулю.

Что важно на этом этапе?

  1. Самое главное, чтобы между одной версией модели и другой, человек успевал переключаться, отвлекаться и отдыхать. Именно свежеть и ясность восприятия позволяют рождать новые идеи для развития модели.
  2. Кроме того важно, чтобы человек не зацикливался на одной модели. Очень важно смотреть по сторонам: изучать другие модели, другие постановки задачи, пробовать их реализовывать, находить сильные и слабые стороны тех или иных моделей.

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

Комментарии

Аватар пользователя eashmarina
Евгения Ашмарина
Ирина, большое спасибо за полезный обзор! Работаю в немецкой компании, занимаюсь в настоящее время докладом "Ловушки при разработке моделей прогнозирования". Так что для своих целей перевела ваш обзор на немецкий язык, делюсь переводом.

Erstellung der Vorhersagemodelle beginnt mit der Wahl des ersten Modells. Zur Zeit existieren sehr viele Modelle, gibt es genug Literatur im offenen Zugang. Gewohnlich lauft es so, dass der Entwickler anfanglich etwas nimmt, was ihm aus der Universitatszeit bekannt ist, oder einen verstandlichen Artikel, aus dem klar wird, wie die erste Version des Modells zu erstellen ist.

Was ist auf dieser Etappe wichtig?

  1. Kein Angst zu haben Programmieren und Mathematik zu lernen, weil es leichter ist flexible, genaue und bequeme Algorithmen selbst zu programmieren, als einen fremden Algorithmus zu nehmen, der zu der gegebenen Aufgabe nicht unbedingt passen wird.
  2. Aus der Bandbreite der Modelle ein Modell nehmen, das fur die gestellte Aufgabe am haufigsten genutzt wird. Popularitat eines Modells ist eine direkte Folge dessen Effiktivitat, Bequemlichkeit der Entwicklung und der Anwendung.

Am Ende der ersten Entwicklungsstufe (Fertigstellung des ersten Modells) kann der Entwickler das Modell verfeinern und anpassen. Dieser Prozess verlauft ausserst extensiv: der Entwickler mochte mehr Nuancen und Ausnahmen im Modell erfassen und untypische Operationen in Programmcode einfuhren.

Was ist auf dieser Etappe wichtig?

  1. Immer die Vorhersagegenauigkeit im Fokus halten. Nach jeder Neuerung wird ein Test benotigt, ob die Vorhersagegenauigkeit sich verbessert hat. Also nach jeder Neuerung - testen! Zu viele Neuerungen uberladen das Modell, die Algorithmen werden zu komplex, und in den Ergebnissen uberwigt der Effekt von Overfitting. Das Modell braucht mehr Rechenzeit und ihre Anwendungsfreundlichkeit sinkt. Dabei kommt bestimmt ein Punkt, wenn das Hinzufugen von neuen Parametern die Vorhersagegenauigkeit uberhaupt nicht verbessert.
  2. Aus dieser ganzen extensiven Arbeit, aus allen neuen Features und Ausnahmen, wie Gold aus Sand zu gewinnen, werden nur diese ubernommen, die die Vorhersagegenauigkeit wirklich erhohen. Um dies richtig zu tun, muss man sich kurz aufhalten, uberlegen und alle diese "Pracht" mit einem frischen Blick ansehen. Genau in diesem Punkt bildet sich eine erste erhebliche Erfahrung in Modellenentwicklung.

Wenn genug "Gold gefiltert wird", Algorithmen gekurzt werden und erste tragbare Ergebnisse bereits erzielt sind, sollte man aufhoren und sich entspannen. Sie haben eine gute Arbeit geleistet! Wenn der Vorhersagefehler eine variable Grosse ist, die standige Anpassung des Modells benotigt (z.B. Datencharakter andert sich, Grenzgenauigkeit erzielt wird usw.), dann wird die Entwicklung bald fortgesetzt.

Diese Fortsetzung bildet die zweite Iteration: erste "goldene" Variante des Algorithmus wird genommen und angepasst. Die Anpassungen werden uberlegener und effektiver aufgenommen, die Arbeit tragt dabei intensiven Charakter. Mit der Zeit entsteht daraus ein "verkomplizierter goldener Algorithmus", der mit der Zeit wiederum sperrig wird. Danach mussen wir schon aus dem "goldenen Sand" die "Diamanten" gewinnen. Und so geht es immer wieder weiter, weil eine Vorhersagefehler gleich Null nicht existiert.

Was ist auf dieser Etappe wichtig?

  1. Das Wichtigste ist, damit der Entwickler zwischen den zwei Modellversionen sich entspannen, erholen und umschalten kann, um immer wieder mit dem frischen Kopf die Modelle zu bewerten. Frische und Klarheit bringen neue Ideen fur die Entwicklung.
  2. Wichtig ist offen zu sein und sich nicht auf einem Modell zu fixieren. Wichtig ist sich umzuschauen, welche Modelle und welche Aufgabenstellungen noch existieren; probieren diese zu implementiern; schwache und starke Seiten von verschiedenen Modellen zu erkennen; experementieren.

Vollkommen verschiedene Modelle konnen eine Idee geben fur Entwicklung eines konkreten Modells fur eine konkrete Aufgabe. Es ist nur notwendig einen frischen Blick zu haben!

Аватар пользователя eashmarina
Евгения Ашмарина

... и в продолжение темы (взгляд скорее с перспективы data mining):

 

Ловушки при создании моделей прогнозирования: Чего делать не нужно

Кратко:

1. Примеры частых ошибок в моделях прогнозирования

  • чрезмерная подгонка модели под обучающую выборку (overfitting)
  • нерепрезентативные данные
  • недостаточная подготовка данных
  • недоработка топологии модели (feature design)

2. Прочие ловушки

Подробнее:

1. Примеры частых ошибок в моделях прогнозирования

Overfitting

  • Сложность модели должна соответствовать сложности рассматриваемой проблемы.
  • Статистический разброс данных (дисперсия) не обязательно является критерием сложности модели.
  • Аналогия к overfitting: "заучивание наизусть" - выявление правил, истинных для обучающей выборки, но неверных для генеральной совокупности данных.
  • Решение: скользящий контроль/кросс-валидация (cross validation).

Нерепрезентативные данные

  • Данные выборки должны обладать релевантными свойствами генеральной совокупности.
  • Выявлять и осторожно относиться к систематическим эффектам в данных: например, если имеются только "понедельничные данные".

Недостаточная подготовка данных

  • Даже немногочисленные выбросы в данных могут массивно влиять на результаты моделирования.
  • Внимательно относиться к отсутствующим значениям в рядах данных (missing values): они по-разному интерпретируются в зависимости от реализации модели.

 

Недоработка топологии модели

  • Подготовка и выбор включаемых в модель объясняющих переменных (features) часто более важна, чем выбор модели. Например, невключение дня недели в модель для прогноза потребления электроэнергии приносит больший ущерб качеству прогноза, чем выбор между линейной регрессией и кластерным анализом в качестве прогнозной модели.
  • Интуитивный критерий значимости объясняющих переменных: их значения изменяются при изменении значения целевой переменной и не изменяются при одинаковых значениях целевой переменной.
  • Выбор типа объясняющих переменных имеет значение: метрические (интервальные) переменные открывают больше возможностей для моделирования, чем неметрические (номинальные и ординальные).
  • Не сравнивайте груши с яблоками: помните про нормирование данных.

 

2. Прочие ловушки

  • Недостаточное сотрудничество внутри команды проекта (например, между статистиком, экспертом по предметной области и разработчиком ПО).
  • Интерпретируемость: выбор метода не соответствует запросам клиента. Если клиенту важно самостоятельно понимать прогнозную модель, создание разработчиками "черного ящика" его не удовлетворит, даже если при этом будет достигнуто хорошее качество прогноза.
  • "Модельная религиозность": убежденное предпочтение одной модели другим без сравнения альтернатив. Решение: помогают свежий взгляд со стороны, обмен точками зрения, мозговой штурм и другие креативные техники.