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

Оглавление

  1. Введение
  2. Создание примера набора данных
  3. Предварительная обработка данных
  4. Обучение регрессионной модели
  5. Оценка модели
  6. Заключение

1. Введение

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

В этой статье мы будем использовать Python и библиотеку Scikit-Learn для прогнозирования цен на жилье на основе таких характеристик, как площадь, количество спален и возраст дома.

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

2. Создание примера набора данных

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

import pandas as pd

data = {
    'square_feet': [800, 1200, 1500, 1800, 2200, 2500, 2700, 3000, 3500, 4000],
    'bedrooms': [2, 3, 3, 4, 4, 4, 5, 5, 6, 6],
    'age': [15, 10, 5, 2, 10, 12, 20, 25, 30, 35],
    'price': [150000, 220000, 300000, 380000, 450000, 510000, 570000, 640000, 720000, 820000]
}
df = pd.DataFrame(data)
print(df)

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

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

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

from sklearn.preprocessing import StandardScaler

X = df.drop('price', axis=1)
y = df['price']
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

Входные объекты были масштабированы, чтобы иметь среднее значение 0 и стандартное отклонение 1.

4. Обучение регрессионной модели

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

from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression

X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.2, random_state=42)
reg = LinearRegression()
reg.fit(X_train, y_train)
y_pred = reg.predict(X_test)

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

5. Оценка модели

Оценка производительности нашей модели имеет решающее значение для определения ее эффективности в прогнозировании цен на жилье. Мы будем использовать среднюю абсолютную ошибку (MAE) и показатель R-квадрата (R²) для оценки производительности модели.

from sklearn.metrics import mean_absolute_error, r2_score

mae = mean_absolute_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)
print(f"Mean Absolute Error: {mae:.2f}")
print(f"R-squared Score: {r2:.2f}")

Выход:

Mean Absolute Error: 22500.00
R-squared Score: 0.97

Чем ниже MAE, тем лучше модель прогнозирует цены на жилье. Оценка R² указывает долю дисперсии зависимой переменной, которую можно предсказать по независимым переменным. Оценка 0,97 означает, что наша модель объясняет 97% изменчивости цен на жилье, что является отличным результатом для нашего примера.

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

6. Заключение

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

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