AI-система выбора локации для инфраструктурных объектов
Выбор площадки для дата-центра, вышки связи, склада или промышленного объекта — задача с десятками коллинеарных факторов: энергетика, логистика, геология, климат, регуляторика, рынок труда. Традиционный подход через экспертные матрицы оценки медленный и не масштабируется на сотни кандидатных локаций.
Что реально усложняет задачу
Разнородность источников данных. Геопространственные растры (DEM, NDVI, flood zones), векторные слои (дороги, энергосети, зонирование), временны́е ряды (исторические данные о перебоях электроснабжения, климатические данные ERA5), табличные данные (налоги, стоимость земли, демография). Объединить это в единый feature space нетривиально.
Отсутствие разметки. Исторических примеров "правильных" выборов — единицы. Большинство проектов решают это через построение scoring-модели на основе экспертных весов + ML-калибровку, а не через supervised learning в классическом смысле.
Конкурирующие критерии. Минимальная стоимость энергии конфликтует с минимальным сейсмическим риском, который конфликтует с близостью к рынку сбыта. Multi-objective optimization, а не одна loss-функция.
Как строим систему: от геоданных до ранжирования
Геопространственный feature engineering
Основной инструмент — GeoPandas + Rasterio + GDAL. Для каждой кандидатной локации вычисляем:
- Энергетика: расстояние до подстанции (OpenStreetMap + utility GIS), доступная мощность из публичных реестров или API сетевых компаний
- Риски: пересечение с flood zone (FEMA/аналоги), сейсмическая активность (USGS ShakeMap), зоны с историческими power outage > N ч/год
- Логистика: travel time до ближайшего узлового склада через OSRM (OpenStreetMap Routing Machine), доступ к rail/highway
- Климат: ASHRAE climate zone, Cooling Degree Days из ERA5 (critical для ЦОД)
- Социальная инфраструктура: плотность квалифицированной рабочей силы из Census/LFS данных, ближайшие вузы
Итоговый feature vector на локацию — 80–150 числовых признаков.
Модель ранжирования
Задача формулируется как learning-to-rank: эксперт размечает несколько десятков "хороших" и "плохих" исторических выборов, модель обучается на pairwise или listwise loss. LightGBM с LambdaRank loss показывает стабильные результаты даже на малых обучающих выборках (50–200 объектов).
На реальном проекте (выбор 5 из 200+ площадок для складской инфраструктуры логистического оператора) NDCG@10 = 0.76 на holdout, что соответствовало экспертному консенсусу по топ-локациям при времени обработки 200 кандидатов — 4 минуты против 3 недель ручного анализа.
Explainability через SHAP
Каждое ранговое решение раскладывается на вклад признаков через TreeExplainer. Это критично: заказчик должен объяснить инвестиционному комитету, почему площадка A лучше площадки B. SHAP waterfall plot по локации — наглядный инструмент для таких презентаций.
Multi-objective Pareto-анализ
Для случаев, когда нет единого ранжирования, строим Pareto-фронт по двум-трём ключевым критериям (стоимость vs. риск vs. время вывода на рынок). Библиотека pymoo реализует NSGA-II для этой задачи. Заказчик выбирает точку на фронте в соответствии со стратегическими приоритетами — это честнее, чем скрытые веса в scoring-матрице.
Визуализация и интерфейс
Интерактивные карты через Kepler.gl или deck.gl поверх Mapbox. Цветовые слои по каждому критерию, drill-down до конкретной локации с её feature profile. REST API для интеграции с корпоративными GIS-системами (ArcGIS, QGIS).
Процесс
- Сбор источников — инвентаризация доступных GIS-слоёв, получение закрытых данных (сетевые операторы, кадастр)
- Feature pipeline — обработка растров, геокодинг, агрегация на зоны интереса
- Калибровка весов с экспертами — structured elicitation или ranking исторических кейсов
- Обучение и валидация — leave-one-out cross-validation при малой выборке
- Деплой — batch-scoring новых кандидатов через API или Jupyter-отчёты для аналитиков
Базовый scoring-инструмент: 6–10 недель. Полная геоаналитическая платформа с real-time обновлением слоёв: 4–8 месяцев.







