Какие хорошие методы прогнозирования будущих доходов на основе категориальных и значения данных?

Вопрос или проблема

У меня есть ежемесячные снимки (3 года) всех данных контрактов. Они включают следующую информацию:

  • Статус контракта [Категориальный]: Предложен, отслеживается, отправлен, выигран, проигран и т.д.
  • Этапы контракта [Категориальный]: Поиск, вовлеченность, отслеживание, отправлено и т.д.
  • Продолжительность контракта [Дата/Время]: месяцы и годы
  • Дата начала тендера [Дата/Время]: Дата (Но это меняется, когда контракты задерживаются)
  • Стоимость контракта [Числовой]: Стоимость контракта в местной валюте
  • Прогнозирование будущих доходов [Числовой]: Разбивка стоимости валюты дохода на следующие 5 лет (это значение доступно для всех контрактов, независимо от того, выиграны или проиграны)

У меня также есть другая информация о контрактах, такая как идентификатор, название, описание и т.д.

Ответы, которые я пытаюсь получить:

  • Общая стоимость контрактов, которые меняют статус из месяца в месяц
  • Общая стоимость контрактов, которые меняют этапы из месяца в месяц
  • Средняя задержка даты начала контрактов
  • Прогнозирование будущих доходов (5 лет) на основе изменения статуса и средней задержки

Проблемы, с которыми я сталкиваюсь с этими данными:

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

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

Основная проблема с поиском правильного подхода:

  • Я не уверен, какие подходы использовать для ответа на очень разные вопросы. Некоторые значения являются категориальными, а некоторые числовыми. Я не уверен, является ли это проблемой прогнозирования или проблемой предсказания ‘изменения события’. Или смесь обоих?

  • Как мне совместить эти очень разные категориальные переменные с числовым значением дохода в любую модель.

Методы, которые я изучал:

Извините за длинный пост. Я пытаюсь сделать проблему как можно более ясной. У меня нет идеи, какой будет лучший подход к решению этой проблемы и какие данные подать в модель. Я также потерян в том, как структурировать данные, чтобы максимально эффективно использовать все переменные.

Я был бы благодарен, если вы сможете помочь мне предложить какие-либо хорошие методы или учебные ресурсы, чтобы я мог ответить на вопросы. Спасибо за ваше время!

Если вы хотите использовать нейронные сети, этот пост на Kaggle может помочь: https://www.kaggle.com/c/m5-forecasting-accuracy/discussion/159052

В нем представлен короткий список ресурсов для категориальных вложений и LSTM (как мне кажется).

Если вы думаете, что ваш набор данных имеет периодические закономерности, и вам нужно лишь ответить на ваши вопросы (не запускать модель). Я бы посмотрел на FB Prophet: https://facebook.github.io/prophet/docs/quick_start.html#python-api

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

Для прогнозирования временных рядов на основе как числовых, так и категориальных данных, Light GBM доказал свою ценность в конкурсах Kaggle. Победители как конкурса M5, так и конкурса по прогнозированию продаж продуктового магазина Corporación Favorita использовали Light GBM.

Ответ или решение

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

1. Подготовка данных

a. Структурирование данных

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

b. Кодирование категориальных переменных

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

  • One-Hot Encoding: создаст новые бинарные переменные для каждой категории;
  • Label Encoding: присваивает каждой категории уникальный номер.

2. Методы анализа

a. Комплексный анализ с использованием ML

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

  • LightGBM: данный метод оказался очень эффективным для прогнозирования на конкурсах Kaggle. Он хорошо справляется с данными, содержащими как временные, так и категориальные переменные.
  • Random Forest Regression: данный алгоритм может быть полезен для анализа сложных взаимодействий между переменными и даст возможность избежать проблемы переобучения.
  • Gradient Boosting: другой мощный метод, который может эффективно работать с разнородными данными.

b. Модели временных рядов

Хотя ваши данные не являются стандартными временными рядами, вы все равно можете использовать методы временных рядов, такие как:

  • ARIMA: это будет полезно, если у вас есть достаточно данных по контрактам, изменяющим статус. Можно использовать предобработанные данные для создания временного ряда.
  • Facebook Prophet: если ваши данные проявляют периодические закономерности, этот инструмент может помочь учитывать часовые, недельные и другие сезонные эффекты.

3. Показатели и метрики анализа

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

  • Общая стоимость контрактов, меняющих статус и стадию;
  • Среднее время задержки начала контрактов;
  • Прогноз доходов на 5 лет, основанный на изменениях статуса и средних задержках.

4. Вопросы для анализа и прогноза

Ваши запросы о прогнозах могут быть формализованы в виде следующих вопросов:

  • Каковы тенденции изменения статусов контрактов?
  • Существуют ли какие-либо статистические зависимости между фазами заключения контрактов и их будущей стоимостью?
  • Есть ли очевидные аномалии или задержки в запуске контрактов?

5. Ресурсы для дальнейшего изучения

Вот несколько ресурсов, которые могут помочь вам углубиться в различные методы и подходы:

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...