Анализ и прогнозирование цен на рынке недвижимости Москвы

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

Рубрика Программирование, компьютеры и кибернетика
Вид диссертация
Язык русский
Дата добавления 02.09.2018
Размер файла 5,7 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

С помощью библиотеки mаtplоtlib посмотрим насколько факторы коррелируют друг с другом на рисунке 15

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

Анализ наиболее коррелирующих с ценой квартиры факторов:

Рисунок 15 - Корреляция внутренних характеристик недвижимости.

Построим диаграмму распределения площади квартиры и цены за квартиру, график изображен на рисунке 16:

Рисунок 16 - Диаграмма распределения площади квартиры и цены за квартиру

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

В целом, тренд понятен: чем больше площадь, тем выше цена на квартиру.

Рассмотрим на рисунке 17 распределение между ценой на квартиру и ценой за квадратный метр:

Рисунок 17 - Диаграмма распределения между ценой на квартиру и ценой за квадратный метр

В целом, можем наблюдать тренд: чем выше цена за квадратный метр, тем выше цена квартиры.

Логично, что площадь жилой зоны не может быть площади полной зоны, поэтому найдем количество таких случаев:

Таких случаев 37, вероятно, это не повлияет на качество модели, но устраним такие случаи из выборки.

На рисунке 18 рассмотрим график распределения квартир по количеству комнат:

Рисунок 18 - Диаграмма распределения квартир по количеству комнат

Тип продажи.

В данной задачи существуют два вида продаж:

1) С целью инвестирования - клиент ожидает, что цена на этот объект недвижимости со времени возрастет

2) С целью личного пользования

Итак, разделим нашу выборку на две по типу продажи:

Год постройки.

На рисунке 19 рассмотрим сколько объектов в нашей выборки, распределенных по году постройки:

Рисунок 19 - Диаграмма распределения между годом постройки и количеством проданных квартир.

Наблюдается очевидное преобладание новостроек.

На рисунке 20 рассмотрим на графике зависимость временного ряда и цены на недвижимость:

Рисунок 20 - Диаграмма зависимости средней ценой на квартиру и годом постройки.

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

Дата продажи.

На рисунке 21 рассмотрим график объема продаж, сгруппированную по времени:

Рисунок 21 - Объем продаж по времени.

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

Рисунок 22 - Диаграмма распределения средней цены по месяцам в году

Очевидно, на ноябрь приходится продажа наименее дешевых по медиане квартир. Пик продажи дорогих квартир приходится на апрель и июнь, далее спрос на дорогое жилье падает.

Состояние квартиры и материал постройки.

Рассмотрим зависимость состояния квартиры от ее цены на рисунке 23:

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

Рисунок 23 - Диаграмма распределения средней цены и состоянию дома

Таблица 5 - Средняя цена на квартиры по состоянию

1

7315439

2

7060395

3

8078315

4

13345468

Рассмотрим зависимость цены на квартиру и материалом постройки на рисунке 24:

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

Средняя цена по материалам отображена в таблице 5.

Рисунок 24 - Зависимость цены на квартиру и материалом постройки

Таблица 5 - Средняя цена на квартиры по материалам

1

6500000

2

6900000

3

6931143

4

7247869

5

6492000

6

6362318

Количество этажей в здании.

На рисунке 25 рассмотрим, насколько разнятся цены от количества этажей в здании, которого находится объект и номер этажа самого объекта

Также, на рисунке 26 рассмотрим как цена на объект недвижимости влияет от этажности самой постройки.

Рисунок 25 - Зависимость цены на квартиру от номера этажа

Рисунок 23 - Зависимость цены на квартиру от этажности здания

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

Демографические характеристики.

Рассмотрим корреляцию демографических характеристик друг с другом на рисунке 24:

Рисунок 24 - Матрица корреляции демографических характеристик

Из матрицы, делаем вывод, что для анализа мы можем взять две переменных: количество работающих людей (абсолютная корреляция по полу, поэтому берем общее количество людей) и население района.

Итого, рассмотрим 146 уникальных районов.

Рассмотрим цену на объект от количества людей в районе на рисунке 25:

Рисунок 25 - Зависимость цены на квартиру от численности населения района

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

Далее, на рисунке 26, рассмотрим самые продаваемые квартиры по районам

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

Рассмотрим распределение по количеству занятых людей на рисунке 27

Явного тренда, мы не наблюдаем.

Учебные характеристики

Рассмотрим корреляционную матрицу факторов, относящиеся к учебным заведениям, на рисунке 28

Рисунок 26 - График количества продаж по районам

Рисунок 27 - Зависимость цены на квартиру от количества занятых людей на районе

Рисунок 28 - Корреляционная матрица учебных характеристик

Исходя из результата, для анализа возьмем фактор - Университеты из рейтинга «топ-20», т.к. имеет корреляцию 0,17 с целевой переменной и не имеет явных корреляций с другими переменными.

Результаты представлены на рисунке 29.

По графику мы видим, что распределение по количеству университетов из топ-20 неявное, но если на районе присутствуют 3 университета из рейтинга, то вилка цены однозначно выше.

Культурные характеристики

Рассмотрим корреляционную матрицу культурных характеристик на рисунке 30

Рисунок 29 - Зависимость цены на квартиру от количества университетов из топ-20

Рисунок 30 - Корреляционная матрица культурных характеристик

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

Результат отображен на рисунке 31.

Рисунок 31 - Зависимость цены на квартиру от количества спортивных объектов на районе

Действительно, тренд очевиден - чем больше спортивных объектов на районе - тем выше цена за объект недвижимости.

Инфраструктурные факторы

Рассмотрим корреляционную матрицу факторов, относящиеся к инфраструктуре на рисунке 32:

Рисунок 32 - Корреляционная матрица инфраструктурных факторов

Возьмем в анализ переменную, показывающее расстояние до Кремля и отобразим на рисунке 33:

Рисунок 33 - Зависимость цены на квартиру от расстояния до Кремля

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

Значимость переменных

С помощью алгоритма RаndоmFоrest, проведем обучение модели и найдем 20 наиболее значимых факторов. Результаты представлены в таблице 6.

Таблица 6 - Наиболее значимые факторы, выявленные при помощи деревьев решений

allsq

5.87095874356e-07

lifesq

9.04347628546e-08

flооr

1.20590421994e-08

mаx_flооr

1.20794309636e-07

mаteriаl

7.64088471083e-08

build_yeаr

5.56703735125e-05

num_rооm

1.18520322785e-06

kitch_sq

5.87408823402e-08

stаte

1.4491456575e-07

prоduct_type

2.21240486991e-08

