1. Введение: бизнес-задача

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

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

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

2. Данные

Сначала у меня ушло несколько часов на то, чтобы построить быстрый черновой вариант модели: используя только данные, которые я собрал с какого-то веб-сайта риелтора, используя метод парсинга, а затем использовал API Foursquare для объединения каждой записи о доме с данными о местах проведения. Однако точность исполнения выглядит не очень.

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

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

Обратите внимание, что есть два способа получить информацию о широте и долготе: я пробовал использовать Google API и веб-скраппинг, оба работали.

В конце концов, вот ключевые наборы данных, которые я использовал:

Набор данных Рейтинг школ — получен с веб-сайта Института Фрейзера с помощью методов веб-скрейпинга.

  • Название школ
  • Города школ, расположенных
  • 2017–18 Рейтинг начальных школ
  • Почтовые индексы школ
  • Адреса школ

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

  • Адреса домов
  • Количество спален в каждом доме
  • Количество санузлов в каждом доме
  • Почтовые индексы домов
  • Широты
  • Долготы
  • Имена соседства
  • Тип резиденции: Дом/Таунхаус/Кондо
  • Листинговые цены
  • Приблизительные размеры

Данные о площадках Набор данных — получен через Foursquare API

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

Извлечь данные:

Преобразование данных:

Получите данные о площадках через Foursquare:

Сгруппируйте все данные в один набор данных:

3. Методология

В этом проекте мы будем использовать методы регрессии для прогнозирования цен на жилье в разных зонах. Так как примеров всего 700, а признаков 329. Вот методологии, которые проходят:

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

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

На третьем этапе я хотел бы использовать метод кластеризации K-средних и создать карту области GTA, чтобы изучить базовое распределение кластеров зон.

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

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

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

Создайте корреляционную матрицу:

Удалите выбросы:

Исследуйте распределение кластеров по разным зонам:

4. Анализ данных и визуализация

Используйте seaborn для построения тепловой карты:

Матрица рассеяния графика:

Используйте метод binning и matplotlib для построения гистограмм.

5. Моделирование

Создание наборов данных для обучения/тестирования и кадра данных для записи производительности

Создайте функцию прогнозирования и построения графика для различных методов машинного обучения

Алгоритм случайного леса

Используйте метод GridSearch для случайного леса, чтобы определить лучшие гиперпараметры.

Используйте функцию try_ Different_method для построения графика предсказания

Диаграмма важности объектов на графике

Алгоритм дерева решений

Используйте Graphviz Создайте график дерева решений

Алгоритм регрессора XGBoost

Алгоритм KNN

Стандартная обработка:

Используйте Keras для развертывания нейронных сетей

Создайте модель NN:

Скомпилируйте модель NN и найдите производительность как для обучающего набора, так и для проверочного набора каждой эпохи:

6. Результаты и обсуждение

Основываясь на производительности R2 и MSE различных методов, мы можем сказать, что Random Forest и XGBoost — лучший выбор для нашего случая и набора данных, хотя оценка ограничена из-за отсутствие точного размера, года постройки и других важных характеристик.

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

7. Заключение

Целью этого проекта было использование метода парсинга веб-страниц и API для сбора связанных данных GTA, включая жилье, школу, Венеру. Затем используйте метод ETL, чтобы получить чистую версию для анализа/визуализации, в конечном итоге разверните различные методы машинного обучения, используя как Skitlearn, так и Keras.

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