Skip to content

bvgtomsk/DSPR-2.0-FinalProject1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Финальный проект 1 года обучения на курсе DSPR-2.0 от Skillfactory

Построение прогноза количества госпитализирированных в психиатрическую больницу через приемное отделение

Бизнес задача: Построить прогноз поступления пациентов через приемное отделение психиатрической больнице

Технические задачи:

  1. Проанализировать сырые данные, состваить из них временной ряд
  2. Провести перивичный анализ временного ряда
  3. Построить базовую модель
  4. Произвести посик модели дающей лучшие предсказания на тренировочной и валидационных выборках
  5. Произвести окончательную проверку качества моделей на тренировочной выборке
  6. Произвести выгрузку обученной модели в файл, для последующего использования в продакшене
  7. Создать веб приложение с возможностью визуализаций предсказаний за выбранный период и с заданой частотой дескретизации.

Преамбула

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

Работа над проектом

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

Результаты

  • была получена модель с показателем взвешенной абсолютной процентной ошибки
    • в 0.25 на дневном прогнозе
    • в 0.09 на недельном
    • и 0.05 на месячном
  • поскольку для организации в целом интерес представляют не дневные прогнозы а интеравальные, то полученная точность на месячном и недельном прогнозе достаточна для дого, чтобы считать бизнес задачу решенной.
  • как практическое воплощение было создано веб приложение со скромной фронтенд частью с возможностью выбора интервала дат, а также формата прогноза: подневный, еженедельный или ежемесячный, с выводом данных в виде таблицы и графика.

Части проекта

  • Ноутбук с анализом ряда и построением модели предсказания
  • Ноутбук с парсиногом фаз луны с сайта https://mirkosmosa.ru/
  • Файл csv с данными по поступлению пациентов
  • Файл csv с фазами луны
  • директрория application
    • Файл с вебприложением
      • Файл с классом TrendRemover
      • Директория model
        - Файл с сохраненной моделью
        - Файл csv с фазами луны
  • Файл с параметрами build`а docker контейнера
  • Файл с зависимостями

Образ докер контейнера - https://hub.docker.com/r/bvgtomsk2005/patients_forecasting - используемый порт - 5000

Releases

No releases published

Packages

No packages published

Languages