Это гостевой пост Оливера Фроста, специалиста по данным в ImmoScout24, в сотрудничестве с Лукасом Мюллером, архитектором решений AWS.
В 2010 ИммоСкаут24 выпустил индекс цен на жилую недвижимость в Германии: IMX. Он был основан на списках ImmoScout24. Помимо цены, списки обычно содержат много конкретной информации, такой как год постройки, размер участка или количество комнат. Эта информация позволила нам построить так называемый гедонистический индекс цен, учитывающий особенности объекта недвижимости.
Когда мы выпускали IMX, нашей целью было сделать его стандартным индексом цен на недвижимость в Германии. Однако он изо всех сил пытался уловить рост цен на немецком рынке недвижимости после финансового кризиса 2008 года. Кроме того, как и индекс фондового рынка, это был абстрактный показатель, который нельзя интерпретировать напрямую. Поэтому IMX было трудно понять неспециалистам.
Наша миссия в ImmoScout24 состоит в том, чтобы упростить принятие сложных решений, и мы поняли, что для ее выполнения нам нужна новая концепция. Вместо другого индекса мы решили создать рыночный отчет, понятный каждому: WohnBarometer. Он основан на данных наших списков и учитывает свойства объекта. Ключевое отличие от IMX заключается в том, что WohnBarometer показывает цены аренды и продажи в евро за квадратный метр для конкретных типов жилой недвижимости с течением времени. Таким образом, цифры можно интерпретировать напрямую, и они позволяют нашим клиентам отвечать на такие вопросы, как «Плачу ли я слишком много арендной платы?» или «Есть ли квартира, которую я собираюсь купить, по разумной цене?» или «Какой город в моем регионе наиболее перспективен для инвестиций?» В настоящее время WohnBarometer сообщается по Германии в целом, семи крупнейшим городам и чередующимся местным рынкам.
На следующем графике показан пример WohnBarometer с продажными ценами для Берлина и развитием за квартал.
В этом посте обсуждается, как ImmoScout24 использовал Создатель мудреца Амазонки создать модель для WohnBarometer, чтобы сделать ее актуальной для наших клиентов. В нем обсуждается базовая модель данных, настройка гиперпараметров и техническая настройка. В этом посте также показано, как SageMaker помог одному специалисту по данным завершить WohnBarometer в течение 2 месяцев. Целой команде потребовалось 2 года, чтобы разработать первую версию IMX. Такие инвестиции не подходили для WohnBarometer.
О ImmoScout24
ImmoScout24 — ведущая онлайн-платформа по жилой и коммерческой недвижимости в Германии. Уже более 20 лет ImmoScout24 совершает революцию на рынке недвижимости и ежемесячно поддерживает более 20 миллионов пользователей на своем онлайн-рынке или в своем приложении, чтобы найти новые дома или коммерческие помещения. Вот почему 99% нашей целевой группы клиентов знают ImmoScout24. Благодаря своим цифровым решениям онлайн-рынок успешно координирует и объединяет владельцев, риелторов, арендаторов и покупателей. ImmoScout24 работает над оцифровкой процесса сделок с недвижимостью и тем самым упрощает принятие сложных решений. С 2012 года ImmoScout24 также активно работает на австрийском рынке недвижимости, ежемесячно охватывая около 3 миллионов пользователей.
От локальной среды к AWS Data Pipeline и SageMaker
В этом разделе мы обсудим предыдущую настройку и связанные с ней проблемы, а также почему мы решили использовать SageMaker для нашей новой модели.
Предыдущая установка
Когда в 2010 году была опубликована первая версия IMX, облако все еще оставалось загадкой для большинства компаний, включая ImmoScout24. Область машинного обучения (ML) находилась в зачаточном состоянии, и только горстка экспертов знала, как кодировать модель (для иллюстрации, первый публичный релиз Scikit-Learn вышел в феврале 2010 года). Неудивительно, что разработка IMX заняла более 2 лет и стоила семизначную сумму.
В 2015 году ImmoScout24 начала миграцию на AWS и перестроила IMX в инфраструктуре AWS. С данными в нашем Простой сервис хранения Amazon (Amazon S3), и предварительная обработка данных, и обучение модели теперь выполнялись на Амазонка ЭМИ кластеры, организованные Конвейер данных AWS. В то время как первое было приложением PySpark ETL, второе представляло собой несколько сценариев Python, использующих классические пакеты машинного обучения (такие как Scikit-Learn).
Проблемы с этой настройкой
Хотя эта установка оказалась достаточно стабильной, устранение неполадок в инфраструктуре или улучшение модели было непростым делом. Ключевой проблемой модели была ее сложность, поскольку некоторые компоненты начали свою жизнь сами по себе: в итоге код обнаружения выбросов был почти в два раза длиннее кода самой базовой модели IMX.
Базовой моделью, по сути, была не одна модель, а сотни: по одной модели на тип жилой недвижимости и регион, причем определение варьировалось от одного микрорайона в большом городе до нескольких деревень в сельской местности. У нас была, например, одна модель для продажи квартир в центре Берлина и одна модель для продажи домов в пригороде Мюнхена. Поскольку настройка обучения всех этих моделей занимала много времени, мы пропустили настройку гиперпараметров, что, вероятно, привело к снижению производительности моделей.
Почему мы выбрали SageMaker
Учитывая эти проблемы и наше стремление получить отчет о рынке с практической пользой, нам пришлось выбирать между переписыванием больших частей существующего кода или началом с нуля. Как вы можете сделать вывод из этого поста, мы выбрали последнее. Но почему SageMaker?
Большая часть нашего времени, потраченного на IMX, ушла на устранение неполадок в инфраструктуре, а не на улучшение модели. В новом рыночном отчете мы хотели изменить ситуацию, сосредоточив внимание на статистических характеристиках модели. Мы также хотели иметь возможность быстро заменять отдельные компоненты модели, такие как оптимизация гиперпараметров. Что, если появится новый улучшенный алгоритм повышения (вспомните, как XGBoost вышел на сцену в 2014 году)? Конечно, мы хотим принять его одним из первых!
В SageMaker основные компоненты классического рабочего процесса машинного обучения — предварительная обработка, обучение, настройка гиперпараметров и вывод — аккуратно разделены на уровне API, а также на Консоль управления AWS. Изменить их по отдельности не сложно.
Новая модель
В этом разделе мы обсудим компоненты новой модели, включая ее входные данные, алгоритм, настройку гиперпараметров и техническую настройку.
Входные данные
WohnBarometer основан на скользящем окне списков ImmoScout5 жилой недвижимости, расположенной в Германии, за 24 лет. После того, как мы удалим выбросы и мошеннические списки, у нас останется около 4 миллионов списков, которые разделены на поезд (60 %), проверку (20 %) и тестовые данные (20 %). Соотношение между списками и объектами не обязательно 1:1; в течение 5 лет вполне вероятно, что один и тот же объект будет вставлен несколько раз (несколько человек).
Мы используем 13 атрибутов листинга, таких как местоположение объекта (координаты WGS84), тип недвижимости (дом или квартира, продажа или аренда), ее возраст (годы), размер (квадратные метры) или ее состояние (например, , новый или отремонтированный). Учитывая, что каждый листинг обычно содержит десятки атрибутов, возникает вопрос: что включить в модель? С одной стороны, мы использовали знание предметной области; например, хорошо известно, что местоположение является ключевым фактором, и почти на всех рынках новая недвижимость стоит дороже, чем существующая. С другой стороны, мы полагались на свой опыт работы с IMX и аналогичными моделями. Там мы узнали, что включение десятков атрибутов существенно не улучшает модель.
В зависимости от типа недвижимости в листинге целевой переменной нашей модели является либо арендная плата за квадратный метр, либо цена продажи за квадратный метр (позже мы объясним, почему этот выбор не был идеальным). Таким образом, в отличие от IMX, WohnBarometer представляет собой число, которое наши клиенты могут напрямую интерпретировать и использовать в своих действиях.
Описание модели
При использовании SageMaker вы можете выбирать между различными стратегиями реализации вашего алгоритма:
- Используйте один из встроенных алгоритмов SageMaker. Их почти 20, и они охватывают все основные типы проблем машинного обучения.
- Настройте готовый образ Docker на основе стандартной платформы машинного обучения (например, Scikit-Learn или PyTorch).
- Создайте свой собственный алгоритм и разверните его как образ Docker.
Для WohnBarometer нам нужно было простое в обслуживании решение, позволяющее нам сосредоточиться на улучшении самой модели, а не базовой инфраструктуры. Поэтому мы остановились на первом варианте: использовать полностью управляемый алгоритм с соответствующей документацией и быстрой поддержкой, если это необходимо. Далее нам нужно было выбрать сам алгоритм. Опять же, решение было несложным: мы выбрали алгоритм XGBoost, потому что это один из самых известных алгоритмов машинного обучения для задач типа регрессии, и мы уже успешно использовали его в нескольких проектах.
Настройка гиперпараметра
Большинство алгоритмов машинного обучения имеют множество параметров для настройки. Алгоритмы бустинга, например, имеют множество параметров, определяющих, как именно строятся деревья: имеют ли деревья максимум 20 или 30 листьев? Каждое дерево основано на всех строках и столбцах или только на образцах? Насколько сильно обрезать деревья? Поиск оптимальных значений этих параметров (измеряемых выбранной вами оценочной метрикой), так называемая настройка гиперпараметров, имеет решающее значение для построения мощной модели машинного обучения.
Ключевой вопрос при настройке гиперпараметров — какие параметры настраивать и как устанавливать диапазоны поиска. Вы спросите, а почему бы не проверить все возможные комбинации? Хотя в теории это звучит как хорошая идея, это приведет к огромному пространству гиперпараметров со слишком большим количеством точек, чтобы оценить их все по разумной цене. Вот почему специалисты по машинному обучению обычно выбирают небольшое количество гиперпараметров, которые, как известно, сильно влияют на производительность выбранного алгоритма.
После того, как пространство гиперпараметров определено, следующая задача — найти в нем наилучшее сочетание значений. Обычно используются следующие техники:
- Поиск по сетке – Разделите пространство на дискретную сетку, а затем оцените все точки в сетке с перекрестной проверкой.
- Случайный поиск - Случайным образом рисуйте комбинации из космоса. При таком подходе вы, скорее всего, упустите лучшую комбинацию, но она служит хорошим эталоном.
- Байесовская оптимизация – Построить вероятностную модель целевой функции и использовать эту модель для генерации новых комбинаций. Модель обновляется после каждой комбинации, что быстро приводит к хорошим результатам.
В последние годы, благодаря дешевой вычислительной мощности, байесовская оптимизация стала золотым стандартом в настройке гиперпараметров и является настройкой по умолчанию в SageMaker.
Техническая настройка
Как и во многих других сервисах AWS, вы можете создавать задания SageMaker на консоли с помощью Интерфейс командной строки AWS (AWS CLI) или через код. Мы выбрали третий вариант, SageMaker Python SDK, если быть точным, потому что он обеспечивает высокоавтоматизированную настройку: WohnBarometer находится в программном проекте Python, который является исполняемым из командной строки. Например, все этапы конвейера машинного обучения, такие как предварительная обработка или обучение модели, могут быть запущены с помощью команд Bash. Эти команды Bash, в свою очередь, управляются конвейером Jenkins на базе АМС Фаргейт.
Давайте посмотрим на шаги и базовую инфраструктуру:
- предварительная обработка – Предварительная обработка выполняется с помощью встроенной библиотеки Scikit-Learn в SageMaker. Поскольку это включает в себя объединение фреймов данных с миллионами строк, нам здесь нужна машина ml.m5.24xlarge, самая большая, которую вы можете получить в семействе ml.m. В качестве альтернативы мы могли бы использовать несколько небольших машин с распределенной средой, такой как Dask, но мы хотели сделать ее как можно более простой.
- Обучение – Мы используем алгоритм SageMaker XGBoost по умолчанию. Обучение проводится на двух машинах мл.м5.12хкрупных. Стоит отметить, что наш train.py, содержащий код обучения модели и настройки гиперпараметров, имеет менее 100 строк.
- Настройка гиперпараметра — Следуя принципу «меньше да лучше», мы настраиваем только 11 гиперпараметров (например, количество раундов бустинга и скорость обучения), что дает нам время тщательно выбрать их диапазоны и проверить, как они взаимодействуют друг с другом. Имея всего несколько гиперпараметров, каждое задание обучения выполняется относительно быстро; в нашем случае работа занимает от 10 до 20 минут. При максимальном количестве 30 учебных заданий и 2 одновременных заданиях общее время обучения составляет около 3 часов.
- вывод – SageMaker предлагает несколько вариантов обслуживания вашей модели. Мы используем задания пакетного преобразования, потому что нам нужны числа WohnBarometer только один раз в квартал. Мы не использовали конечную точку, потому что большую часть времени она простаивала. Каждое пакетное задание (примерно 6.8 млн строк) обслуживается одной машиной ml.m5.4xlarge менее чем за 10 минут.
Мы можем легко отладить эти шаги на консоли SageMaker. Если, например, задание по обучению занимает больше времени, чем ожидалось, мы переходим к Обучение страницу, найдите нужное задание по обучению и просмотрите Amazon CloudWatch метрики базовых машин.
На следующей архитектурной диаграмме показана инфраструктура WohnBarometer:
Проблемы и уроки
Поначалу все шло гладко: за несколько дней мы настроили программный проект и обучили миниатюрную версию нашей модели в SageMaker. Мы возлагали большие надежды на первый запуск полного набора данных и настройку гиперпараметров. К сожалению, результаты не порадовали. У нас были следующие основные проблемы:
- Прогнозы модели оказались заниженными, как для объектов аренды, так и для продажи. Для Берлина, например, цены продажи, предсказанные для наших эталонных объектов, были примерно на 50% ниже рыночных цен.
- Согласно модели, не было существенной разницы в цене между новыми и существующими зданиями. Правда в том, что новостройки почти всегда значительно дороже существующих.
- Влияние местоположения на цену было зафиксировано неправильно. Мы знаем, например, что квартиры во Франкфурте-на-Майне в среднем дороже, чем в Берлине (хотя Берлин догоняет); наша модель, однако, предсказывала обратное.
В чем была проблема и как мы ее решили?
Выборка функций
На первый взгляд кажется, что проблемы не связаны, но это действительно так. По умолчанию XGBoost строит каждое дерево со случайной выборкой функций. Допустим, модель имеет 10 функций F1Ж2,… F10, то алгоритм может использовать F1Ж4и F7 для одного дерева и F3Ж4и F8 для другого. Хотя в целом такое поведение эффективно предотвращает переобучение, оно может быть проблематичным, если количество признаков невелико и некоторые из них оказывают большое влияние на целевую переменную. В этом случае многие деревья будут упускать важные черты.
Выборка XGBoost из наших 13 функций привела к множеству деревьев, не включающих ни одну из важнейших характеристик — тип недвижимости, местоположение, новые или существующие здания — и, как следствие, вызвала эти проблемы. К счастью, есть параметр для управления выборкой: colsample_bytree
(на самом деле есть еще два параметра для управления сэмплированием, но мы их не трогали). Когда мы проверили наш код, мы увидели, что colsample_bytree
было установлено значение 0.5, значение, которое мы перенесли из прошлых проектов. Как только мы установили значение по умолчанию 1, предыдущие проблемы исчезли.
Одна модель против нескольких моделей
В отличие от IMX, модель WohnBarometer на самом деле является единственной моделью. Хотя это сводит к минимуму усилия по обслуживанию, это не идеально со статистической точки зрения. Поскольку наши обучающие данные содержат как объекты продажи, так и объекты аренды, разброс целевой переменной огромен: он колеблется от менее 5 евро для некоторых арендных квартир до значительно выше 10,000 5 евро для домов, выставленных на продажу в первоклассных районах. Большой вызов для модели — понять, что ошибка в XNUMX евро — это фантастика для объектов продажи, но катастрофа для объектов аренды.
Оглядываясь назад, зная, как легко поддерживать несколько моделей в SageMaker, мы бы построили как минимум две модели: одну для аренды и одну для продажи объектов. Это облегчило бы учет особенностей обоих рынков. Например, цена не сдаваемых в аренду квартир на продажу обычно на 20–30 % выше, чем стоимость арендованных квартир для продажи. Следовательно, кодирование этой информации как фиктивной переменной в модели продаж имеет большой смысл; с другой стороны, для модели аренды вы можете не указывать ее.
Заключение
Достиг ли WohnBarometer своей актуальности для наших клиентов? Принимая во внимание освещение в СМИ, ответ будет однозначно да: по состоянию на ноябрь 2021 года было опубликовано более 700 газетных статей и теле- или радиорепортажей о WohnBarometer. В список входят национальные газеты, такие как Frankfurter Allgemeine Zeitung, Tagesspiegel и Handelsblatt, а также местные газеты, которые часто запрашивают данные WohnBarometer по своему региону. Поскольку мы в любом случае рассчитываем цифры для всех регионов Германии, мы с радостью принимаем такие запросы. Со старым IMX такой уровень детализации был невозможен.
WohnBarometer превосходит IMX в отношении статической производительности, в частности, когда речь идет о затратах: IMX был сгенерирован кластером EMR с 10 узлами задач, работающими почти полдня. Напротив, все шаги WohnBarometer занимают менее 5 часов с использованием машин среднего размера. Это приводит к экономии почти 75%.
Благодаря SageMaker мы смогли запустить сложную модель машинного обучения с помощью одного специалиста по данным менее чем за 2 месяца. Это замечательно. 10 лет назад, когда ImmoScout24 построила IMX, для достижения того же рубежа потребовалось более 2 лет, и в нем участвовала целая команда.
Как мы могли быть такими эффективными? SageMaker позволил нам сосредоточиться на модели, а не на инфраструктуре, а SageMaker продвигает микросервисную архитектуру, которую легко поддерживать. Если бы мы с чем-то застряли, мы могли бы обратиться в службу поддержки AWS. В прошлом, когда один из наших конвейеров данных IMX выходил из строя, мы иногда тратили дни на его отладку. С тех пор как мы начали публиковать данные WohnBarometer в апреле 2021 года, инфраструктура SageMaker ни разу не вышла из строя.
Чтобы узнать больше о WohnBarometer, посетите ВонБарометр и WohnBarometer: Angebotsmieten stiegen 2021 Bundesweit wieder stärker an. Чтобы узнать больше об использовании библиотеки SageMaker Scikit-Learn для предварительной обработки, см. Предварительно обработайте входные данные, прежде чем делать прогнозы, используя конвейеры логического вывода Amazon SageMaker и Scikit-learn.. Пожалуйста, отправьте нам отзыв либо на Форум AWS для Amazon SageMaker, или через контакты службы поддержки AWS.
Содержание и мнения в этом сообщении принадлежат стороннему автору, и AWS не несет ответственности за содержание или точность этого сообщения.
Об авторах
Оливер Фрост присоединился к ImmoScout24 в 2017 году в качестве бизнес-аналитика. Два года спустя он стал специалистом по данным в команде, чья работа заключалась в том, чтобы превратить данные ImmoScout24 в настоящие информационные продукты. Перед созданием модели WohnBarometer он руководил небольшими проектами SageMaker. Оливер имеет несколько сертификатов AWS, в том числе по специальности «Машинное обучение».
Лукас Мюллер является архитектором решений в AWS. Он работает с клиентами в индустрии спорта, СМИ и развлечений. Он всегда ищет способы сочетать технические возможности с культурными и организационными возможностями, чтобы помочь клиентам достичь ценности бизнеса с помощью облачных технологий.
- Коинсмарт. Лучшая в Европе биржа биткойнов и криптовалют.
- Платоблокчейн. Интеллект метавселенной Web3. Расширение знаний. БЕСПЛАТНЫЙ ДОСТУП.
- КриптоХок. Альткоин Радар. Бесплатная пробная версия.
- Источник: https://aws.amazon.com/blogs/machine-learning/predict-residential-real-estate-prices-at-immoscout24-with-amazon-sagemaker/
- "
- 000
- 100
- 11
- 20 лет
- 2021
- О нас
- Учетная запись
- активный
- алгоритм
- алгоритмы
- Все
- уже
- Несмотря на то, что
- Amazon
- аналитик
- Другой
- API
- приложение
- Применение
- подхода
- апрель
- архитектура
- около
- статьи
- Автоматизированный
- в среднем
- AWS
- становиться
- начало
- не являетесь
- эталонный тест
- Преимущества
- ЛУЧШЕЕ
- Крупнейшая
- стимулирование
- строить
- Строительство
- строит
- встроенный
- бизнес
- бизнес
- купить
- призывают
- Может получить
- вызванный
- сертификаты
- вызов
- проблемы
- Город
- Город
- облако
- код
- сочетание
- комбинации
- коммерческая
- комплекс
- Вычисление
- сама концепция
- состояние
- считает
- Консоли
- строительство
- содержит
- содержание
- контроль
- Основные
- Расходы
- может
- кризис
- решающее значение
- Клиенты
- данным
- ученый данных
- день
- развертывание
- обнаружение
- развивать
- Развитие
- DID
- различный
- Интернет
- обсуждать
- распределенный
- Docker
- не
- домен
- легко
- эффект
- эффективный
- Конечная точка
- огромный
- Развлечения
- установить
- имущество
- Евро
- все члены
- многое
- пример
- ожидаемый
- Впечатления
- эксперты
- семья
- БЫСТРО
- Особенности
- Обратная связь
- фигура
- финансовый
- финансовый кризис
- Во-первых,
- Трансформируемость
- Фокус
- после
- Рамки
- Выполнять
- полный
- функция
- Общие
- порождать
- Germany
- взгляд
- цель
- Золото
- хорошо
- сетка
- группы
- GUEST
- Guest Post
- счастливый
- имеющий
- помощь
- здесь
- High
- очень
- имеет
- Вилла / Бунгало
- дома
- Как
- How To
- HTTPS
- огромный
- Сотни
- идея
- изображение
- Влияние
- улучшать
- включают
- В том числе
- Увеличение
- индекс
- individual
- промышленности
- информация
- Инфраструктура
- инвестирование
- инвестиций
- вовлеченный
- вопросы
- IT
- работа
- Джобс
- присоединился
- Основные
- знания
- известный
- большой
- ведущий
- УЧИТЬСЯ
- узнали
- изучение
- привело
- уровень
- Библиотека
- линия
- Список
- листинг
- Объявления
- локальным
- расположение
- места
- Длинное
- искать
- машина
- обучение с помощью машины
- Продукция
- основной
- Создание
- управление
- рынок
- Отчет о рынке
- рынка
- Области применения:
- Медиа
- Метрика
- миллиона
- миллионы
- Наша миссия
- ML
- модель
- Модели
- месяцев
- самых
- национальный
- Новый рынок
- Газеты
- узлы
- номера
- Предложения
- онлайн
- онлайн торговая площадка
- Мнения
- оптимизация
- Опция
- Опции
- заказ
- Другое
- Владельцы
- Партнерство
- ОПЛАТИТЬ
- Люди
- производительность
- Платформа
- Точка зрения
- возможное
- мощностью
- мощный
- Predictions
- цена
- Проблема
- проблемам
- процесс
- Производство
- Продукция
- Проект
- проектов
- многообещающий
- собственность
- что такое варган?
- Издательство
- Четверть
- вопрос
- быстро
- Радио
- недвижимость
- разумный
- отношения
- освободить
- Знаменитый
- Аренда
- отчету
- Отчеты
- ответственный
- Итоги
- обзоре
- Комнаты
- год
- туры
- Run
- Бег
- Сельский
- Сельские районы
- sale
- Ученый
- SDK
- Поиск
- смысл
- Услуги
- набор
- установка
- значительный
- аналогичный
- просто
- Размер
- небольшой
- So
- Software
- Решения
- РЕШАТЬ
- удалось
- Space
- пространства
- тратить
- раскол
- Спорт
- распространение
- площадь
- Этап
- и политические лидеры
- статистический
- акции
- фондовый рынок
- диск
- стратегий
- сильный
- Успешно
- топ
- поддержка
- Поддержанный
- Поддержка
- сюрприз
- цель
- команда
- Технический
- снижения вреда
- технологии
- тестXNUMX
- сторонние
- Через
- время
- вместе
- трогать
- Обучение
- Сделки
- Transform
- tv
- понимать
- us
- использование
- пользователей
- ценностное
- Вид
- Что
- в
- работает
- работает
- стоимость
- год
- лет