Читать книгу Искусственный интеллект. Машинное обучение онлайн
Описание задачи:
Представим, что у нас есть набор данных, содержащий информацию о различных характеристиках недвижимости (площадь, количество комнат, удаленность от центра и т. д.), а также цена, по которой эта недвижимость была продана. Наша задача – научиться предсказывать цену новых объектов недвижимости на основе их характеристик.
Ход решения:
1. Подготовка данных: Загрузим и предобработаем данные, разделим их на обучающий и тестовый наборы.
2. Выбор модели: Используем линейную регрессию в качестве базовой модели для прогнозирования цен на недвижимость.
3. Обучение модели: Применим метод градиентного спуска для обучения модели линейной регрессии. Мы будем минимизировать среднеквадратичную ошибку (MSE) между фактическими и предсказанными значениями цен.
4. Оценка модели: Оценим качество модели на тестовом наборе данных с помощью различных метрик, таких как средняя абсолютная ошибка (MAE), средняя квадратичная ошибка (MSE) и коэффициент детерминации (R^2).
Пример кода:
```python
# Шаг 1: Подготовка данных
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
# Загрузка данных
data = pd.read_csv('real_estate_data.csv')
# Предобработка данных
X = data.drop(columns=['price'])
y = data['price']
# Разделение на обучающий и тестовый наборы
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Масштабирование признаков
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)
# Шаг 2 и 3: Выбор и обучение модели
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
from sklearn.metrics import mean_absolute_error
# Создание и обучение модели линейной регрессии
model = LinearRegression()
model.fit(X_train_scaled, y_train)
# Оценка качества модели на тестовом наборе данных
y_pred = model.predict(X_test_scaled)
mse = mean_squared_error(y_test, y_pred)
mae = mean_absolute_error(y_test, y_pred)