Множественная регрессия (с использованием машинного обучения – как построить график данных)

Вопрос или проблема

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

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

Я использовал этот код:

x_train, x_test, y_train, y_test = tts(xx1, y, test_size=3)

Результат: LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None,
         normalize=False)

regr.fit(x_train, y_train)

Результат: ничего

regr.predict(x_test)

Результат: array([2.37671029, 3.91651234, 2.98472475])

np.mean((regr.predict(x_test) - y_test) ** 2)

Результат: 2.976924398032532e-26

Как я могу отобразить фактические значения зависимой переменной и предсказанные значения на одном графике?

Возможно, есть и лучший способ, но одним из способов является использование разных эстетик графика для отображения переменной. Я использовал Python и библиотеку plotnine, которая, как я понимаю, пытается имитировать ggplot2 из R.

from plotnine import *
# df - это датафрейм, который содержит все переменные в виде колонок
(ggplot(df, aes('actual_value', 'predicted_value',
color="(dependent_var2)",
size="dependent_var3",alpha="dependent_var4",shape="factor(dependent_var5)"))
+ geom_point()
+theme(legend_title=element_text(size=8),
legend_text=element_text(size=4)
)

Это даст вам следующий график:
введите описание изображения здесь

Ответ или решение

Для решения задачи, связанной с построением графика множественной линейной регрессии с использованием машинного обучения, необходимо выполнить несколько шагов. Мы рассмотрим, как подготовить данные, обучить модель, предсказать значения и визуализировать результаты. В следующем примере мы будем использовать библиотеки pandas, scikit-learn, и matplotlib для обработки данных и визуализации.

Шаг 1: Подготовка данных

Во-первых, убедитесь, что у вас есть данные, содержащие зависимую переменную (например, цены на квартиры) и пять независимых переменных (этаж, год постройки, количество комнат, площадь, цена за квадратный метр). Предположим, что у вас есть DataFrame под названием df, содержащий эти данные.

Шаг 2: Разделение данных на обучающую и тестовую выборки

import pandas as pd
from sklearn.model_selection import train_test_split

# Предположим, что df - ваш DataFrame
X = df[['floor', 'builtyear', 'roomnumber', 'square_meter', 'kr_per_sqm']]
y = df['price']

# Разделяем данные на обучающую и тестовую выборки
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

Шаг 3: Обучение модели множественной линейной регрессии

from sklearn.linear_model import LinearRegression

# Создаем объект линейной регрессии и обучаем его
model = LinearRegression()
model.fit(X_train, y_train)

# Предсказание значений для тестовой выборки
y_pred = model.predict(X_test)

Шаг 4: Визуализация результатов

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

import matplotlib.pyplot as plt

# Построение графика
plt.figure(figsize=(10, 6))
plt.scatter(y_test, y_pred, color='blue', alpha=0.6, label='Предсказанные значения')
plt.plot([y.min(), y.max()], [y.min(), y.max()], 'r--', lw=2, label='Линия идеальных прогнозов')
plt.xlabel('Фактические значения')
plt.ylabel('Предсказанные значения')
plt.title('Сравнение фактических и предсказанных значений')
plt.legend()
plt.grid()
plt.show()

Шаг 5: Анализ результатов

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

Заключение

Таким образом, с помощью Python и его библиотек вы можете легко создать модель множественной линейной регрессии, делать предсказания и визуализировать результаты. Если у вас возникнут дополнительные вопросы, не стесняйтесь спрашивать!

Оцените материал
Добавить комментарий

Капча загружается...