Математика недвижимости. Покупка недвижимости. Фейки. Статья 2.

Математика недвижимости. Покупка недвижимости. Фейки. Статья 2.

В прошлой статье цикла “Математика недвижимости” (Ссылка)мы разбирали довольно простую модель оценки риска, а точнее того что объект по какой-то причине выпадает из “рынка” по стоимости квадратного метра. Результаты это модели сильно зависели от области рассмотрения - полигона в двух крайних случаях - огромный полигон - например регион или маленький полигон где 2-3 объекта модель вообще становиться слабо применима, да и с полигонами в несколько десятков или сотен объектов есть вопросы: недвижимость в них может сильно различаться по классу, что делает эту модель довольно “слабой”. В статье ниже я хочу предложить вашему вниманию еще одну модель HDBSCAN (Density-Based Spatial Clustering of Applications with Noise) и результаты ее работы.

Если в общих словах модель HDBSCAN нам может показать из каких кластеров состоит локальный рынок. Под кластером в нашем примере могут пониматься например квартиры разделенные по цене квадратного метра и количеству комнат, или дома различного класса. Под локальным рынком некая географическая область к которой мы модель применяем. Очевидно что для квартир она сильно меньше чем для загородных домов. Кроме того отмечу что у модели HDBSCAN есть ограничение снизу по количеству обьектов, применять ее к 5-10-30 объектам просто не имеет смысла.

Работа с Гео.

В силу того что модель HDBSCAN требует определенных математических расчетов, мы не можем выполнять ее “на лету” - как только у нас появился новый объект. Поэтому мы должны выделять кластеры заранее, поэтому дать возможность пользователю самостоятельно определять локальную область мы не можем. Поэтому все локальные области мы должны предустановить заранее. Мы используем технологию Uber H3- разбиваем поверхность земли на гексы (равносторонние шестиугольники). Гексы сильно удобнее использовать чем скажем квадраты - мы тем самым минимизируем диагональные аномалии.

Количество объектов в гексе и с учетом содей 1,2,3-го порядка.
Количество объектов в гексе и с учетом содей 1,2,3-го порядка.

Uber H3 - позволяет использовать разные масштабы от r0 - вся поверхность до r15 - отдельное здание. Мы используем два масштаба:

для квартир: resolution = 9 (мелкий гекс, ~0.17 км по ребру),

для загородки: resolution = 7 (крупнее, ~1.2 км по ребру).

Следующим важным моментом нам нужно определить ко скольки гексам мы применяем модель, дело в том, что в гексе может быть 1 объект. Для этого мы используем идею кольца т.е. на первом этапе смотрим сколько в одном гексе, если объектов недостаточно, берем все соседние если и их недостаточно берем соседей соседних и так далее. В нашей модели мы ограничиваемся 3 шагами обычно этого достаточно. Конечно если у нас дом стоит в лесу то этого не хватает, но в этом случае вообще сложно говорить о кластеризации, да и рынке как таковом.

Целевой объем для HDBSCAN:

HDBSCAN_RATE_FLAT = 150,

HDBSCAN_RATE_SUBURBAN = 150

Используя концепцию описанную выше мы получаем, довольно надежную выборку для применения HDBSCAN.

Модель HDBSCAN признаки и их веса.

Применение модели базируется на признаках по которым идет кластеризация для квартир они свои для домов свои, мы выделили следующие признаки и их весовые характеристики (Сегмент/Признак/Вес):

flat x_geo 1.0

flat y_geo 1.0

flat log(price_per_m2) 1.5

flat rooms 1.0

flat log(area_m2) 1.0

suburban x_geo 1.0

suburban y_geo 1.0

suburban log(price_per_m2) 1.5

suburban house_area_m2 1.0

suburban distance_to_city 0.2

Ключевая интерпретация:

Для цены квадратного метра более правильно использовать не саму цену квадратного метра, а ее логарифм

цена за м² усилена (1.5);