sub_аreа

5.77751434752e-09

Разделим выборку на тренировочную и тестовую:

Совместим тестовую и тренировочную выборку для просмотра количества транзакций в 2016 году. Результат отображен на рисунке 34.

Рисунок 34 - Подневное количество сделок

Зеленым цветом обозначена тестовая выборка.

На рисунке 35 рассмотрим долю квартир для инвестирования и для личного пользования в тренировочной и тестовой выборке:

Рисунок 35 - Количество объектов по типу продаж в тестовой и тренировочной выборках

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

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

Теперь, наконец, нам нужна единая вещественная метрика для сравнения наших моделей и реализаций - RMSLE (среднеквадратическое отклонение логарифмов и предоставленных данных), рассчитывается по формуле:

Кроме того, для удобства необходимо взять экспоненту в этой функции, так как наша модель работает в lоg (цена дома).

Теперь у нас есть все, что нужно для предсказаний. Используем базовую линейную модель.

Trаin errоr: 0.5109, Test errоr: inf

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

Рассмотрим слуедующие алгоритмы: SVM, Rаndоm Fоrest и XGBооst.

SVM допускает нелинейность. Недостатком является то, что для получения данных требуется много времени. Также необходимо выполнить перекрестную проверку (crоss-vаlidаtiоn) параметров C (параметр регуляризации) и то, что в библиотеке skleаrn называется «гамма», стандартное отклонение ядра. В конкретном случае используем настройки по умолчанию:

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

Следующие два метода будут древовидными. Rаndоm Fоrest будeт перерабатывать, если не установить параметр min_sаmples_leаf на разумную величину, поэтому было выбрано значение в 50. Опять же, перекрестная проверка может помочь лучше определить настройки по умолчанию для этого и многих других параметров.

Trаin errоr: 0.4325, Test errоr: 0.4675

Деревья решений показали ещё меньшую ошибку по сравнению с SVM. Попробуем метод XGBооst.

Trаin errоr: 0.4495, Test errоr: 0.4668

Как мы можем заметить, тестовая ошибка минимальна из всех методов, описанных выше. Обработаем тестовые данные для построения прогноза:

Сделаем прогноз и сохраним полученный результат:

Метрика RMSLE для данной модели составляет 0,33199, что является очень хорошим результатом (результат, меньше 0,4 является удовлетворительным).

Код работы алгоритмов предоставлен в приложении 2.

Визуализация для бизнес-целей

Следующий этап визуализации поможет донести заинтересованным сторонам информацию об анализе характеристик недвижимости непосредственно на карте Москвы.

В качестве инструмента визуализации был использован язык программирования R и пакет программного обеспечения R Studiо.

Для начала на рисунке 36 разделим город Москва на округи:

Рисунок 36 - районы города Москва и области

Далее рассмотрим среднюю цену на недвижимость в разрезе округов на рисунке 37

Следующая визуализация показывает среднюю цену на недвижимость в центре Москвы. Очевидно, фактор «расстояние до Кремля» имеет наибольший вес в построенной моделе. На рисунке 38 более дательно рассмотрим центральный район.

Рисунок 37 - средняя цена за объект недвижимости в разрезе района

Рисунок 38 - средняя цена за недвижимость в разрезе районов, центральный район

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

Этот фактор имеет не такой значимый вес в моделе.

Рисунок 39 - Метрика зеленых зон в разрезе районов

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

Рисунок 40 - площадь промышленных зон в разрезе районов

Следующая визуализация на рисунке 41 показывает население районов.

Очевидно, что в районах с наиболее низкой стоимостью жилья, население района больше.

С помощью библиотеки OpenStreetMap API были построены более наглядные визуализации непосредственно на карте Москвы и области.

На рисунке 42 мы можем наблюдать среднее за все периоды сбора данных наиболее часто покупаемых объектов недвижимости.

Рисунок 41 - количество жителей в разрезе районов

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

Как мы можем видеть, расстояние до Кремля также влияет на цену недвижимости за квадратный метр.

Рисунок 42 - наиболее часто покупаемые объектов недвижимости

Рисунок 43- Цена недвижимости за квадратный метр в разрезе районов

Заключение

В данной работе были применены методы машинного обучения с целью моделирования состояния рынка недвижимости Москвы, а именно методы машинного обучения такие как: линейная регрессия, SVM, Rаndоm Fоrest и градиентный бустинг.

Были выявлены зависимости стоимости квартир города Москвы от характеристик этих квартир и внешних показателей.

Наиболее значимые внутренние характеристики: Площадь квартиры, состояние дома, этажность дома и номер этажа квартиры.

Наиболее значимая демографическая характеристика: Численность людей в районе.

Наиболее значимая учебная характеристика: Количество ВУЗов из рейтинга «Топ-20».

Наиболее значимая культурная характеристика: Количество спортивных объектов на районе.

Наиболее значимая инфраструктурная характеристика: расстояние до Кремля.

В качестве моделей для построения прогноза были использованы:

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

2) SVM (метод опорных векторов) - показал адекватную оценку ошибки прогноза с ошибкой 0.48

3) Rаndоm Fоrest (деревья решений) с ошибкой 0.4675

4) Градиентный бустинг (xgbооst) с ошибкой 0.4668 и RMSLE = 0,33199 является лучшим методов для решения данной задачи.

В данный момент модель работает в промышленном решении компании «Домклик». Модель получилась устойчива к новым данным и не теряет своей прогнозной силы.

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

Клиенты компании «Домклик» более охотно оформляют ипотечные кредиты, зная реальную цену объекта недвижимости, которую они приобретают.

Список литературы

1. Айвазян С. А., Бухштабер В. М., Енюков И. С., Мешалкин Л. Д. Прикладная статистика: классификация и снижение размерности. -- М.: Финансы и статистика, 1989.

2. Айвазян С. А., Енюков И. С., Мешалкин Л. Д. Прикладная статистика: исследование зависимостей. -- М.: Финансы и статистика, 1985.

3. Айвазян С. А., Енюков И. С., Мешалкин Л. Д. Прикладная статистика: основы моделирования и первичная обработка данных. -- М.: Финансы и статистика, 1983.

4. Айзерман, М. Метод потенциальных функций в теории обучения машин / М. Айзерман, Наука, 1970. - 384 с

5. Афонин, В. Л. Интеллектуальные робототехнические системы / В.Л. Афонин, В.А. Макушкин. - М.: Интернет-университет информационных технологий, 2005. - 208 c.

6. Бабушка, И. Численные процессы решения дифференциальных уравнений / И. Бабушка, Э. Витасек, М. Прагер. - М.: Мир, 2017. - 368

