Множественная линейная регрессия — это статистический метод, который позволяет нам изучать взаимосвязь между двумя или более непрерывными (количественными) переменными, в отличие от того, что мы говорим в случае простой линейной регрессии:
• Одна переменная, обозначенная y, рассматривается как реакция, результат или зависимая переменная.
• Две или более переменных, обозначенных x1, x2, …, xn, рассматриваются как предикторы, объясняющие или независимые переменные.
Целью множественной линейной регрессии является найти строку, которая лучше всего соответствует данным. Линия описывается уравнением вида:
y = b0 + b1x1 + b2x2 + … + bn*xn
где:
• y — переменная отклика.
• x1, x2, …, xn — переменные-предикторы.
• b0 — точка пересечения с осью y.
• b1, b2, …, bn — наклоны.
Наклон bi представляет изменение в y для каждого изменения xi на одну единицу при неизменности всех остальных предикторов.

Y-отрезок b0 представляет значение y, когда все переменные-предикторы равны нулю.
давайте сделаем это более наглядным и понятным, взглянув на всю эту теорию с практической точки зрения (код)

Шаг 1: Импорт необходимых библиотек
Прежде всего нам нужно будет импортировать необходимые библиотеки, которые помогут нам построить нашу модель.

# Importing the libraries
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

шаг 2: Импортируйте данные и обработайте их.
Двигаясь дальше, давайте импортируем наш набор данных. вы можете получить набор данных здесь
нам нужно будет очистить наши данные и разделить их на зависимые и независимые наборы данных

# Importing the dataset
dataset = pd.read_csv('50_Startups.csv')

#independent data set
X = dataset.iloc[:, :-1].values

#dependent data set 
y = dataset.iloc[:, -1].values

#displaying the independent variables 
print(X)

#display the dependent set
print(y)

шаг 3: Кодирование категориальных данных

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

from sklearn.compose import ColumnTransformer

# import the oneHOtEncode class
from sklearn.preprocessing import OneHotEncoder

#create the encoder object 
ct = ColumnTransformer(transformers=[('encoder', OneHotEncoder(), [3])], remainder='passthrough')

#encode the 3rd column of the independent variables X
X = np.array(ct.fit_transform(X))

#print out the new set of independent variable
print(X)

шаг 3: разделение данных на обучающий набор и тестовый набор
разделить набор данных на четыре набора 2 набора поездов (обучающий набор независимых и зависимых переменных) и два тестовых набора (проверочный набор независимых и зависимых переменных).

# Splitting the dataset into the Training set and Test set
from sklearn.model_selection import train_test_split
#0.2 indicates 20% of data for test set 
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state = 0)

шаг 4. Обучение модели множественной линейной регрессии на обучающем наборе.
Теперь давайте перейдем к обучению нашей модели на основе нашего разделенного обучающего набора.
здесь мы по-прежнему будем использовать класс, который мы видели раньше это класс «LinearRegressor»

#import the linearregressor class 
from sklearn.linear_model import LinearRegression

#creating an instance of the linear regressor class
regressor = LinearRegression()

#train the model on the training data sets 
regressor.fit(X_train, y_train)

шаг 5: предскажите результат набора тестов
теперь мы будем использовать наш обученный модуль для предсказания значений в y_test

#  predict the response of the test set based on our trained moddel
y_predict = regressor.predict(x_test)

# create a dataframe to view our prediction and the actual array in the test set
prediction_df = pd.DataFrame({'Actual': y_test, 'Predicted': y_predict})

#display data
prediction_df

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

Краткое содержание:

В этом примере мы используем набор данных 50_Startups.csv, который содержит пять столбцов: "Расходы на исследования и разработки", "Администрирование", "Расходы на маркетинг", "Состояние" и "Прибыль". Мы пытаемся предсказать прибыль стартапа на основе значений других столбцов. Мы разделяем набор данных на обучающий набор и тестовый набор, а затем обучаем модель на обучающем наборе, используя класс LinearRegression из библиотеки scikit-learn. Наконец, мы используем обученную модель для прогнозирования прибыли стартапов в тестовом наборе и используем обратное исключение для построения оптимальной модели.
вы можете найти полный код на GitHub
.

не стесняйтесь связаться со мной на LinkedIn