расстояние до центра для загородки ослаблено (0.2);

геометрия и базовые размерные признаки идут с нейтральным весом 1.0.

Применение модели HDBSCAN (немного математики).

Рассчитываем пространственное приближение в километрах Для объявления i с координатами (lat_i,lon_i), относительно локального центра (lat,lon) рассчитываем:

Математика недвижимости. Покупка недвижимости. Фейки. Статья 2.

Фактически это расстояние каждого объекта до локального центра.

Далее на основе растояний и признаков строим вектора отдельно для квартир и загородной недвижимости:

Квартиры:

Математика недвижимости. Покупка недвижимости. Фейки. Статья 2.

Дома:

Математика недвижимости. Покупка недвижимости. Фейки. Статья 2.

Далее проводим нормализацию и приписываем веса. По каждому признаку рассчитываем:

Математика недвижимости. Покупка недвижимости. Фейки. Статья 2.

И применяем вес:

Математика недвижимости. Покупка недвижимости. Фейки. Статья 2.

Еще раз отметим, что цена за м² имеет повышенный вес, чтобы рыночная структура сильнее влияла на форму кластеров.

Ну а далее рассчитываем метрику расстояние между нашими векторами:

Математика недвижимости. Покупка недвижимости. Фейки. Статья 2.

Это расстояние используется внутри HDBSCAN.

Кроме указанных выше параметров HDBSCAN, модель еще использует ряд параметров динамично рассчитываемых в зависимости от выборки (с эвристическим ограничениями):

Это «зажатая адаптация»:

Математика недвижимости. Покупка недвижимости. Фейки. Статья 2.

floor(n/10) — базовая идея: минимальный кластер ≈ 10% выборки.

max(5, ...) — не даем опуститься слишком низко на малых выборках.

min(..., 15) — не даем стать слишком большим на крупных выборках (иначе алгоритм будет слишком грубым).

и

Математика недвижимости. Покупка недвижимости. Фейки. Статья 2.

Для min_samples та же логика: примерно половина min_cluster_size, но с нижней границей 3 и верхней 8.

То есть модель автоматически подстраивается под объем выборки, но в разумных границах.

HDBSCAN возвращает: метку кластера для каждой точки (-1 = шум), вероятность принадлежности. На уровне кластера мы считаем набор показателей качества/устойчивости (плотность, ценовая когерентность, гео-непрерывность, разнообразие продавцов и т.д.) и строим интегральный индекс.

В результате мы получили несколько кластеров которые у нас характеризуют рынок недвижимости в данной локальной области.

Зеленые отметки это объекты исследуемого гекса, красные и синие это построенные кластеры
Зеленые отметки это объекты исследуемого гекса, красные и синие это построенные кластеры

Далее у нас встает два существенных вопроса: Насколько качественно кластеры характеризуют рынок и как определить риск обьекта - то что он не в рынке, а вероятнее всего фейк?

Насколько качественно кластеры характеризуют рынок?

Дело в том что мы изначально работаем на довольно шумном рынке - очень много манипуляций и фейков, есть продавцы связанные с белыми и пушистыми крупными агентствами недвижимости которые размещают фейки в промышленных масштабах. Например, в одном крупном агентстве недвижимости Сочи, было правило - пока сотрудник-агент не разместит с утра 20 объявлений, он не выходит в поля. Естественно далеко не у каждого агента есть соизмеримое количество реальных объявлений. В нашем случае это означает что есть риск того, что какой-то агент пачкой разместит 20 несуществующих объектов в одной локации, которые сами по себе будут образовывать кластер. Очевидно что подобные кластеры не имеют никакого отношения к реальности.

Для этого мы вводим специальную метрику CLS (Cluster Stability) стабильности, качества кластера. Ниже приведены компоненты и расчет нашей метрики CLS:

  • s_stability основана на HDBSCAN - Насколько кластер «устойчив» как структура, а не случайная группа
  • s_membership основано на HDBSCAN - Насколько уверенно объекты принадлежат кластеру
  • s_density основана на log_density