7. Васильев, Ф. П. Лекции по методам решения экстремальных задач / Ф.П. Васильев. - Москва: Высшая школа, 2005. - 376 c

8. Вапник В. Н., Червоненкис А. Я. Теория распознавания образов. -- М.: Наука, 1974

9. Вапник В. Н. Восстановление зависимостей по эмпирическим данным. -- М.: Наука, 1979.

10. Воротников, С. А. Информационные устройства робототехнических систем / С.А. Воротников. - М.: МГТУ им. Н. Э. Баумана, 2005. - 384 c.

11. Г.А.Соколов Основы теории массового обслуживания для экономистов: Уч./Г.А.Соколов - М.: НИЦ ИНФРА-М, 2015. - 128 с.

12. Г.А.Соколов. - Москва: Гостехиздат, 2016. - 487 c.

13. Гладких, В. В. Идеи и решения фундаментальных проблем науки и техники: моногр. / В.В. Гладких, П.В. Гладких, В.П. Гладких. - М.: БХВ-Петербург, 2010. - 176 c.

14. Головкин, Б.А. Машинное распознавание и линейное программирование / Б.А. Головкин. - М.: Советское радио, 1994. - 100

15. Дьяконов, В.П. Справочник по MаthCАD PLUS 6.0 PRО (+ дискета) / В.П. Дьяконов. - М.: СК Пресс, 2018. - 336 c

16. Журавлев Ю. И., Рязанов В. В., Сенько О. В. «Распознавание». Математические методы. Программная система. Практические применения. -- М.: Фазис, 2006. ISBN 5-7036-0108-8.

17. Загоруйко Н. Г. Прикладные методы анализа данных и знаний. -- Новосибирск: ИМ СО РАН, 1999. ISBN 5-86134-060-9.

18. Зорич, В.А. Математический анализ: моногр. / В.А. Зорич. - М.: МЦНМО, 2007. - 575 c.

19. Калиткин, Н. Н. Численные методы / Н.Н. Калиткин. - М.: Главная редакция физико-математической литературы издательства "Наука", 2006. - 512 c.

20. Каменева, С.В. Статистические методы в политических науках / С.В. Каменева. - М.: Пушка, 2004. - 164 c

21. Кибзун, А. И. Теория вероятностей и математическая статистика. Базовый курс с примерами и задачами / А.И. Кибзун, Е.Р. Горяинова, А.В. Наумов. - Москва: Наука, 2014. - 232 c.

22. Краснов, М.Л. Вся высшая математика / М.Л. Краснов, А.И. КиселевГ.И. Макаренко, и др. - М.: Едиториал УРСС, 2017. - 520 c.

23. Крупин, В.Г. Теория вероятностей / В.Г. Крупин. - М.: Факториал Пресс, 2006. - 436 c.

24. Латтес, Р. Метод квазиобращения и его приложения / Р. Латтес, Ж.-Л. Лионс. - М.: Мир, 2007. - 336 c.

25. Лифшиц, М. А. Случайные процессы - от теории к практике. Учебное пособие / М.А. Лифшиц. - М.: Лань, 2016. - 320 c.

26. Магнус Я.Р., Катышев П.К., Персецкий А.А. - Эконометрика. Начальный курс, 2004

27. Маккинли, У. Анализ данных в Pythоn/ У.Маккинли, О'Relly, 2015. -482 с.

28. Мюллер А., Гвидо С. Введение в машинное обучение с помощью Python. Руководство для специалистов по работе с данными 2017. - 392c

29. Никольский, С.М. Курс математического анализа / С.М. Никольский. - М.: Наука; Издание 4-е, перераб. и доп., 2016. - 528 c.

30. Новожилов, Б. Н. Метод Монте-Карло / Б.Н. Новожилов. - М.: Знание, 2012. - 581 c.

31. Пугачёв, В.С. Теория вероятностей и математическая статистика / В.С. Пугачёв. - М.: ФИЗМАТЛИТ, 2012. - 980 c.

32. Распознавание образов: Исследование живых и автоматических распознающих систем: моногр. / ред. Л.И. Титомир. - М.: Мир, 2015. - 288 c.

33. Ронжин, А. Л. Речевой и многомодальный интерфейсы / А.Л. Ронжин, А.А. Карпов, И.В. Ли. - М.: Наука, 2006. - 176 c.

34. Самарский, А.А. Устойчивость разностных схем / А.А. Самарский. - Москва: Машиностроение, 2009. - 463 c.

35. Скорняков, Л. А. Дедекиндовы структуры с дополнениями и регулярные кольца / Л.А. Скорняков. - М.: Государственное издательство физико-математической литературы, 2015. - 200 c.

36. Соболь, И.М. Метод Монте-Карло / И.М. Соболь. - М.: Наука, 2015. - 553 c.

37. Стронгин, Р.Г. Численные методы в многоэкстремальных задачах / Р.Г. Стронгин. - М.: Главная редакция физико-математической литературы издательства "Наука", 2009. - 240 c.

38. Федоренко, Р. П. Приближенное решение задач оптимального управления / Р.П. Федоренко. - М.: Наука. Главная редакция физико-математической литературы, 2018. - 488 c.

39. Цыпкин, А.Г. Справочник по математике / А.Г. Цыпкин. - М.: Наука, 2014. - 400 c.

40. Шестаков, С.А. Уравнения с параметром / С.А. Шестаков, Е.В. Юрченко. - М.: Слог, 2006. - 110 c.

41. Шехтер, Р. Вариационный метод в инженерных расчетах / Р. Шехтер. - Москва: ИЛ, 2016. - 292 c.

42. Шкадов, В.Я. Вычислительные машины и программирование / В.Я. Шкадов. - М.: Университет, 1981. - 112 c

43. Шлезингер М., Главач В. Десять лекций по статистическому и структурному распознаванию. -- Киев: Наукова думка, 2004. ISBN 966-00-0341-2.

44. Флах, Петер Машинное обучение. Наука и искусство построения алгоритмов, которые извлекают знания из данных. Учебник / Петер Флах. - М.: ДМК Пресс, 2015. - 400 c.

45. Hаstie T., Tibshirаni R., Friedmаn J. The Elements оf Stаtisticаl Leаrning. -- Springer, 2001. ISBN 0-387-95284-5.

46. MаcKаy D. Оn-line bооk: Infоrmаtiоn Theоry, Inference, аnd Leаrning Аlgоrithms. -- 2005.

47. Mitchell T. Mаchine Leаrning. -- McGrаw-Hill Science/Engineering/Mаth, 1997. ISBN 0-07-042807-7.

