Личный риелтор – сервис, формирующий цену, по которой пользователь может выгодно продать свою квартиру, не прибегая к услугам агента по продаже жилья. На вход принимает характеристики квартиры, а выдает предсказанную стоимость и карту с квартирами, имеющими похожие параметры. Таким образом, пользователь экономит на оценщике.
В разработке продукта принимали участие: Антон Алексеев, Вероника Винниченко, Валерия Винниченко, Дмитрий Жучков.
https://data8group.shinyapps.io/best_app/
└── data_parser.ipynb
├── data
└── data_final.xlsx
├── partions of data
├── part1
├── part2
├── part3
├── part4
└── part5
├── model
└── models.R
└── app
├── server.R
└── ui.R
Feature | Description | |
---|---|---|
📄 | data_parser | Файл для парсинга данных с сайта cian.ru |
📔 | data | Директория, содержащая как исходные (partitions of data), так и предобработанные данные (data_final) с харакетристками квартир |
📔 | model | Директория, содержащая модель машинного обучения |
📔 | app | Директория, содержащая файлы с кодом интервеса и серверной части приложения |
- Количество комнат
- Общая площадь
- Жилая площадь
- Площадь кухни
- Тип ремонта квартиры
- Наличие балкона
- Вид санузла (совмещенный/раздельный)
- Количество санузлов
- Этаж
- Год постройки дома
- Тип дома
- Наличие лифта
- Район расположения
- Ближайшая станция метро
- Расстояние до метро пешком (мин)
- 💵 Предсказанный интервал цены
- 🗺️ Карта с рекомендацией квартир со схожими храктеристиками
- Применение обучения с “учителем” для обучения таких алгоритмов ML, как линейная регрессия, RIDGE-регрессия, LASSO-регрессия, случайный лес
- Оформление: ансамбль
- Структура ансамбля: итоговое предсказание является суммой взвешенных предсказания отдельно работающих моделей
- Входные данные для обучения моделей: square, room, kitchen_square, living_square, year, toilet_quantity, type_toilet, if_lift, if_balcony
- Тип: content-based
- Вход: 15 характерисик квартир
- Вывод: 5 наиболее похожих квартир
- Формат вывода: карта г. Санкт-Петербурга с похожими квартирами и их характеристикмми
output$mymap = renderLeaflet({
vector1 = c(1, 0)
vector2 = c("есть", "нет")
recommend = recommend()
M = leaflet(recommend) %>% setView(lng = 30.3141, lat = 59.9386, zoom = 10)
M %>% addTiles() %>%
addMarkers(~dolgota, ~shirota, popup = paste("<br>Адрес:", recommend$addr,
"<br>Район:", recommend$district,
"<br>Цена:", paste0(formatC(as.numeric(recommend$price), format="f", digits=0, big.mark="'"), " ₽"),
"<br>Кол-во комнат:", recommend$rooms,
"<br>Площадь (кв.м):", recommend$square,
"<br>Жилая площадь (кв.м):", recommend$living_square,
"<br>Площадь кухни (кв.м):", recommend$kitchen_square,
"<br>Этаж:", recommend$floor,
"<br>Год постройки:", recommend$year,
"<br>Тип дома:", recommend$housetype,
"<br>Балкон:", recommend$if_balcony,
"<br>Наличие лифта:", recommend$if_lift,
"<br>Кол-во санузлов:", recommend$toilet_quantity,
"<br>Тип туалета:", recommend$type_toilet,
"<br>Ремонт:", recommend$remont,
"<br>Станция метро:", recommend$subway_TRUE,
"<br>Пешком до метро (мин):", recommend$subway_dist_peshkom_TRUE),
label = paste0(formatC(as.numeric(recommend$price), format="f", digits=0, big.mark="'"), " ₽"))
})