Множественная регрессия
В этой статье мы подробно рассмотрим множественную линейную регрессию — мощный метод машинного обучения для прогнозирования непрерывных числовых значений на основе нескольких переменных-предикторов. С помощью Python мы построим и проанализируем модель, способную предсказывать числовой результат на основе нескольких входных признаков.
Что такое множественная линейная регрессия?
Линейная регрессия — это метод, используемый для моделирования зависимости между зависимой переменной и одной или несколькими независимыми переменными. Когда независимая переменная только одна, метод называется простой линейной регрессией. Однако, когда независимых переменных несколько, он называется множественной линейной регрессией.
В множественной линейной регрессии цель состоит в том, чтобы найти линию наилучшего соответствия, которая предсказывает зависимую переменную на основе независимых переменных. Эта линия определяется путем минимизации суммы квадратов расстояний между наблюдаемыми и предсказанными значениями. Коэффициенты линии отражают связь между каждой независимой переменной и зависимой переменной, а свободный член представляет ожидаемое значение зависимой переменной при условии, что все независимые переменные равны нулю.
Набор данных
Для иллюстрации множественной линейной регрессии мы будем использовать набор данных California Housing, содержащий информацию о недвижимости в Калифорнии. Набор данных включает 20 640 образцов и 8 признаков, а зависимой переменной выступает медианная стоимость дома (в сотнях тысяч долларов).
from sklearn.datasets import fetch_california_housing
housing = fetch_california_housing()
X = housing.data
y = housing.target
feature_names = housing.feature_namesПредобработка данных
Прежде чем строить модель, необходимо выполнить предобработку данных. Это включает разделение данных на обучающую и тестовую выборки, а также масштабирование признаков, чтобы обеспечить их равный вклад в модель.
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
# Split data into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Scale features
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)Построение модели
После предобработки данных мы можем приступить к построению модели множественной линейной регрессии. Мы будем использовать класс LinearRegression из библиотеки scikit-learn, который предоставляет простой и эффективный способ реализации алгоритма.
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X_train_scaled, y_train)Метод .fit() вычисляет оптимальные коэффициенты, которые минимизируют сумму квадратов остатков.
Оценка модели
Для оценки производительности модели мы будем использовать две метрики: среднеквадратичную ошибку (MSE) и коэффициент детерминации (R²).
from sklearn.metrics import mean_squared_error, r2_score
y_pred = model.predict(X_test_scaled)
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)
print(f"Mean Squared Error: {mse:.4f}")
print(f"R-squared: {r2:.4f}")MSE измеряет среднюю квадратичную разницу между предсказанными и фактическими значениями, а R² показывает долю дисперсии зависимой переменной, объясненную моделью.
Интерпретация коэффициентов модели
Коэффициенты модели отражают связь между каждой независимой переменной и зависимой переменной. Положительный коэффициент указывает на то, что переменная оказывает положительное влияние на зависимую переменную, а отрицательный коэффициент — на противоположное.
for name, coef in zip(feature_names, model.coef_):
print(f"{name}: {coef:.4f}")Изучая эти значения, вы можете определить, какие признаки оказывают наибольшее влияние на целевую переменную.
Заключение
В этой статье мы рассмотрели концепцию множественной линейной регрессии и то, как она может использоваться для прогнозирования непрерывного числового результата на основе нескольких переменных-предикторов. Мы использовали Python и библиотеку scikit-learn для построения и оценки модели множественной линейной регрессии на наборе данных California Housing. Результаты показывают, что модель способна предсказывать медианную стоимость домов с приемлемой точностью, а коэффициенты дают представление о взаимосвязи между независимыми и зависимой переменными.