Прогнозирование спроса на электромобили на данных о ценах топлива: ML-кейс для ВКР
Поддомен: Data Engineering / ML. Роль эксперта: Data/ML-инженер.
Пока средняя цена бензина в США поднималась с ~$3 до $3,98 за галлон, поисковый трафик по электромобилям на одной из онлайн-площадок вырос на 20 %, а по Tesla Model Y — почти вдвое. Для выпускника ИТ это не новость из мира энергетики, а готовый сценарий для ВКР: есть объясняющая переменная (цена топлива), есть отклик (спрос на EV), есть окно исторических данных и острая прикладная задача — построить модель, которая предсказывает спрос и обосновывает решения. Ниже — как превратить этот сюжет в защищаемую работу с архитектурой, метриками и нормальным ТЗ.
FAQ: что чаще всего спрашивают перед выбором темы
Где брать данные, если у меня нет доступа к коммерческим API?
Публичные источники: AAA Gas Prices (историческая динамика), отчёты EIA, реестры регистраций EV по штатам/странам, открытые датасеты Kaggle по авторынку. Для учебной модели 3–5 лет дневных данных достаточно, чтобы показать статистическую значимость.
Какую метрику защиты выбрать — RMSE или MAPE?
Обе, но с обоснованием. RMSE чувствителен к выбросам (а волатильность цен на топливо — как раз выбросы), MAPE интерпретируем для бизнеса как «ошибка в процентах». Добавьте baseline — наивный прогноз «завтра = вчера», иначе комиссия спросит, зачем вообще нужна модель.
Как оформить архитектуру пайплайна по нормоконтролю?
ГОСТ 19 — для программ и алгоритмов, ГОСТ 34 — для систем в целом. Диаграммы — в нотации C4 (уровни Context/Container) или UML Deployment. Скриншоты дашбордов идут в приложения, а не в главу 2.
Можно ли считать экономический эффект, если работа про ML?
Да. Свяжите снижение MAPE на X % с сокращением избыточных закупок или складских запасов — это стандартный приём в ВКР по направлению «Прикладная информатика».
Темы ВКР: три вектора, которые реально защищаются
- Тема 1. «Прогнозирование спроса на электромобили на основе динамики цен на топливо».
Актуальность — прямой отсыл к статье и кейсу роста трафика на 20 %.
Цель — построить регрессионную модель спроса с горизонтом 30 дней.
Задачи: собрать датасет, инженерно подготовить признаки, обучить и сравнить 3 модели (Linear, Gradient Boosting, Prophet), оценить метрики.
Структура: Гл. 1 — анализ рынка и обзор методов; Гл. 2 — архитектура пайплайна и реализация; Гл. 3 — оценка точности и сценарии. - Тема 2. «Пайплайн сбора и обработки данных о ценах на топливо и рынке EV».
Актуальность — волатильность требует near-real-time обработки, а не ежемесячных отчётов.
Цель — спроектировать ETL/ELT-пайплайн с оркестрацией.
Задачи: источники, схема хранилища, оркестрация, мониторинг качества данных.
Структура: Гл. 1 — обзор инструментов (Airflow, dbt, TimescaleDB); Гл. 2 — проектирование по C4; Гл. 3 — нагрузочное тестирование и SLA. - Тема 3. «Сервис расчёта TCO и поддержки решения о переходе на электромобиль».
Актуальность — статья прямо указывает на порог $4/галлон как точку перелома.
Цель — веб-сервис с расчётом совокупной стоимости владения.
Задачи: модель TCO, REST API, дашборд, сценарный анализ.
Структура: Гл. 1 — экономическая модель; Гл. 2 — backend и интерфейс; Гл. 3 — юзабилити и верификация расчётов.
Основная часть: как встроить материал в главы
Глава 1 — от статьи к постановке задачи
Не пересказывайте журналистский текст. Выделите из него три технических факта: (1) цена топлива — экзогенный триггер спроса; (2) реакция рынка измеряется с лагом в недели; (3) волна возврата лизинговых EV (около 300 тыс. договоров) добавляет предложение. Эти факты превращаются в гипотезы и в список признаков. Оформите таблицу «Фактор → Источник данных → Признак в модели».
Глава 2 — архитектура и пайплайн
Опишите поток: сбор → сырой слой (raw) → очистка → слой признаков (feature store) → обучение → инференс. Оркестрацию покажите на Airflow, качество данных валидируйте через Great Expectations или dbt-тесты. Диаграмму стройте в C4 Container — это снимает половину вопросов комиссии.
# фрагмент: feature engineering + baseline
import pandas as pd
from sklearn.ensemble import GradientBoostingRegressor
from sklearn.metrics import mean_absolute_percentage_error
df = pd.read_parquet("s3://datalake/ev_market/features.parquet")
df["lag_gas_7d"] = df["gas_price"].shift(7)
df["ev_search_7d"] = df["ev_search"].rolling(7).mean()
X = df[["lag_gas_7d", "ev_search_7d", "lease_expiry_cnt", "cpi"]]
y = df["ev_registrations"]
split = int(len(X) * 0.8)
model = GradientBoostingRegressor(n_estimators=400, max_depth=4)
model.fit(X[:split], y[:split])
pred = model.predict(X[split:])
print("MAPE:", round(mean_absolute_percentage_error(y[split:], pred), 3))
Глава 3 — метрики и оценка эффективности
Сравнивайте модель с наивным baseline и фиксируйте MAPE, RMSE, а также экономический эффект. Качество ПО описывайте по ISO/IEC 25010 (функциональная полнота, производительность, надёжность). Если поднимаете сервис, добавьте OpenTelemetry-трейсинг, чтобы показать наблюдаемость — это сейчас заметно повышает оценку.
Чему вы научитесь
- Строить воспроизводимый ML-пайплайн с версионированием данных и моделей (MLflow/DVC).
- Обосновывать выбор метрик под бизнес-задачу, а не «потому что так в туториале».
- Оформлять архитектурные диаграммы по C4/UML и ТЗ по ГОСТ 19/34.
- Считать экономический эффект от повышения точности прогноза.
- Настраивать мониторинг качества данных и деградации модели.
Что проверить перед сдачей
- Все задачи из введения зеркально отражены в выводах по главам и заключении.
- Для каждой схемы есть подпись и ссылка в тексте (Рисунок 1 — ...).
- Метрики модели посчитаны на отложенной выборке, а не на обучающей.
- Источники данных указаны с датами выгрузки и лицензией.
- Код вынесен в приложение, а не разбросан по главе.
- Уникальность текста соответствует регламенту вуза (обычно ≥ 70 %).
- Оформление ссылок и списка литературы — по ГОСТ Р 7.0.5.
Типичные ошибки студентов
1. Прогноз без baseline. Модель с MAPE 12 % звучит неплохо, пока не выяснится, что «прогноз=вчера» даёт 13 %. Всегда сравнивайте с наивным ориентиром.
2. Игнорирование лага. Цена топлива влияет на спрос не мгновенно. Забыли про лагированные признаки (shift, rolling) — получили ложную корреляцию.
3. Архитектура «на словах». Одна диаграмма C4 или UML Deployment экономит 10 минут защиты и снимает вопрос «а как это работает вместе».
Если тема сформулирована, но нет понимания, где взять данные или как связать ML-часть с ГОСТ-оформлением — можно взять бесплатную 15-минутную консультацию: поможем очертить структуру и подскажем, какие метрики и диаграммы обязательно показывать. Средний срок сопровождения — от 120 часов работы над проектом.
Источник: Are high gas prices good news for EVs? It’s complicated. (опубликовано 2026-03-26)