Pull to refresh

Comments 23

Стилистически статья написана в классических традициях школьных лабораторных работ по физике. Мы провели эксперимент... мы научились... мы рассмотрели... результат эксперимента равен теоретическому, рассчитанному по формуле с точностью до ошибки измерения.

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

Найти можно, но есть ли возможность приобрести? Если есть золотой запас, то в чём проблема?


Рассмотрели метод построения модели предсказания цен на рынке недвижимости

Так какая задача решалась: выбора квартиры или предсказания цен?

Корректное замечание. Первое - для покупателей, второе - для продавцов. А вообще похоже это решение с хакатона Цифровой прорыв (если память не изменяет), была там такая задача

Лучшей квартирой признана студия 20 кв м в мурино?

Если ее продают за 50% стоимости аналогичной, нет скелетов в шкафу и рынок ликвидный - то определённо это лучшая квартира))

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

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

А зачем прогнозная цена при выборе квартиры? Типа я вот эту не возьму, потому что по моему анализу она стоит N/2, а вы просите N рублей?

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

Счастье покупателя и продавца наступает при установлении продавцом и принятии покупателем т.н. равновесной цены. Многие ее высокопарно называют "справедливой", "рыночной", "реальной" итд. Именно эту цену хотели бы знать не только сами продавцы и покупатели, но и госорганы, МФЦ, нотариусы...

Почему ее в точности не знает никто, даже сами продавцы и покупатели? Да потому что они, после покупки, спустя время, вполне могут сказать сколько они пере- или недо-платили, узнав почти все о "косяках" здания, проблемах, соседях, "райончике" итп всём, что не учли или скрыли стороны при сделке. Эти стороны никогда не обмениваются это инфой друг с другом. Но в тех редких случаях, когда обмен возможен - величина недо/переплат экспертно ими же нередко оценивается в 10%, что, согласитесь, немало.

В приведенном датасете - мы имеем цену публичной оферты, цену рекламного предложения (иное не указано). Логично предположить, что раз ее озвучивал продавец - то она "несколько выше" чем равновесная, как миниум на абсолютную сумму скрытых переплат. А раз у нас таргет (цель) неточная - модель тоже неточная. Но она все-таки иногда может использоваться как отправная точка (всеми), поэтому я статью плюсанул.

Почему не "должна" и почему не "всегда"? Потому что реального продавца снизу подпирает т.н. невидимый датасет, который не собрать со стороны никакими силами, потому что информация секретна, постыдна или слабо осязаема.

Например, для застройщика - это степень его закредитованности и увлеченности банно-саунным менеджментом с власть имущими, уровень адекватности его собственника, управленца и отдела продаж (и степень влюбленности собственника в начальницу отдела), а также "норма жадности" всех этих лиц. Для риэлторов - другой набор фич, куда немало входит хитрость и изворотливость в умении "кинуть контору" путем сговора с клиентом (а лучше с риэлтором конкурирующей конторы). Мало того что все их нужно как-то узнать, их еще и оцифровать надо.

Вот этот неизвестный "теневой" датасет и дает основные погрешности ML в недвижке. Размер этих погрешностей превышает ML-ошибки и именно он препятствует "второму" пришествию ИИ в недвижку. Так что успехов всем нам в собирании и чистке данных.

вы пробовали тестировать вашу модель на данных прошлых лет, что бы предсказать движение цен и сравнить их с текущими для выявления погрешностей? хотелось бы увидеть исследование в котором модель помогает исследователю получить данные по динамике цен. пример взят из головы(условно квартира на кутузовском в процентном соотношении за N период выросла на 15%, а в квартале ЗИЛ на 11%) и самостоятельно разобраться почему рост в разных районах города (в данном примере Москвы) гетерогенный. И уже сопоставив факторы доступные покупателю с данными вашей модели принять решение. Мне кажется ваша модель сильно усредняет результат, ее необходимо дополнительно подвергать анализу тех характеристик находящихся в описании квартиры( например вид из окна, стороны света на которые выходят окна, ремонт или его отсутствие и многое другое).

Модель не тестировалась для сравнения с текущими ценами и выявлениями погрешностей, но есть идеи для доработки этой истории и расширить набор данных, так как модель сейчас предсказывает только для одного города (Санкт-Петербург), для других городов на обученной модели могут быть некорректные прогнозы. Спасибо за идею для доработок!

Я - старый риелтор и не смог пройти мимо статьи без комментария. Резюме - статья о том, что ни один набор данных не может обойтись без поиска закономерностей. Такие попытки давно делаются ЦИАНом - и также как в данной статье выглядят жалко и смешно.

В основном деятельность риелтора по базе объектов - это фильтрация, а не ранжирование. Примерный список критериев по приоритетам:
1. Транспорт - это самое важное. Сначала определяются области - могут быть разными, так как видов транспорта достаточно много.
2. Массовые предложения по цене/качество и класс жилья, центры притяжения. В общем, буду ли жить в этом районе вообще или сразу нет.
3. Потом оценка своих возможностей - прикинуть бюджет и предложения. Классика - нравятся объекты, где цена на 10% выше возможностей. Есть объектов один-два - на 99% это не ваш район. Чтобы был выбор нужно около 10 предложений в выборке.

