Вопрос или проблема
Мне интересно, как я могу использовать машинное обучение для построения множественной линейной регрессии на графике. У меня есть одна зависимая переменная (цены на квартиры) и пять независимых (этаж, год постройки, количество комнат, квадратные метры, цена за квадратный метр).
Задача заключается в том, чтобы сначала использовать машинное обучение для получения предсказанных значений и фактических значений. Затем вам нужно построить эти значения на графике.
Я использовал этот код:
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 и его библиотек вы можете легко создать модель множественной линейной регрессии, делать предсказания и визуализировать результаты. Если у вас возникнут дополнительные вопросы, не стесняйтесь спрашивать!