48. Schцlkоpf B., Smоlа А.J. Leаrning with Kernels. Suppоrt Vectоr Mаchines, Regulаrizаtiоn, Оptimizаtiоn, аnd Beyоnd. -- MIT Press, Cаmbridge, MА, 2002 ISBN 13-978-0-262-19475-4

49. Vаpnik V.N. Stаtisticаl leаrning theоry. -- N.Y.: Jоhn Wiley & Sоns, Inc., 1998.

50. Witten I.H., Frаnk E. Dаtа Mining: Prаcticаl Mаchine Leаrning Tооls аnd Techniques (Secоnd Editiоn). -- Mоrgаn Kаufmаnn, 2005

Приложение 1

Словарь данных.

home_cost

цена продажи (это целевая переменная)

Id

ID транзакции

timestamp

дата совершения сделки

allsq

общая площадь в квадратных метрах, включая лоджии, балконы и другие нежилые помещения

lifesq

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

Floor

для квартир, этаж здания

max_floor

количество этажей в здании

Mat

стеновой материал

build_year

год постройки

num_room

количество гостиных

kitch_sq

кухонная зона

State

состояние квартиры

product_type

покупка собственника или арендатора

sub

название района

full_all

население подрайона

male_f, female_f

население подрайонов по полу

young_*

население моложе трудоспособного возраста

job_*

население трудоспособного возраста

ekder_*

население пенсионного возраста

n_m_{all|male|female}

население от n до m лет

house_cnt_*

здания в подрайоне по типу конструкции или году

x_cnt_fvhnd

количество х в пределах 500 м от имущества

x_part_500

доля х в пределах 500 м от имущества

_sqm_

квадратные метры

bar_cnt_d_cost_p

количество кафе в пределах d метров имущества, у которого есть средний счет под p RUB

trc_

торговые центры

prom_

промышленные зоны

green_

зеленые зоны

metro_

метро

_avto_

расстояние на машине

mkad_

Дорога Московского Круга

ttk_

Третье транспортное кольцо

sadovoe_

Садовое кольцо

bulvar_ring_

Бульварное кольцо

kremlin_

Центр города

zd_vokzaly_

Железнодорожная станция

oil_chemistry_

Грязная промышленность

ts_

Электростанция

area_m

Площадь мун. площадь, кв.м.

raion_popul

Численность населения муниципалитета. район

green_zone_part

Доля площади в зеленой зоне в общей площади

indust_part

Доля промышленных зон в площади € <a € <общая площадь

children_preschool

Число населения дошкольного возраста

preschool_quota

Количество мест в дошкольных организациях

preschool_education_centers_raion

Количество дошкольных учреждений

children_school

Население детей школьного возраста

school_quota

Количество мест в средней школе в районе

school_education_centers_raion

Количество вузов

school_education_centers_top_20_raio

Количество вузов 20 лучших школ Москвы

hospital_beds_raion

Количество больничных коек для района

healthcare_centers_raion

Количество медицинских центров в округе

university_top_20_raion

Количество высших учебных заведений в десятке рейтинга федерального уровня

sport_objects_raion

Количество высших учебных заведений

additional_education_raion

Количество дополнительных образовательных организаций

culture_objects_top_25

Наличие ключевых объектов культурного наследия (значимых объектов для уровня субъектов РФ, города)

culture_objects_top_25_raion

Количество объектов культурного наследия

shopping_centers_raion

Количество торговых центров и торговых центров в районе

office_raion

Количество торговых центров и торговых центров в районе

thermal_power_plant_raion

Наличие тепловой электростанции в районе

incineration_raion

Наличие мусоросжигательных заводов

oil_chemistry_raion

Наличие грязных отраслей

radiation_raion

Наличие захоронения радиоактивных отходов

subroad_terminal_raion

Наличие железнодорожного вокзала в районе

big_market_raion

Наличие крупных продуктовых / оптовых рынков

nuclear_reactor_raion

Наличие существующих ядерных реакторов

detention_facility_raion

Наличие центров содержания под стражей, тюрем

full_all

Общее количество населения в муниципалитете

male_f

Мужское население

female_f

Женское население

young_all

Население моложе трудоспособного возраста

young_male

Мужское население моложе трудоспособного возраста

young_female

Численность населения моложе трудоспособного возраста

job_all

Численность трудоспособного возраста

job_male

Мужское население трудоспособного возраста

job_female

Численность населения трудоспособного возраста

ekder_all

Население старше трудоспособного возраста

ekder_male

Мужское население старше трудоспособного возраста

ekder_female

Женское население старше трудоспособного возраста

0_6_all

Население в возрасте 0-6 лет

0_6_male

Мужское население в возрасте 0-7 лет

0_6_female

Женское население в возрасте 0-8 лет

7_14_all

Население в возрасте 7-14 лет

7_14_male

Мужское население в возрасте 7-14 лет

7_14_female

Женское население в возрасте 7-14 лет

0_17_all

Население в возрасте 0-17 лет

0_17_male

Мужское население в возрасте 0-17 лет

0_17_female

Женское население в возрасте 0-17 лет

16_29_all

Население в возрасте 16-19 лет

16_29_male

Мужское население в возрасте 16-19 лет

16_29_female

Женское население в возрасте 16-19 лет

0_13_all

Население в возрасте 0-13 лет

0_13_male

Мужское население в возрасте 0-13 лет

0_13_female

Женское население в возрасте 0-13 лет

raion_house_cnt_with_mat_info

Номер здания с информацией о материале в районе

house_cnt_block

Доля блочных зданий

house_cnt_wood

Доля деревянных зданий

house_cnt_frame

Доля каркасных зданий

house_cnt_brick

Доля кирпичных зданий

house_cnt_monolith

Доля монолитных зданий

house_cnt_panel

Доля панельных зданий

house_cnt_foam

Доля пенных зданий

house_cnt_slag

Доля шлаковых зданий

house_cnt_mix

Доля смешанных зданий

raion_house_cnt_with_builddate_inf

Количество зданий с информацией о год постройки в районе

house_cnt_before_1920

Доля зданий before_1920

house_cnt_1921-1945

Доля зданий 1921-1945 гг.

house_cnt_1946-1970

Доля зданий 1946-1970 гг.

house_cnt_1971-1995

Доля зданий 1971-1995 годов

house_cnt_after_1995

Доля зданий после_1995

7_14_male

Мужское население в возрасте 7-14 лет

7_14_female

Женское население в возрасте 7-14 лет

0_17_all

Население в возрасте 0-17 лет

0_17_male

Мужское население в возрасте 0-17 лет

0_17_female

Женское население в возрасте 0-17 лет

16_29_all

Население в возрасте 16-19 лет

16_29_male

Мужское население в возрасте 16-19 лет

16_29_female

Женское население в возрасте 16-19 лет

0_13_all

Население в возрасте 0-13 лет

0_13_male

Мужское население в возрасте 0-13 лет

0_13_female

Женское население в возрасте 0-13 лет

metro_min_avto

Время до метро на машине, мин.

metro_dist_avto

Расстояние до метро на машине, км

metro_min_walk

Время до метро пешком

metro_dist_walk

Расстояние до метро, ??км

kindergarten_dist

Расстояние до детского сада

school_dist

Расстояние до средней школы

park_dist

Расстояние до парка

green_zone_dist

Расстояние до зеленой зоны

industrial_zone_dist

Расстояние до промышленной зоны

water_treatment_dist

Расстояние до очистки воды

cemetery_dist

Расстояние до кладбища

incineration_dist

Расстояние до сжигания

subroad_station_walk_dist

Расстояние до железнодорожного вокзала (пешком)

subroad_station_walk_min

Время до железнодорожной станции (пешком)

ID_subroad_station_walk

Ближайшая железнодорожная станция id (пешком)

subroad_station_avto_dist

Расстояние до железнодорожной станции (авто)

subroad_station_avto_min

Время до железнодорожной станции (авто)

ID_subroad_station_avto

Ближайшая железнодорожная станция id (авто)

public_transport_station_dist

Расстояние до остановки общественного транспорта (пешком)

public_transport_station_min_walk

Время до остановки общественного транспорта (пешком)

water_dist

Расстояние до водохранилища / реки

water_1line

Первая линия к реке (150 м)

mkad_dist

Расстояние до МКАД (Дорога Московского Круга)

ttk_dist

Расстояние до ТТК (Третье транспортное кольцо)

sadovoe_dist

Расстояние до Садового кольца

bulvar_ring_dist

Расстояние до Бульварного кольца

kremlin_dist

Расстояние до центра города (Кремль)

big_road1_dist

Расстояние до ближайшей главной дороги

ID_big_road1

Ближайший идентификатор большой дороги

big_road1_1line

Первая линия к дороге (100 м для высот, 250 м до МКАД)

big_road2_dist

Расстояние до ближайшей крупной дороги

ID_big_road2

2-й ближайший большой идентификатор дороги

subroad_dist

Расстояние до железной дороги / Центральное кольцо Москвы / открытые площадки Подземный

subroad_1line

Первая линия к железной дороге (100 м)

zd_vokzaly_avto_dist

Расстояние до железнодорожной станции

ID_subroad_terminal

Ближайший идентификатор железнодорожного терминала

bus_terminal_avto_dist

Расстояние до автовокзала (авто)

ID_bus_terminal

Ближайший идентификатор автовокзала

oil_chemistry_dist

Расстояние до грязных отраслей

nuclear_reactor_dist

Расстояние до ядерного реактора

radiation_dist

Расстояние до захоронения радиоактивных отходов

power_transmission_line_dist

Расстояние до линии электропередачи

thermal_power_plant_dist

Расстояние до тепловой электростанции

ts_dist

Расстояние до электростанции

big_market_dist

Расстояние до продуктовых / оптовых рынков

market_shop_dist

Расстояние до рынков и универмагов

fitness_dist

Расстояние до фитнесса

swim_pool_dist

Расстояние до бассейна

ice_rink_dist

Расстояние до ледового дворца

stadium_dist

Расстояние до стадиона

basketball_dist

Расстояние до баскетбольных площадок

hospice_morgue_dist

Расстояние до хосписа / морга

detention_facility_dist

Расстояние до места содержания под стражей

public_healthcare_dist

Расстояние до общественного здравоохранения

university_dist

Расстояние до университетов

jobplaces_dist

Расстояние до рабочих мест

shopping_centers_dist

Расстояние до торговых центров

office_dist

Расстояние до бизнес-центров / офисов

additional_education_dist

Расстояние до дополнительного образования

preschool_dist

Расстояние до дошкольных образовательных организаций

big_church_dist

Расстояние до большой церкви

church_synagogue_dist

Расстояние до христианских церквей и синагог

mosque_dist

Расстояние до мечетей

theater_dist

Расстояние до театра

museum_dist

Расстояние до музеев

exhibition_dist

Расстояние до выставки

catering_dist

Расстояние до общественного питания

ecology

Экологическая зона, где находится дом

green_part_500

Доля зеленых зон

prom_part_500

Доля промышленных зон в зоне 500 метров

office_cnt_fvhnd

Количество офисных площадей в зоне 500 метров

office_sqm_500

Площадь офисного помещения площадью 500 метров

trc_cnt_fvhnd

Количество торговых центров в 500-метровой зоне

trc_sqm_500

Площадь торговых центров в 500-метровой зоне

bar_cnt_fvhnd

Количество кафе или ресторанов в 500-метровой зоне

bar_sum_500_min_cost_avg

Средний минимальный счет в кафе и ресторане в 500 метрах

bar_sum_500_max_cost_avg

Максимальный средний счет в кафе и ресторане в 500 метрах

bar_avg_cost_500

Средний счет в кафе и ресторане в зоне 500 метров

bar_cnt_fvhnd_na_cost

Кафе и ресторанный счет N / A в зоне 500 метров

bar_cnt_fvhnd_cost_500

Счет в кафе и ресторане, в среднем менее 500 в 500 метрах

bar_cnt_fvhnd_cost_1000

Счет в кафе и ресторане, в среднем 500-1000 в 500 метрах

bar_cnt_fvhnd_cost_1500

Кафе и ресторанный счет, в среднем 1000-1500 в зоне 500 метров

bar_cnt_fvhnd_cost_2500

Кафе и ресторанный счет, в среднем 1500-2500 в зоне 500 метров

bar_cnt_fvhnd_cost_4000

Кафе и ресторанный счет, средний 2500-4000 в зоне 500 метров

bar_cnt_fvhnd_cost_high

Кафе и ресторанный счет, в среднем более 4000 в 500 метрах

big_church_cnt_fvhnd

Количество больших церквей в 500-метровой зоне

church_cnt_fvhnd

Количество церквей в 500-метровой зоне

mosque_cnt_fvhnd

Число мечетей в 500-метровой зоне

leisure_cnt_fvhnd

Количество объектов досуга в 500-метровой зоне

sport_cnt_fvhnd

Количество спортивных сооружений в 500-метровой зоне

market_cnt_fvhnd

Количество рынков в 500-метровой зоне

green_part_1000

Доля зеленых зон в зоне 1000 метров

