TGViewer
asisakov asisakov @asisakov_channel · 4.09K subscribers
Post #874 1.38K
Пространственные признаки для линейной регрессии и катбуста

Допустим, мы прочитали пост с задачами в геоаналитике (либо этот) и даже пробежались по комментариям. И приняли решение затащить какую-либо задачку с использованием машинного обучения. У нас тут важна работа с координатами, иначе смысл тут применять геоаналитику?

И если мы например используем kNN, то координаты можно подавать в чистом виде, но нужно помнить о нюансах их использования.

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

Какие нюансы:

1️⃣Нелинейная корреляция/зависимость - цена квадратного метра в Москве не зависит линейно от lat и lon. Скорее, она зависит от близости к центру, метро, паркам, престижности района – и представьте, как всё это очень сложно выучить через долготу и широту. Линейная регрессия тут точно не затащит, но у катбуста хотя бы есть шансы. Но если мы например сделаем некоторую предобработку признаков и докинем инфу о наличии тех же объектов через координаты, то это очень упростит жизнь моделькам.

2️⃣Пространственная автокорреляция - объекты, расположенные близко друг к другу, обычно более похожи (например, цены квадратного метра в соседних домах или ЖК). Когда kNN это может учесть через близость, линейная регрессия так просто это не выучит, ДУШНИЛА МОД ОН причем остатки будут пространственно скоррелированы, что нарушает её предпосылки ДУШНИЛА МОД ОФФ. Опять же, через подготовку признаков (хотя бы посчитать расстояние), мы сможем это учесть.

3️⃣Интерпретируемость - здесь я думаю для всех очевидно, что бизнесу будет довольно сложно объяснить физический смысл у коэффициента при широте или долготе. "Чем мы севернее, тем ...". Важна не сама координата точки, а что ее окружает.

Что можно использовать как фичи:

1️⃣UTM-проекция возможно нам не пригодится, но давайте просто повторим:

▫️Условно делаем преобразование lat, lon в метры в x,y через разные библиотечки
▫️Можно также сделать преобразования над координатами - что-то типа X^2, Y^2, X*Y.

2️⃣Расстояния до ключевых объектов (Points of Interest - POI)

▫️Расстояние до ближайшего метро, парка, школы, ТЦ, центра города
▫️Используем Haversine (для lat, lon) или Евклидово (для UTM)
▫️Можно взять не только до ближайшего, но и до 2-го, 3-го ближайшего, или среднее расстояние до N ближайших (если любите упороться)

3️⃣Плотность и количество объектов в радиусе/полигоне

▫️Сколько кафе/банкоматов/остановок в радиусе 500м/полигоне
▫️Средняя плотность населения в полигоне

4️⃣Характеристики ближайших соседей (не kNN, а именно контекст)

▫️Средняя цена объектов в радиусе X км
▫️Тип застройки у ближайших зданий

5️⃣Категориальные признаки (база, но давайте повторим)

▫️Название района, административный округ
▫️Зона по генплану (жилая, промышленная, рекреационная).
▫️Для LR можно использовать OHE или MTE, для CatBoost просто прокидываем категориальные данные как есть (главное не забыть их указать для модели)

6️⃣Комбинация признаков и Feature Scaling для линейной регрессии

▫️Например, берем перемножения признаков как новую фичу = расстояние_до_метро * расстояние_до_тц
▫️Все числовые признаки приводим к одному масштабу через StandardScaler или MinMaxScaler

Не забываем:

1️⃣Пространственная кросс-валидация

▫️Данные нужно бить на фолды пространственно (по регионам), чтобы избежать утечки из-за пространственной автокорреляции
▫️Допустим, GroupKFold по ID района/квадрата

2️⃣Data Leak

▫️Особенно аккуратно с фичами, основанными на целевой переменной
▫️Всегда топлю за проверки, чтобы для каждой точки в трейне мы использовали информацию только из прошлого или из объектов, которые не зависят от её собственной целевой переменной

Помним, и для линейной регрессии, и для CatBoost в геоаналитике и вообще всегда очень важна подготовка признаков. Так как lat, lon в чистом виде может не взлететь - поэтому давайте заниматься генерацией признаков!

Ну и дальше улучшать модели

#ml #geoanalytics
Telegram asisakov Для чего вообще нужна геоаналитика В бизнесе, связанном с доставкой, мы всегда работаем со спецификой спроса и логистики на определенных территориях, возникает достаточно много задач с геоданными. Например, в онлайн-продуктах такое влияние географии тоже…
  • ❤ 7
  • 🔥 6
  • 👍 3
More from @asisakov_channel
  1. Sep 28, 2026Гермес, Пи или Уроборос Пару дней назад не выдержал и удалил Гермеса. Все же слишком друно…
  2. Sep 27, 2026Post #1431
  3. Sep 27, 2026Post #1430
  4. Sep 25, 2026🇬🇧 Английский, который хочется не просто учить, а действительно использовать Если вы дав…
  5. Sep 24, 2026Post #1428
  6. Sep 24, 2026Оказывается недавно вышел Opus 5.5, который типа догоняет Fable 5.1, и при этом дешевле на…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →