Бостон, Массачусетс — город с богатой историей, выдающимися университетами, успешными спортивными командами и аппетитной едой! Когда дело доходит до ужина в этом городе, здесь нет недостатка в удивительных вариантах. Однако не все рестораны одинаковы. Если вы похожи на большинство людей, вы обратитесь к Yelp за рекомендациями. Yelp – популярный веб-сайт с обзорами, содержащий ценные данные, влияющие на выбор ресторана. Когда дело доходит до выбора, нам интересно, что скажут другие. Чем больше консенсуса, тем больше вероятность, что мы обратим на это внимание. Неудивительно, что пищевая промышленность внимательно следит за отзывами клиентов. Итак, возникает вопрос: Какие факторы выделяют некоторые бостонские рестораны с точки зрения рейтингов и обзоров на Yelp?

Yelp Fusion

Для этого проекта я использовал Fusion API Yelp, который позволяет вам получать лучший местный контент и отзывы пользователей от миллионов компаний по всему миру. У вас есть возможность искать предприятия по ключевому слову, категории, местоположению, уровню цен и номеру телефона. Получайте подробные бизнес-данные, такие как имя, адрес, номер телефона, фотографии, рейтинг Yelp, уровни цен и часы работы.[Источник: Документация Yelp Fusion API]

Однако есть несколько важных ограничений:

  • Дневной лимит: мне было разрешено совершать до 500 вызовов API в день.
  • Срок службы данных: я не мог хранить данные более 24 часов.
  • Обмен данными: я мог делиться только совокупными данными, а не отдельными деталями бизнеса.
  • Некоммерческое использование: я не могу использовать эти данные в коммерческих целях.
  • Ограничения поиска: при поиске компаний API возвращает до 50 одновременно и не гарантирует точного совпадения. Однако, отрегулировав смещение, я получил доступ к 1000 предприятиям на каждый почтовый индекс.

Условия использования API смотрите здесь.

Эти ограничения усложнили мой проект, но не помешали мне максимально эффективно использовать этот ресурс!

Сбор данных

Чтобы собрать полный набор данных о ресторанах в окрестностях Бостона, я использовал конечную точку бизнес-поиска Yelp. Эта конечная точка предоставляет предлагаемые предприятия на основе различных входных данных. Учитывая широкий спектр доступных критериев поиска, моей основной целью было обеспечить репрезентативную выборку, охватывающую все районы Бостона.

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

Стоит отметить, что этот подход, хотя и эффективен, не безупречен. Результаты поиска API иногда содержали дубликаты. Тем не менее, благодаря этим усилиям по сбору данных мне удалось получить из API в общей сложности 1714 уникальных ресторанов.

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

Разработка функций

Ниже приведен пример ответа API отправителю запроса, использующему конечную точку бизнес-поиска при поиске delis:

{
  "total": 1316,
  "businesses": [
    {
      "rating": 4.5,
      "price": "$$",
      "phone": "+14154212337",
      "id": "molinari-delicatessen-san-francisco",
      "categories": [
        {
          "alias": "delis",
          "title": "Delis"
        }
      ],
      "review_count": 910,
      "name": "Molinari Delicatessen",
      "url": "https://www.yelp.com/biz/molinari-delicatessen-san-francisco",
      "coordinates": {
        "latitude": 37.7983818054199,
        "longitude": -122.407821655273
      },
      "image_url": "http://s3-media4.fl.yelpcdn.com/bphoto/6He-NlZrAv2mDV-yg6jW3g/o.jpg",
      "location": {
        "city": "San Francisco",
        "country": "US",
        "address2": "",
        "address3": "",
        "state": "CA",
        "address1": "373 Columbus Ave",
        "zip_code": "94133"
      }
    },
    // ...
  ]
}

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

1. Местоположение района: я назначил район района на основе почтового индекса, которому он принадлежит. Это позволяет нам изучить географическое распределение ресторанов по Бостону.

2. Кодирование цен: был закодирован столбец цен, представляющий уровень цен каждого ресторана. Это преобразование облегчает сравнение и понимание ценообразования.

3. Функции присутствия. Я представил несколько двоичных функций, в том числе:

  • has_image: указывает, есть ли у ресторана хотя бы одно изображение на странице Yelp.
  • has_phone: Отображает, есть ли у ресторана номер телефона на странице Yelp.
  • has_st_add: сообщает, указан ли адрес ресторана на странице Yelp.

Эти функции помогают нам понять полноту бизнес-профилей.

4. Кодирование кухни. Чтобы отразить разнообразие кухонь в наборе данных, я создал закодированные столбцы для каждого присутствующего тега кухни (псевдонима). Это позволяет нам проанализировать популярность различных кухонь в Бостоне.

5. Сбалансированный рейтинговый показатель (BRS). Использование только рейтингов в качестве меры успеха может ввести в заблуждение. Чтобы решить эту проблему, я представил BRS. Это объясняет проблему предпочтения ресторанов с небольшим количеством высоких рейтингов над ресторанами с большим количеством немного более низких рейтингов. BRS рассчитывается путем нормализации и взвешивания столбцов рейтинга и количества отзывов, что обеспечивает более точную оценку успеха. Возможный диапазон — от 0 до 1, где 1 — лучший вариант. Этот показатель служит нашей целевой переменной для анализа важности функций.

Исследовательский анализ данных

Имея набор данных на руках, давайте исследуем.

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

Большинство ресторанов в наборе данных попадают в умеренный ценовой диапазон или ниже. Значительная часть не имеет указанной ценовой категории. Это отсутствие не обязательно означает доступность; скорее, это предполагает, что их страница Yelp может не содержать информации о ценах. Многие рестораны быстрого питания и небольшие рестораны, естественно, соответствуют более низкому ценовому диапазону, предлагая быстрые и недорогие варианты питания. И наоборот, высококлассные заведения и заведения для гурманов часто требуют более существенных инвестиций, оправданных более высоким уровнем гастрономических впечатлений и кулинарным мастерством.

Подавляющее большинство из них могут похвастаться несколькими ключевыми атрибутами на своих страницах Yelp. Эти атрибуты включают полный почтовый адрес, хотя бы одно изображение, номер телефона, а также варианты услуг доставки и самовывоза. В совокупности эти элементы способствуют созданию всеобъемлющего и удобного для пользователя профиля. Удивительно, но возникает одно исключение: относительно небольшое количество ресторанов в наборе данных имеют варианты бронирования, указанные на их страницах Yelp. Вполне вероятно, что некоторые рестораны могут не знать о возможности включать информацию о бронировании на свои бизнес-страницы, что подчеркивает важность упреждающего управления онлайн-профилями. Альтернативно, отсутствие списков резерваций может отражать конкретный состав нашего набора данных. Некоторые типы ресторанов, естественно, могут уделять меньше внимания бронированию, согласуясь с различными кулинарными стилями или гастрономическими впечатлениями.

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

Теперь давайте обратим внимание на рассчитанный BRS и рассмотрим его распределение по ресторанам в нашем наборе данных.

Распределение BRS демонстрирует интересную закономерность: оно имеет небольшой перекос влево. Это приводит к снижению среднего значения BRS, что делает его несколько менее репрезентативным для данных. Напротив, медиана остается неизменной, что делает ее более надежной мерой для описания центрального значения нашего набора данных.

Примечательно, что большинство ресторанов в нашем наборе данных попадают в диапазон BRS от 0,5 до 0,8, что указывает на в целом положительные рейтинги и количество отзывов. Такая концентрация оценок в более высоком диапазоне положительно отражается на общем выборе ресторанов в Бостоне, предполагая, что многие заведения пользуются положительными отзывами и поддержкой со стороны клиентов.

Теперь, когда у нас есть понимание распределения BRS по всем ресторанам, давайте увеличим масштаб и рассмотрим, как каждый район работает с точки зрения этого важного показателя.

Становится очевидным, что некоторые районы Бостона демонстрируют отличительные особенности, когда дело касается BRS. Примечательно, что Норт-Энд и Олстон выделяются самыми высокими средними баллами сбалансированного рейтинга. Напротив, Дорчестер и Маттапан демонстрируют сравнительно более низкие средние значения BRS.

Начинающим рестораторам, присматривающимся к ресторанам Бостона, важно осознавать значительное влияние, которое район может оказать на рейтинг и успех ресторана Yelp. Эти совокупные значения подчеркивают важность местоположения, хотя в каждом районе расположено множество успешных предприятий. Вариации медианного BRS подчеркивают основные факторы, которые способствуют уникальным характеристикам каждого района.

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

Важность функции:

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

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

Случайный лесной регрессор

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

Регрессор случайного леса дал многообещающие результаты со среднеквадратичной ошибкой (MSE) 0,0143 и значением R-квадрата 0,3479. Хотя модель демонстрирует низкую ошибку в прогнозировании BRS, она объясняет только 34,79% дисперсии BRS. Учитывая сложность факторов и ограниченный набор данных, такой уровень объяснения является разумным. Человеческое поведение и опыт многогранны, и их сложно точно предсказать. Тем не менее, эта модель дает ценную информацию.

Регрессор XGBoost

Аналогичным образом я применил поиск по сетке и выбор функций к XGBoost Regressor. Сохранив лучшие функции, я точно настроил модель в соответствии с данными. XGBoost Regressor дал немного улучшенное значение MSE — 0,0146. Однако значение R-квадрата упало до 0,3351, что указывает на то, что эта модель объясняет меньшую долю дисперсии BRS по сравнению с регрессором случайного леса. По этой причине я выбрал значения важности признаков случайного леса.

Эти регрессионные модели предлагают объяснение факторов, влияющих на успех, измеряемых BRS. Хотя они, возможно, и не отражают всей картины, они обеспечивают основу для понимания ключевых детерминантов и предлагают разумный уровень предсказательной силы, учитывая присущую сложность человеческого поведения и динамики ресторана.

Анализ приведенных выше графиков показывает многочисленные прогнозы, которые превышают их фактические значения. Эти точки представляют предприятия с атрибутами, которые не соответствуют типичным закономерностям, наблюдаемым в наборе данных.

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

Основные выводы

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

Очевидно, что рестораны, принадлежащие к более высоким ценовым категориям, превышающим $, как правило, демонстрируют более высокий средний BRS по сравнению с их более бюджетными аналогами. Однако стоит отметить интересную аномалию: рестораны самого дорогого ценового диапазона не могут похвастаться самым высоким медианным BRS. Это наблюдение можно объяснить несколькими факторами. Одной из возможностей является ограниченный размер выборки дорогих ресторанов. Кроме того, заведения изысканной кухни и элитные рестораны могут обслуживать нишу рынка, что приводит к снижению количества отзывов из-за их относительной недоступности для более широких слоев населения.

Для лучшего понимания выбросы в распределениях отмечены ромбовидными индикаторами. Такое визуальное представление помогает идентифицировать предприятия с исключительно низким BRS в каждой ценовой категории.

Выделяется одна категория — «Без цены», которая демонстрирует самый большой диапазон. Это говорит о том, что рестораны, цены на которых не указаны на страницах Yelp, охватывают широкий спектр оценок BRS, что подчеркивает непредсказуемость этой категории.

Хотя важно признать наличие выбросов в категории «Нет», заметная разница заключается в медианах. Рестораны, которые указали на наличие хот-догов на своих страницах в Yelp, имеют значительно более низкий средний рейтинг по сравнению с их коллегами. Этот вывод говорит о том, что если вы подумываете об открытии бизнеса по продаже хот-догов в Бостоне, то у вас есть четкий посыл: стремитесь выделиться!

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

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

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

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

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

  1. Рестораны, специализирующиеся на итальянской кухне, морепродуктах, коктейлях, салатах, завтраках и бранчах, новой американской кухне или вине, как правило, получают более высокие баллы по BRS. И наоборот, заведения, специализирующиеся на пицце, куриных крылышках, китайской кухне, гамбургерах, традиционной американской кухне, сэндвичах или кофе, демонстрируют менее стабильные показатели в рейтингах BRS.
  2. Гибкость ценообразования: предложение цен в меню от умеренных ($$) до дорогих ($$$$) кажется выгодным для успеха.
  3. Визуальная привлекательность. Добавление изображений на страницу Yelp и создание привлекательного визуального повествования может положительно повлиять на рейтинги и привлечь посетителей.
  4. Удобные услуги: предоставление возможностей доставки и самовывоза повышает привлекательность ресторана, делая его более удобным для клиентов.
  5. Доступность. Добавление номера телефона на страницу Yelp может улучшить доступность и общение с потенциальными посетителями.
  6. Клиентоориентированный подход: хотя между определенными функциями и BRS существует корреляция, важно помнить, что корреляция не подразумевает причинно-следственную связь. В конечном счете, отдайте предпочтение качеству обслуживания клиентов и качеству еды, поскольку эти факторы остаются первостепенными в достижении успеха.

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

Вывод:

Используя API Yelp Fusion, мы получили ценную информацию о структуре ресторанного ландшафта Бостона. Наш анализ показывает, как конкретные характеристики бизнеса могут влиять на рейтинги ресторанов в городе. Районы оказывают заметное влияние на качество обеда, определенные кухни выделяются как фавориты, а наличие изображений и тегов на страницах Yelp оказывается неоценимым.

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

Дальнейшие действия:

Понятно, что для более глубокого понимания необходимы дополнительные исследования. Хотя конечная точка бизнес-поиска Yelp Fusion API предоставляет ценные данные, ей не хватает детальной информации о страницах Yelp. Ограничения API привели к тому, что некоторые районы были представлены недостаточно, а другие были перепредставлены. Ежедневные запросы данных приводили к различиям в полученных ресторанах, что приводило к несогласованности производительности модели.

Существуют два потенциальных варианта решения этой проблемы. Одним из них является парсинг веб-страниц. Стоит отметить, что Yelp запрещает это в своих Условиях обслуживания. Другой вариант — изучить Открытый набор данных Yelp, который содержит информацию о 150 346 предприятиях в Монреале, Калгари, Торонто, Питтсбурге, Шарлотте, Урбана-Шампейне, Фениксе, Лас-Вегасе, Мэдисоне и Кливленде.

Продолжая учиться и развивать свои навыки анализа данных, я приветствую любые предложения по улучшению или вопросы сообщества! Спасибо!

Ссылки:

Визг Фьюжн

Гитхаб

Склеарн

XGBoost