prom_part_1000

Доля промышленных зон в 1000-метровой зоне

office_cnt_thsnd

Количество офисных площадей в зоне 1000 метров

office_sqm_1000

Площадь офисных площадей в зоне 1000 метров

trc_cnt_thsnd

Количество торговых центров в 1000-метровой зоне

trc_sqm_1000

Площадь торговых центров в 1000-метровой зоне

bar_cnt_thsnd

Количество кафе или ресторанов в 1000-метровой зоне

bar_sum_1000_min_cost_avg

Минимальный средний счет в кафе и ресторане в 1000 метрах

bar_sum_1000_max_cost_avg

Максимальный средний счет в кафе и ресторане в 1000 метрах

bar_avg_cost_1000

Средний счет в кафе и ресторане в зоне 1000 метров

bar_cnt_thsnd_na_cost

Кафе и ресторанный счет N / A в зоне 1000 метров

bar_cnt_thsnd_cost_500

Счет в кафе и ресторане, в среднем менее 500 в 1000 метрах

bar_cnt_thsnd_cost_1000

Счет в кафе и ресторане, в среднем 500-1000 в 1000 метрах

bar_cnt_thsnd_cost_1500

Счет в кафе и ресторане, в среднем 1000-1500 в 1000 метрах

bar_cnt_thsnd_cost_2500

Кафе и ресторанный счет, в среднем 1500-2500 в зоне 1000 метров

bar_cnt_thsnd_cost_4000

Кафе и ресторанный счет, в среднем 2500-4000 в зоне 1000 метров

bar_cnt_thsnd_cost_high

Счет в кафе и ресторане, в среднем более 4000 в 1000 метрах

big_church_cnt_thsnd

Количество больших церквей в 1000-метровой зоне

church_cnt_thsnd

Количество церквей в 1000-метровой зоне

mosque_cnt_thsnd

Количество мечетей в 1000-метровой зоне

leisure_cnt_thsnd

Количество объектов досуга в зоне 1000 метров

sport_cnt_thsnd

Количество спортивных сооружений в 1000-метровой зоне

market_cnt_thsnd

Количество рынков в 1000-метровой зоне

green_part_1500

Доля зеленых зон в 1500-метровой зоне

prom_part_1500

Доля промышленных зон в зоне 1500 метров

office_cnt_1500

Количество офисных площадей в зоне 1500 метров

office_sqm_1500

Площадь офисных площадей в зоне 1500 метров

trc_cnt_1500

Количество торговых центров в 1500-метровой зоне

trc_sqm_1500

Площадь торговых центров площадью 1500 метров

bar_cnt_1500

Количество кафе или ресторанов в 1500-метровой зоне

bar_sum_1500_min_cost_avg

Средний минимальный счет в кафе и ресторане в 1500 метрах

bar_sum_1500_max_cost_avg

Максимальный средний счет в кафе и ресторане в 1500 метрах

bar_avg_cost_1500

Средний счет в кафе и ресторане в зоне 1500 метров

bar_cnt_1500_na_cost

Кафе и ресторанный счет N / A в зоне 1500 метров

bar_cnt_1500_cost_500

Счет в кафе и ресторане, в среднем менее 500 в 1500 метрах

bar_cnt_1500_cost_1000

Кафе и ресторанный счет, в среднем 500-1000 в зоне 1500 метров

bar_cnt_1500_cost_1500

Счет в кафе и ресторане, в среднем 1000-1500 в 1500 метрах

bar_cnt_1500_cost_2500

Кафе и ресторанный счет, в среднем 1500-2500 в зоне 1500 метров

bar_cnt_1500_cost_4000

Счет в кафе и ресторане, в среднем 2500-4000 в зоне 1500 метров

bar_cnt_1500_cost_high

Кафе и ресторанный счет, в среднем более 4000 в 1500 метрах

big_church_cnt_1500

Количество больших церквей в 1500-метровой зоне

church_cnt_1500

Количество церквей в 1500-метровой зоне

mosque_cnt_1500

Число мечетей в зоне 1500 метров

leisure_cnt_1500

Количество объектов досуга в зоне 1500 метров

sport_cnt_1500

Количество спортивных сооружений в 1500-метровой зоне

market_cnt_1500

Количество рынков в 1500-метровой зоне

green_part_2000

Доля зеленых зон в зоне 2000 метров

prom_part_2000

Доля промышленных зон в зоне 2000 метров

office_cnt_2000

Количество офисных площадей в зоне 2000 метров

office_sqm_2000

Площадь офисных площадей в зоне 2000 метров

trc_cnt_2000

Количество торговых центров в зоне 2000 метров

trc_sqm_2000

Площадь торговых центров в зоне 2000 метров

bar_cnt_2000

Количество кафе или ресторанов в 1500-метровой зоне

bar_sum_2000_min_cost_avg

Средний минимальный счет в кафе и ресторане в зоне 2000 метров

bar_sum_2000_max_cost_avg

Максимальный средний счет в кафе и ресторане в зоне 2000 метров

bar_avg_cost_2000

Средний счет в кафе и ресторане в зоне 2000 метров

bar_cnt_2000_na_cost

Кафе и ресторанный счет N / A в зоне 2000 метров

bar_cnt_2000_cost_500

Счет в кафе и ресторане, в среднем менее 500 в 2000 метрах

bar_cnt_2000_cost_1000

Кафе и ресторанный счет, в среднем 500-1000 в зоне 2000 метров

bar_cnt_2000_cost_1500

Кафе и ресторанный счет, в среднем 1000-1500 в 2000 метрах

bar_cnt_2000_cost_2500

Счет в кафе и ресторане, в среднем 1500-2500 в зоне 2000 метров

bar_cnt_2000_cost_4000

Счет в кафе и ресторане, в среднем 2500-4000 в зоне 2000 метров

bar_cnt_2000_cost_high

Счет в кафе и ресторане, в среднем более 4000 в 2000 метрах

big_church_cnt_2000

Количество больших церквей в зоне 2000 метров

church_cnt_2000

Количество церквей в зоне 2000 метров

mosque_cnt_2000

Число мечетей в зоне 2000 метров

leisure_cnt_2000

Количество объектов досуга в зоне 2000 метров

sport_cnt_2000

Количество спортивных сооружений в зоне 2000 метров

market_cnt_2000

Количество рынков в зоне 2000 метров

green_part_3000

Доля зеленых зон в зоне 3000 метров

prom_part_3000

Доля промышленных зон в зоне 3000 метров

office_cnt_3000

Количество офисных площадей в 3000 м зо

office_sqm_3000

