1. Описание проекта

А. Постановка задачи

Ежедневно продаются тысячи домов. Есть несколько вопросов, которые задает себе каждый покупатель: какова реальная цена, которую заслуживает этот дом? Я плачу справедливую цену?

B. Наилучшие возможные решения

a.Эксперт по жилищным вопросам
b.Интуиция о доме
c.Использование машинного обучения

C. Введение О проекте

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

D. Инструменты и библиотеки

Инструменты

a.Python
b. Блокнот Jupyter
c. Колба
d. HTML
д. CSS
ж. JS
ж. Героку
з. Гитхаб

Библиотеки

a.Pandas
b.Scikit Learn
c.Numpy
d.Seaborn
e.Matpoltlib

2. Сбор данных

Для этого проекта мы использовали данные, доступные на kaggle (нажмите здесь для данных). Имеется 26 столбцов и 318851 строк. Это основной момент, связанный с набором данных.
url: URL-адрес, по которому извлекаются данные
id: идентификатор транзакции
Lng: и координаты широты с использованием протокола BD09.
Cid: идентификатор сообщества
tradeTime: время транзакции
DOM: активные дни на рынке
Followers: количество людей, следящих за транзакцией.
totalPrice: общая цена
цена: средняя цена за квадрат
площадь: площадь дома
гостиная: количество гостиных
гостиная: количество гостиных
кухня: количество комнат кухня
санузел номер санузла
этаж: высота дома. В следующей версии я переведу китайские иероглифы на английский язык.
Тип здания: включая башню (1), бунгало (2), комбинацию плиты и башни (3), плиту (4).
Время строительства: время строительства
ремонтСостояние: в том числе другое( 1 ), грубое( 2 ),Простота( 3 ), твердый переплет( 4 )
строительствоСостав: в том числе неизвестное( 1 ), смешанное( 2 ), кирпично-деревянное ( 3 ), кирпично-бетонный ( 4 ), стальной ( 5 ) и железобетонный композитный ( 6 ) Он описывает, сколько лестниц в среднем есть у жителя.
лифт: есть ( 1 ) или нет лифта ( 0 )
FiveYearsProperty: если владелец владеет недвижимостью менее 5 лет.

3. Общий поток проекта

4. ЭДА

А. Очистка данных

у нас есть 26 столбцов, из них нам не нужен какой-то столбец (например, url, id, cid), тогда мы выполним очистку данных, которая включает следующие шаги. наша целевая переменная — totalPrice
a. Вставить/удалить отсутствующие значения или пустые значения (NaN)
b. Удалите ненужные и поврежденные данные.
c. Анализ даты/текста при необходимости.

мы обрабатываем значение NAN, используя соответствующие решения.

Столбец DOM имеет значение более 50%, поэтому лучше удалить этот столбец.

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

У нас также есть категориальные данные, которые мы обрабатываем с помощью концепции переменных-пустышек. ниже приведены столбцы с категориальными данными.
a. состояние ремонта
б. зданиеСтруктура
c. тип здания
d. район
э. лифт
ж. тип_этажа

Краткое описание тепловой карты
а. totalPrice сильно коррелирует со средним значением по сообществу, площадью, ванной комнатой, гостиной и временем покупки.
б. totalprice сильно отрицательна в корреляции сladdRatio, lat и lng.

Резюме графика плотности
a. большинство выходных характеристик находится в диапазоне 0–2500

Сводка диаграммы рассеяния
а. Большинство последователей Дома 0–400.

Резюме диаграммы рассеяния относительно состояния ремонта
a. большинство дорогих домов имеют HardCover в качестве условия ремонта

Резюме линейного графика
а. Большинство людей в среднем лежат в пределах 12500–150000 …

B. Разработка функций

мы обнаружили выброс в наших данных..

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

используя разработку функций, мы получили 30 лучших функций по отношению к totalPrice.

Итак, это 20 основных функций нашей модели
а. время торговли
b. CommunityAverage
c. квадрат
д. гостиная
e. ванная комната
f. чертежная
g. ремонтСостояние
ч. зданиеСтруктура
i. лифт
j. Время строительства
k. Последователи

C. Нормализация данных

Нормализация (минимальная-максимальная нормализация)
В этом подходе мы уменьшаем масштаб функции от 0 до 1.

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

5. Выбор лучшей модели машинного обучения

Список моделей, которые мы можем использовать для решения нашей задачи
a. Модель линейной регрессии
b. Модель KNN
c. Дерево решений
d. Случайный лес

Используя линейную регрессию, мы получили только 75% точности.

Используя Random Forest, мы получили точность 98% для данных поезда и 89% для тестовых данных. Таким образом, мы можем рассматривать RandomForest как лучший алгоритм для этой проблемы.

6. Создание модели

Итак, используя RandomForest, мы получили хорошую точность, мы можем настроить гиперпараметр для максимальной точности.

Алгоритм, который можно использовать для настройки гиперпараметров:

а. GridSearchCV
б. RandomizedSearchCV
c. Байесовская оптимизация — автоматическая настройка гиперпараметров (Hyperopt)
d. Оптимизация на основе последовательной модели
e. Optuna-Automate Hyperparameter Tuning
f. Генетический алгоритм

Основные параметры, используемые алгоритмом RandomForest:

а. n_estimators — -› Количество деревьев в лесу.
б. критерий — -›{"mse", "mae"} →Функция для измерения качества разделения
c. max_features — -›{"auto", "sqrt", "log2"} → Количество функций, которые следует учитывать при поиске наилучшего разделения:

Итак, после настройки гиперпараметров мы получили точность 90% для тестовых данных и точность 94% для данных поезда.

Теперь точность модели кажется очень хорошей, поэтому мы можем сохранить модель с помощью рассола.

7. Развертывание модели

После создания модели мы интегрируем эту модель с красивым пользовательским интерфейсом. для пользовательского интерфейса мы использовали HTML, CSS, JS и Flask.

для пользовательского интерфейса мы использовали HTML, CSS, JS и Flask.

8. Заключение модели

Модель предсказывает с точностью 90 % по тестовым данным и с точностью 94 % по данным поезда.

9. Проектные инновации

а. Простота в использовании
b. с открытым исходным кодом
c. Наилучшая точность
d. Приложение с графическим интерфейсом

10. Ограничение и следующий шаг

Ограничения:-
а. Мобильное приложение
б. Точность может быть улучшена
c. Размер модели большой (~310 мб )
d. Функция ограничена

Следующий шаг: -
а. будем работать над мобильным приложением
b. мы уменьшим размер модели с помощью PCA.