Приложение позволяет спрогнозировать вероятность успешной сдачи экзаменационной сессии на основе индивидуальных параметров подготовки студента с применением метода статистического моделирования (Монте-Карло).
- Клонируйте репозиторий:
git clone https://github.com/byrilo/session-predictor
cd session_predictor- Создайте и активируйте виртуальное окружение:
python -m venv venv
source venv\Scripts\activate- Установите необходимые библиотеки:
pip install -r requirements.txt- Запустите приложение:
python -m main.py- data/ - модуль получения данных из xlsx файла; разработчик модуля - Евсюков Дмитрий
- gui/ - модуль отображения визуального графического пользовательского интерфейса для ввода данных, а также проверка введённых данных на корректность; разработчик модуля - Евсюков Дмитрий
- model/ - модуль реализации базовой формулы модели для расчёта вероятности сдачи сессии base_score, функция random_ luck(), генерирующая число из нормального распределения с параметрами, заданными пользователем, функция P_ticket, рассчитывающая вероятность получения конкретного билета по формуле Бернулли; разработчики модуля - Саидов Владислав, Котова Елена, Дронов Всеволод
- simulation/ - модуль, использующий информацию, полученную в остальных модулях, для предсказания вероятности сдачи сессии в виде "Сдал"/"Не сдал"; разработчик модуля - Сазонов Владимир
- stats/ - ; разработчик модуля -
- tests/ - модуль, в котором будут описаны результаты тестов для выявления ошибок/проблем/нестыковок в программе; разработчик модуля - Григорьев Вячеслав, Чивчиян Алексей
- viz/ - модуль визуализации результатов работы программы: гистограмма успехов, график зависимости вероятности сдать сессию от часов, тепловая карта зависимости выученных билетов от времени, потраченных на изучение; разработчик модуля - Степанова Татьяна
- requirements.txt - список зависимостей, необходимый для корректной работы приложения
Входной файл subjects_tusur_reduced с расширением xlsx обладает такими столбцами: название предмета - subject, ранг (сложность) предмета - rank , формат сдачи предмета - exam_form. Остальные данные получаются от пользователя с помощью модуля отображения графического окна ввода данных.
Значения, которые получает программа:
| Переменная | Описание | Тип данных | Диапазон допустимых значений |
|---|---|---|---|
| subject | Название предмета | str | Длина строки >= 3 символа |
| rank | Ранг предмета | int | от 1 до 5 |
| exam_form | Форма сдачи экзамена | str | Длина строки >= 3 символа |
| has_debts | Наличие академических задолженностей ("хвостов") | bool | 0 либо 1 |
| hours_per_day | Количество часов подготовки в день | float | От 0 до 12 |
| missed_lectures | Количество пропущенных занятий | int | >=0 |
| luck | Уровень везучести студента | int | От 0 до 10 |
| total_tickets | Общее количество билетов | int | От 1 до 50 |
| learned_tickets | Количество выученных билетов | int | Не более, чем total_tickets |