Целью данного исследования является создание модели машинного обучения, которая прогнозирует цену домов с использованием регрессора случайного леса. Набор данных, используемый для этого исследования, представляет собой набор данных Melbourne Housing от Kaggle. Эта статья является продолжением предыдущего исследования, посвященного использованию Python в исследовательском анализе данных (EDA). Статью EDA можно найти по этой ссылке Исследовательский анализ цен на жилье в Мельбурне.

Шаг 1: Импорт библиотек и набора данных

Шаг 2: ЭДА

Рассмотрено в статье Исследовательский анализ данных о ценах на жилье в Мельбурне.

Шаг 3: Предварительная обработка данных

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

В кадре данных 22 столбца, но не все из них будут использоваться для построения модели. Например, сводка категориальных столбцов, как показано ниже, указывает на то, что только 3 из 7 переменных будут полезны для модели. 'Тип', 'Метод' и 'Имя региона' являются хорошими переменными, поскольку их уникальные значения лаконичны, но столбцы 'Пригород', 'Адрес', 'SellerG' и 'CouncilArea' ненадежны из-за большого количества уникальных значений. .

Назначить независимые переменные (X)

Столбцы, которые не были нужны для построения модели, вместе со столбцом «Цена», который является нашей целью, были удалены из фрейма данных, а оставшиеся столбцы были назначены независимой переменной X.

Категориальные переменные в наборе данных X были преобразованы в числовые переменные с помощью метода «pd.get_dummies()».

Назначить целевую переменную (y)

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

Использование ценовых данных все равно создаст хорошую модель. Но если мы хотим создать лучшую модель, мы можем создать новый столбец во фрейме данных с именем «Log_Price», а затем назначить ему логарифм цены, который даст распределение, близкое к нормальному. Таким образом, нашей новой целевой переменной (y) станет переменная Log_Price.

Шаг 4: Построить модель

Теперь, когда наша независимая и целевая переменная определена, мы можем построить нашу модель. Но сначала мы должны разделить наши данные на набор данных для обучения и тестирования, используя «train_test_split» SKLearn, присвоив параметру «test_size» значение 0,3, данные разбиваются на 70% для обучения модели и 30% для проверки точности модели.

Следующим шагом является импорт регрессора случайного леса из ансамбля sklearn, построение нашей модели, а затем обучение модели с использованием метода model.fit(). Когда процесс обучения завершен, мы можем быстро проверить производительность модели, используя метод model.score(). Это действие показывает, что точность прогнозов модели для набора данных поезда и набора тестовых данных составила 98% и 87% соответственно.

Шаг 5: Оценка модели

Хотя у нас уже есть представление о производительности нашей модели, есть и другие показатели, которые можно использовать для правильной оценки производительности модели. Коэффициент детерминации, обозначаемый как R-квадрат, средняя абсолютная ошибка (MAE) и среднеквадратическая ошибка (MSE) являются хорошими показателями для определения точности и погрешности модели.

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

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

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