Анализ и прогнозирование цен на рынке недвижимости Москвы
Применение методов машинного обучения с целью моделирования состояния рынка недвижимости Москвы. Изучение теории распознавания образов и теории вычислительного обучения в искусственном интеллекте. Проектирование и программирование явных алгоритмов.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | диссертация |
Язык | русский |
Дата добавления | 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