Далее уже фильтрация конкретных предложений. Звонками! Именно фильтрация: предложения могут быть неактуальными, у объектов есть "история" (больше о переходах права собственности), есть специфические условия продажи. Есть неадекватные продавцы. И что-то отсеивается по фотографиям.

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

Ну а потом переходим к авансу и сделке - и вот там кончается ремесло и начинается искусство! Итого - я не верю, что работа риелтора может быть автоматизирована. Какие-то отдельные шаблонные операции - да, но определить шаблонная или нет, и вдруг она из обычной превратится в "чудесную" - это можно предсказать только с какой-то вероятностью.

Возможно, что в данный момент работа риелтора и не будет автоматизирована, но учитывая как развивается Machine Learning, то может быть частично какая-то часть работы и сможет быть автоматизирована с помощью методов машинного обучения.

Вам не понравился мой коммент? А мне ваша статья про то, что можно выбрать квартиру, смотря в прошлое. На основе набора ПРОШЛЫХ данных можно отследить какие-то события рынка недвижимости и нарисовать кучу картинок. Но не выбрать квартиру, где клиент собирается создать своё будущее. На датасете можно генерировать контент для "инвесторов" - они все равно покупают стандартные объекты, аналитика по таким востребована. Но не для "себя"!

Вы правы, когда пишите "частично какая-то часть работы и сможет быть автоматизирована" - в сделке полно коротких операций, которые УЖЕ автоматизированы. И какие-то хорошо регламентированные процедуры автоматизируются сейчас. Машинное обучение что-то может, да - но вот не задачу "как выбрать квартиру". ОЧЕНЬ много факторов влияют на выбор. И эти факторы-нюансы есть У КАЖДОГО УЧАСТНИКА сделки. В фантазиях можно представить "абсолютную модель сделки", но ввод данных в модель будет сильно сложнее реальной работы риелтора.

Конкретно по формулам в статье не могу возразить - уверен, что технично подошли. Но вот сама постановка задачи уже нивелирует решение и результат. Подобные оценки "хорошая цена" в базе объектов возбуждают кого-то на фантазии, но в реальной работе только мешают - вот я только об этом!

З.Ы. Даже сверхобъективное "окна во двор или на улицу" различно для внутриквартальной дороги и шоссе. И вот жесткие примеры из жизни риелтора: собственность менее 3/5 лет (возмездная, безвозмездная, по суду), в собах ребенок/пенсионер, объект в залоге банка или под арестом, использован маткап, продажа по доверенности, соб на учете психоневрологички или наркологички (или не на учете, но откровенный псих!). Ничего этого не пишут в объявлениях, зато цена будет сладкой. И ни одна машина не справится с подобным вызовом - повторюсь, это не пишут даже в описании объекта!

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

Для автоматизации той части работы, которая автоматизируема и не требует общения с продавцами и просмотра вживую, никакого машинного обучения вообще не нужно. Типовые шаблоны документов и так уже давно доступны в domclick. @vkomp совершенно верно все описал.

Абсолютно в точку. Все так и есть. Могу добавить, что сейчас покупатель вторички с котлетой в руках, практически с порога может получить скидку в 10%, а при правильном умении строить торговые отношения и больше чем 10. Пока нет реальной статистики по реальным ценам сделок, все эти исследования - чистая забава. Не верите? Поиграйтесь с Сочи, где наверное уже каждая первая квартира (именно квартира, а не квадратные метры в 5ти этажном строении возведенные на месте гаражей), покупалась по инвестиционному договору , ценой в последующем дкп 10% от реально уплаченной.

Небольшой совет по коду вида:

df = df[(df['area'] <= MAX_AREA) & (df['area'] >= MIN_AREA)]

Можно переписать через метод query, будет не только проще выглядеть, но и быстрее работать.

Будет проще, согласен:

df = df.query(" area <= MAX_AREA & area >= MIN_AREA ")

Но вот по скорости - то же самое или "на единицы" процентов хуже. Немного ускорить выборку может использование numpy-методов, но обычно такие запросы до неск. млн. строк выполняются "мгновенно".

Для обычных аналитиков сложились три простых пути ускорения запросов в pandas:

1) использовать np.where и др. numpy-методов (2X ускорение)

2) отсортировать и проиндексировать по искомым полям (5X ускорение)

3) добавить столбец, булевую фичу: df['in_area']= (df.area <= MAX_AREA) and df.area >= MIN_AREA) (4X ускорение).

C отдельным булевым столбцом с краткостью становится вообще здорово:
df[df.in_area] # 13 ms
df.query('in_area') # 16 ms

def objective(trial):
  ...
  predictions = model.predict(X_test)

Небольшой комментарий - делать подбор гиперпараметров прямо по тест-сету - это "неспортивно", т.к. приводит к завышению реальных метрик модели. Обычно делают подбор на отдельном валидационном сете, и уже потом проверяют лидера на тест сете.

Добрый день!

Спасибо за комментарий! В дальнейшем будем учитывать этот момент при подборе гиперпараметров для ML моделей.

Sign up to leave a comment.

Articles