Математика недвижимости. Покупка недвижимости. Фейки. Статья 2.

Показывает насколько кластер компактный и «плотный»

  • s_price основан на price_coherence (ценовая согласованность):
Математика недвижимости. Покупка недвижимости. Фейки. Статья 2.

Показывает насколько цены внутри кластера согласованы

  • s_seller основана на seller_diversity:
Математика недвижимости. Покупка недвижимости. Фейки. Статья 2.

Отражает риск концентрации продавца (чем выше разнообразие, тем лучше)

  • s_spatial основано на spatial_continuity пространственной неопределенности то то оценка, то оценка, насколько кластер географически цельный: высокий spatial_continuity- объекты собраны компактно и равномерно;низкий spatial_continuity кластер «размазан»/фрагментирован в пространстве. Фактически упрощенно это нормированная гео дисперсия ( не буду приводить формулы они очевидны)
  • s_noise основан на noise_ratio:
Математика недвижимости. Покупка недвижимости. Фейки. Статья 2.

По смыслу показывает насколько «чистая» выборка вокруг кластера.

Ну и финальная формула для расчета CLS:

Математика недвижимости. Покупка недвижимости. Фейки. Статья 2.

Значение данного показателя показывает насколько сильно мы доверяем тому или иному кластеру.

Как определить риск обьекта - то что он не в рынке, а вероятнее всего фейк?

Определить в рынке объект или нет можно только сравнив его с этим самым рынком. Рынок при использовании HDBSCAN мы представляем как набор кластеров. Соответственно, если мы доверяем кластерам коэффициент CLS имеет высокое значение, и если объект в рынке, то высока его вероятность попадания хотя бы в один кластер.

Для этой оценки мы используем среднюю дистанцию до объекта x образующих кластер (под дистанцией понимается более широкое понятие чем гео смысл т.к. туда входят другие признаки более детально определение дистанции смотри выше):

Математика недвижимости. Покупка недвижимости. Фейки. Статья 2.

Затем нормируем через P95 - это 95-й перцентиль ( это такое значение, ниже которого находится 95% наблюдений):

Математика недвижимости. Покупка недвижимости. Фейки. Статья 2.

И наконец то переходим к уровню доверия и риску объявления:

Математика недвижимости. Покупка недвижимости. Фейки. Статья 2.

Далее применяем Percentile-нормализацию:

Математика недвижимости. Покупка недвижимости. Фейки. Статья 2.

И отображаем пользователю со следующую шкалу:

<5 минимальный

<15 очень низкий

<30 низкий

<45 умеренный

<60 средний

<75 выше среднего

<90 высокий

>=90 критический

Математика недвижимости. Покупка недвижимости. Фейки. Статья 2.

Фактически мы построили модель оценки риска объявления, ее стоит трактовать так: Насколько объявление похоже на тот или иной сегмент рынка? При положительном ответе на этот вопрос модель говорит данное объявление не является фейком. Эту же модель можно использовать для оценки “рыночной” цены объекта.

Ограничения модели HDBSCAN.

  1. Как я писал выше модель не работает когда у вас недостаточно объектов в выборке (Пример: дом в лесу, где на много км нет других объектов) минимальный размер для квартир 100 для домов 50 объектов, это подобрано опытным путем. Я использую для стабильности 150 и там, и там.
  2. Когда рынок очень не однороден, т.е. представляет смесь рынков отличающихся очень сильно по параметрам и их распределениям, тогда HDBSCAN видит просто шум и не может выделить кластеры. Для этого случая есть другая модель я приведу ее изложение в следующей статье из цикла Математика Недвижимости.
  3. Выборка по прежнему (как и в первой статье цикла) не учитывает риск того что автор объявления являются фейкометом - т.е. осознанно искажает рынок. Да, мы проверяем кластеры на концентрацию объявления по автору, но одиночные объявления могут проскакивать в процессе формирования кластера.

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