Построение модели с помощью Python

Авторы: Лоуренс Чу, Лаура Э. Шуммон Маасс, Мандо Иванага

«Прежде всего, покажите данные». - Эдвард Р. Туфте

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

Выбор функций - это концепция, которая используется на ранних этапах всех упомянутых процессов Data Science. Процесс включает в себя выбор функций, которые наиболее соответствуют зависимой переменной (переменной, которую вы пытаетесь предсказать). Это очень важно, потому что это может сильно повлиять на прогнозы модели, как в хорошем, так и в плохом смысле. Выбор данных, не относящихся к вашей зависимой переменной, может снизить точность ваших прогнозов. Как узнать, какие функции выбрать? В качестве примера я буду использовать групповой проект, над которым работали мои коллеги (Лоуренс Чу и Лора Маасс). Целью этого проекта было точное прогнозирование цен на жилье на основе набора данных о продажах домов в округе Кинг.

Помните, что перед выбором функции вы должны:

  1. Иметь понимание области бизнеса (финансы, продажи, недвижимость и т. Д.), А также понимание целей заинтересованных сторон и участвующих компаний / компаний.
  2. Выберите бизнес-проблему и определите ключевую переменную для прогноза
  3. Установите источник данных и какие данные полезны

Переменные и описания

  • id - уникальный идентификатор дома
  • date - дата продажи дома
  • price - цена является целью прогноза
  • спальни - количество спален / дом
  • ванные комнаты - количество ванных комнат / спален.
  • sqft_livingsquare - кадры из дома
  • sqft_lotsquare - метраж участка
  • этажи - всего этажей (уровней) в доме
  • набережная - Дом с видом на набережную
  • view - просмотрено
  • condition - Насколько хорошее состояние (в целом)
  • оценка - общая оценка жилищной единице, основанная на системе оценок округа Кинг.
  • sqft_above - квадратные метры дома без подвала
  • sqft_basement - квадратный метр подвала
  • yr_built - Год постройки
  • yr_renovated - Год ремонта дома
  • zipcode - почтовый индекс
  • lat - Координата широты
  • long - Координата долготы
  • sqft_living15 - Площадь жилой площади внутри жилья для ближайших 15 соседей.
  • sqft_lot15 - Площадь земельных участков ближайших 15 соседей
  • Сиэтл Почтовый индекс - Почтовые индексы в Сиэтле
  • месяц - месяц от числа
  • year - год от даты
  • house age - возраст дома
  • sqft_living_relative15 - квадратный метр дома относительно ближайших 15 домов
  • sqft_lot_relative15 - площадь лота в квадратных футах относительно ближайших 15 лотов

Корреляционная матрица с тепловой картой

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

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

Нормализовать данные

Нормализуем данные кроме даты.

Графики совместных графиков линейной регрессии

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

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

Создать линейную модель

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

Перекрестная проверка K-сгибов

Метод перекрестной проверки, при котором мы разбиваем набор образцов на «K» групп. В нашем примере мы использовали K = 20 итераций.

Построил график итераций каждой модели для сравнения.

Мы решили сравнить следующие переменные с нашей целевой переменной.

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

В этом посте мы обсудили выбор функций и их важность для построения вашей модели.