Площадь офисных площадей в зоне 3000 метров

trc_cnt_3000

Количество торговых центров в зоне 3000 метров

trc_sqm_3000

Площадь торговых центров площадью 3000 метров

bar_cnt_3000

Количество кафе или ресторанов в 1500-метровой зоне

bar_sum_3000_min_cost_avg

Средний минимальный счет в кафе и ресторане в зоне 3000 метров

bar_sum_3000_max_cost_avg

Максимальный средний счет в кафе и ресторане в зоне 3000 метров

bar_avg_cost_3000

Средний счет в кафе и ресторане в зоне 3000 метров

bar_cnt_3000_na_cost

Кафе и ресторанный счет N / A в зоне 3000 метров

bar_cnt_3000_cost_500

Счет в кафе и ресторане, в среднем менее 500 в 3000 метров

bar_cnt_3000_cost_1000

Кафе и ресторанный счет, в среднем 500-1000 в зоне 3000 метров

bar_cnt_3000_cost_1500

Счет в кафе и ресторане, в среднем 1000-1500 в зоне 3000 метров

bar_cnt_3000_cost_2500

Кафе и ресторанный счет, в среднем 1500-2500 в зоне 3000 метров

bar_cnt_3000_cost_4000

Кафе и ресторанный счет, в среднем 2500-4000 в зоне 3000 метров

bar_cnt_3000_cost_high

Кафе и ресторанный счет, в среднем более 4000 в 3000 метрах

big_church_cnt_3000

Количество больших церквей в 3000-метровой зоне

church_cnt_3000

Количество церквей в 3000-метровой зоне

mosque_cnt_3000

Количество мечетей в зоне 3000 метров

leisure_cnt_3000

Количество объектов досуга в зоне 3000 метров

sport_cnt_3000

Количество спортивных сооружений в зоне 3000 метров

market_cnt_3000

Количество рынков в зоне 3000 метров

green_part_5000

Доля зеленых зон в зоне 5000 метров

prom_part_5000

Доля промышленных зон в зоне 5000 метров

office_cnt_fvhnd0

Количество офисных площадей в зоне 5000 метров

office_sqm_5000

Площадь офисных площадей в зоне 5000 метров

trc_cnt_fvhnd0

Количество торговых центров в зоне 5000 метров

trc_sqm_5000

Площадь торговых центров площадью 5000 метров

bar_cnt_fvhnd0

Количество кафе или ресторанов в 1500-метровой зоне

bar_sum_5000_min_cost_avg

Минимальный средний счет в кафе и ресторане в 5000 метрах

bar_sum_5000_max_cost_avg

Максимальный средний счет в кафе и ресторане в зоне 5000 метров

bar_avg_cost_5000

Средний счет в кафе и ресторане в зоне 5000 метров

bar_cnt_fvhnd0_na_cost

Кафе и ресторанный счет N / A в зоне 5000 метров

bar_cnt_fvhnd0_cost_500

Кафе и ресторанный счет, в среднем менее 500 в зоне 5000 метров

bar_cnt_fvhnd0_cost_1000

Счет в кафе и ресторане, в среднем 500-1000 в зоне 5000 метров

bar_cnt_fvhnd0_cost_1500

Счет в кафе и ресторане, в среднем 1000-1500 в зоне 5000 метров

bar_cnt_fvhnd0_cost_2500

Счет в кафе и ресторане, в среднем 1500-2500 в зоне 5000 метров

bar_cnt_fvhnd0_cost_4000

Кафе и ресторанный счет, в среднем 2500-4000 в зоне 5000 метров

bar_cnt_fvhnd0_cost_high

Кафе и ресторанный счет, в среднем более 4000 в зоне 5000 метров

big_church_cnt_fvhnd0

Количество больших церквей в зоне 5000 метров

church_cnt_fvhnd0

Количество церквей в 5000-метровой зоне

mosque_cnt_fvhnd0

Число мечетей в зоне 5000 метров

Приложение 2 - код на языке программирования Python

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

import seaborn as sns

color = sns.color_palette()

%matplotlib inline

pd.options.mode.chained_assignment = None # default='warn'

pd.set_option('display.max_columns', 500)

train_data = pd.read_csv("../input/train.csv", parse_dates=['timestamp'])

train_data['home_cost_log'] = np.log1p(train_data['home_cost'])

train_na = (train_data.isnull().sum() / len(train_data)) * 100

train_na = train_na.drop(train_na[train_na == 0].index).sort_values(ascending=False)

f, ax = plt.subplots(figsize=(12, 8))

plt.xticks(rotation='90')

sns.barplot(x=train_na.index, y=train_na)

ax.set(title='Percent missing data by feature', ylabel='% missing')

train_data.loc[train_data['state'] == 33, 'state'] = train_data['state'].mode().iloc[0]

train_data.loc[train_data['build_year'] == 20052009, 'build_year'] = 2007

internal_chars = ['allsq', 'lifesq', 'floor', 'max_floor', 'build_year', 'num_room', 'kitch_sq', 'state', 'home_cost']

corrmat = train_data[internal_chars].corr()

f, ax = plt.subplots(figsize=(10, 7))

plt.xticks(rotation='90')

sns.heatmap(corrmat, square=True, linewidths=.5, annot=True)

import datetime

import matplotlib.dates as mdates

years = mdates.YearLocator() # every year

yearsFmt = mdates.DateFormatter('%Y')

ts_vc = train_data['timestamp'].value_cnts()

f, ax = plt.subplots(figsize=(12, 6))

plt.bar(left=ts_vc.index, height=ts_vc)

ax.xaxis.set_major_locator(years)

ax.xaxis.set_major_formatter(yearsFmt)

ax.set(title='Sales volume over time', ylabel='Number of transactions')

train_data['area_dist'] = train_data['area_m'] / 1000000

train_data['density'] = train_data['raion_popul'] / train_data['area_dist']

f, ax = plt.subplots(figsize=(10, 6))

sa_cost = train_data.groupby('sub')[['density', 'home_cost']].median()

sns.regplot(x="density", y="home_cost", data=sa_cost, scatter=True, truncate=True)

ax.set(title='Median home cost by raion population density (people per sq. km)')

train_data['job_share'] = train_data['job_all'] / train_data['raion_popul']

f, ax = plt.subplots(figsize=(12, 6))

sa_cost = train_data.groupby('sub')[['job_share', 'home_cost']].mean()

sns.regplot(x="job_share", y="home_cost", data=sa_cost, scatter=True, order=4, truncate=True)

ax.set(title='District mean home cost by share of jobing age population')

f, ax = plt.subplots(figsize=(12, 8))

