Вопрос или проблема
Я полностью потерялся, пытаясь выбрать тип предсказательной модели для своей задачи. Это авторегрессионная модель, нелинейная временная серия, марковская цепь или что-то другое? Может кто-то дать мне совет?
78,
18,
51,
89,
19,
43,
62,
28,
94,
49
Предположим, каждый день я получаю 10 данных, и пример был приведён выше. Это случайные числа, сгенерированные двумя устройствами, а именно Устройством A и Устройством B. Каждое из них способно генерировать случайные числа от 0 до 9.
Первое число в данных сгенерировано Устройством A, в то время как второе число сгенерировано Устройством B. Например, для первых данных “78”, “7” было сгенерировано Устройством A, а “8” было сгенерировано Устройством B. Аналогично, для последних данных “49”, “4” было сгенерировано Устройством A, а “9” было сгенерировано Устройством B.
Я хочу предсказать следующую исходную переменную после последнего “49”.
У меня в общей сложности 300 исторических данных за 30 дней.
Из моего начального расследования по 300 данным, каждое устройство, как правило, производит повторяющиеся последовательности. Например, Устройство A будет повторять последовательность “6-2-9-4” (как в последних 4 данных). Это значит, что эта последовательность появилась дважды в 300 исторических данных для Устройства A. В качестве другого примера, последовательность “8-1-9-9” (со 2-го по 5-е данные) в Устройстве B тоже появилась дважды. Каждое из них производит по крайней мере три повторяющиеся последовательности.
Я хотел бы предсказать следующую исходную переменную после последнего “49”. Какая модель более подходящая?
Заранее спасибо!
Я предположу, что под “случайными” вы имеете в виду, что числа не следуют никакой определённой математической функции. Если бы они действительно были случайными, то не было бы никакой закономерности, которую можно было бы обнаружить, и не имело бы смысла пытаться что-то предсказать.
Из вашего описания я понимаю следующее:
- Значение цифры не имеет никакого числового свойства. В частности, естественный порядок не играет никакой роли. Это указывает на то, что цифры можно считать категориальными переменными.
- Данные последовательные (порядок в последовательности цифр имеет значение), но нет задействованного понятия времени.
- Видимо, два устройства производят две независимые последовательности. Вам стоит проверить, но если это так, это требует двух различных моделей, по одной для каждого устройства (в противном случае вы должны использовать одну общую модель).
Основываясь на этих наблюдениях, я бы использовал простую последовательную модель, такую как Скрытая марковская модель или Условные случайные поля.
То, что вы хотите сделать, это обнаружить закономерности за двумя псевдослучайными генераторами чисел, которые должны быть независимыми и не коррелированными. От самых наивных генераторов до более сложных, они не являются абсолютно случайными. Если бы это было так, было бы невозможно эффективно что-либо предсказать, как указывал Эруан.
Для простого в взломе генератора вы можете посетить:
https://github.com/lemire/crackingxoroshiro128plus
Вот довольно интересная статья на эту тему:
Ответ или решение
Выбор подходящей предсказательной модели для анализа и прогноза временных рядов — это важный и комплексный процесс, который включает множество факторов. В вашем случае мы будем опираться на следующие ключевые аспекты:
-
Свойства данных: У вас есть последовательность чисел, генерируемых двумя устройствами A и B, каждое из которых выдает последовательность чисел от 0 до 9. Поскольку вы упомянули о наличии повторяющихся последовательностей, это говорит о том, что хотя данные могут выглядеть случайными, в них все же существуют определённые закономерности.
-
Независимость устройств: Вы отметили, что каждое устройство, по вашему мнению, функционально независимо. Это позволяет рассматривать каждый поток данных отдельно, что означает, что для каждого из них можно применять отдельные модели предсказания.
Подходящие модели
Учитывая все вышеуказанные аспекты, давайте рассмотрим несколько подходящих моделей:
1. Скрытая модель Маркова (Hidden Markov Model, HMM)
HMM — это мощный инструмент, который особенно хорошо подходит для анализа последовательных данных с латентными (скрытыми) состояниями. Он позволяет учитывать вероятность перехода между состояниями и может быть использован для прогнозирования следующего состояния последовательности на основе исторических данных. В вашем случае это может быть полезно для выявления последовательностей, которые могли бы помочь в предсказании следующих чисел, генерируемых устройствами.
2. Условные случайные поля (Conditional Random Fields, CRF)
CRF подходит для прогнозирования секвенционных данных, особенно когда важно учитывать контекст, в котором предсказывается следующее состояние. В отличие от HMM, CRF могут работать лучше в ситуациях, где зависимости между предшествующими и последующими событиями более сложные.
3. Модели временных рядов (ARIMA и его производные)
Если ваши данные демонстрируют более выраженные временные паттерны, например, сезонность, ARIMA (авторегрессионная интегрированная модель скользящего среднего) может быть хорошим выбором. Тем не менее, учитывая, что ваши данные могут не иметь четкой временной зависимости, необходимо рассмотреть другие методы, если паттерны менее явны.
Заключение и рекомендации
На основе вашего описания, я бы рекомендуовал сосредоточиться на двух отдельных моделях: HMM для устройства A и HMM для устройства B. Учитывая наличие повторяющихся последовательностей, вы сможете выявить закономерности в данных и предсказать следующее значение.
Помимо выбора модели, не забудьте тщательно протестировать ее, используя методы кросс-валидации, чтобы обеспечить точность прогноза. Вы можете использовать различные метрики для оценки производительности вашей модели и подобрать оптимальные параметры.
Также, если у вас есть возможность, попробуйте визуализировать данные, чтобы получить лучшее понимание паттернов, с которыми вы работаете. Это поможет не только в выборе правильной модели, но и в интерпретации полученных результатов.
Сложные модели могут быть привлекательны, но простота часто обеспечивает разумный уровень предсказательной мощности без излишней сложности. Удачи в разработке вашего предсказательного проекта!