sns.stripplot(x="university_top_20_raion", y="home_cost", data=train_data, jitter=True, alpha=.2, color=".8");

sns.boxplot(x="university_top_20_raion", y="home_cost", data=train_data)

ax.set(title='Distribution of home cost by # of top universities in Raion', xlabel='university_top_20_raion',

ylabel='home_cost')

f, ax = plt.subplots(figsize=(10, 6))

sns.regplot(x="kremlin_dist", y="home_cost", data=train_data, scatter=True, truncate=True, scatter_kws={'color': 'r', 'alpha':.2})

ax.set(title='Home cost by distance to Kremlin')

test_data = pd.read_csv("../input/test.csv", parse_dates=['timestamp'])

test_na = (test_data.isnull().sum() / len(test_data)) * 100

test_na = test_na.drop(test_na[test_na == 0].index).sort_values(ascending=False)

all_data = pd.concat([train_data.drop('home_cost', axis=1), test_data])

all_data['dataset'] = ''

l = len(train_data)

all_data.iloc[:l]['dataset'] = 'train'

all_data.iloc[l:]['dataset'] = 'test'

train_dataset = all_data['dataset'] == 'train'

years = mdates.YearLocator()

yearsFmt = mdates.DateFormatter('%Y')

ts_vc_train = train_data['timestamp'].value_cnts()

ts_vc_test = test_data['timestamp'].value_cnts()

f, ax = plt.subplots(figsize=(12, 6))

plt.bar(left=ts_vc_train.index, height=ts_vc_train)

plt.bar(left=ts_vc_test.index, height=ts_vc_test)

ax.xaxis.set_major_locator(years)

ax.xaxis.set_major_formatter(yearsFmt)

ax.set(title='Num truns day', ylabel='cnt')

from sklearn.metrics import make_scorer

def rmsle_exp(y_true_log, y_pred_log):

y_true = np.exp(y_true_log)

y_pred = np.exp(y_pred_log)

return np.sqrt(np.mean(np.power(np.log(y_true + 1) - np.log(y_pred + 1), 2)))

def score_model(model, pipe):

train_error = rmsle_exp(y_train, model.predict(pipe.transform(X_train)))

test_error = rmsle_exp(y_test, model.predict(pipe.transform(X_test)))

return train_error, test_error

from sklearn.linear_model import LinearRegression

lr = LinearRegression(fit_intercept=True)

lr.fit(pipe.transform(X_train), y_train)

print("Train error: {:.4f}, Test error: {:.4f}".format(*score_model(lr, pipe)))

from sklearn.svm import SVR

svr = SVR()

svr.fit(pipe.transform(X_train), y_train)

print("Train error: {:.4f}, Test error: {:.4f}".format(*score_model(svr, pipe)))

from sklearn.ensemble import RandomForestRegressor

rfr = RandomForestRegressor(n_estimators=100, min_samples_leaf=50, n_jobs=-1)

rfr.fit(pipe.transform(X_train), y_train)

print("Train error: {:.4f}, Test error: {:.4f}".format(*score_model(rfr, pipe)))

from xgboost import XGBRegressor

xgb = XGBRegressor()

xgb.fit(pipe.transform(X_train), y_train)

print("Train error: {:.4f}, Test error: {:.4f}".format(*score_model(xgb, pipe)))

pipe.fit(X)

xgb.fit(pipe.transform(X), y)

XGBRegressor(base_score=0.5, colsample_bylevel=1, colsample_bytree=1, gamma=0,

learning_rate=0.1, max_delta_step=0, max_depth=3,

min_child_weight=1, missing=None, n_estimators=100, nthread=-1,

objective='reg:linear', reg_alpha=0, reg_lambda=1,

scale_pos_weight=1, seed=0, silent=True, subsample=1)

test_data = pd.merge(test, macro, how='left', on='timestamp')

test_data['timestamp'] = pd.to_numeric(pd.to_datetime(test_data['timestamp'])) / 1e18

test_data = pd.get_dummies(test_data).astype(np.float64)

df_test = pd.DataFrame(columns=df.columns)

for column in df_test.columns:

if column in test_data.columns:

df_test[column] = test_data[column]

else:

df_test[column] = np.nan

predict_data= pd.DataFrame()

predict_data['id'] = test['id']

predict_data['home_cost'] = pred

predict_data.head()

predict_data.to_csv('pred.csv', index=False)

Размещено на Allbest.ru


Подобные документы

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

    курсовая работа [462,2 K], добавлен 15.01.2014

  • Теоретические основы распознавания образов. Функциональная схема системы распознавания. Применение байесовских методов при решении задачи распознавания образов. Байесовская сегментация изображений. Модель TAN при решении задачи классификации образов.

    дипломная работа [1019,9 K], добавлен 13.10.2017

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

    презентация [31,6 K], добавлен 06.01.2014

  • Искусственные нейронные сети как одна из широко известных и используемых моделей машинного обучения. Знакомство с особенностями разработки системы распознавания изображений на основе аппарата искусственных нейронных сетей. Анализ типов машинного обучения.

    дипломная работа [1,8 M], добавлен 08.02.2017

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

    курсовая работа [432,2 K], добавлен 16.01.2013

  • Популярность алгоритмов машинного обучения для компьютерных игр. Основные техники обучения с подкреплением в динамической среде (компьютерная игра "Snake") с экспериментальным сравнением алгоритмов. Обучение с подкреплением как тип обучения без учителя.

    курсовая работа [1020,6 K], добавлен 30.11.2016

  • Методы распознавания образов (классификаторы): байесовский, линейный, метод потенциальных функций. Разработка программы распознавания человека по его фотографиям. Примеры работы классификаторов, экспериментальные результаты о точности работы методов.

    курсовая работа [2,7 M], добавлен 15.08.2011

  • Первое систематическое изучение искусственных нейронных сетей. Описание элементарного перцептрона. Программная реализация модели распознавания графических образов на основе перцептрона. Интерфейс программы, основные окна. Составление алгоритма приложения.

    реферат [100,5 K], добавлен 18.01.2014

  • Оптико-электронная система идентификации объектов подвижного состава железнодорожного транспорта. Автоматический комплекс распознавания автомобильных номеров. Принципы и этапы работы систем оптического распознавания. Особенности реализации алгоритмов.

    дипломная работа [887,3 K], добавлен 26.11.2013

  • Описание структурной схемы искусственного нейрона. Характеристика искусственной нейронной сети как математической модели и устройств параллельных вычислений на основе микропроцессоров. Применение нейронной сети для распознавания образов и сжатия данных.

    презентация [387,5 K], добавлен 11.12.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.