Рубрики
Без рубрики

Несколько линейной регрессии: быстрое введение

Добро пожаловать в этот учебник по нескольким линейной регрессии. Мы посмотрим в концепцию множественной линейной регрессии и его использование в машинном обучении.

Автор оригинала: Pankaj Kumar.

Добро пожаловать в этот учебник по нескольким линейной регрессии. Мы посмотрим в концепцию множественной линейной регрессии и его использование в машинном обучении.

Раньше мы погрузимся в концепцию множественной линейной регрессии, позвольте мне представить вам концепцию простой линейной регрессии.

Оглавление

  • Что такое простая линейная регрессия?
  • Что такое несколько линейной регрессии?
  • Шаги по созданию нескольких линейной модели регрессии
    • Шаг 1: Определить переменные
    • Шаг 2: Проверьте пещету/предположения
    • Шаг 3: Создание фиктивных переменных
    • Шаг 4: Избегание фиктивной переменной ловушки
    • Шаг 5: Наконец, построение модели
  • Реализация многолинейной регрессии в Python
    • Импорт набора данных
    • Предварительная обработка данных
    • Прогнозировать результаты испытаний
  • Полный код для нескольких линейной регрессии в Python
  • Заключение

Что такое простая линейная регрессия?

Регрессия – это технология машинного обучения для прогнозирования значений из данных данных.

Например, рассмотрите набор данных о деталях сотрудников и их зарплату.

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

Простой линейной регрессией мы получаем лучшую подходящую линию для данных и на основе этой строки наши значения прогнозируются. Уравнение этой линии выглядит следующим образом:

y = b0 + b1 * x1

В приведенном выше уравнении Y – зависимая переменная, которая предсказана с использованием независимой переменной X1. Здесь B0 и B1 являются константами.

Что такое несколько линейной регрессии?

Множественная линейная регрессия – это расширение простой линейной регрессии, в которой модель зависит от более чем 1 независимой переменной для результатов предсказания. Наше уравнение для нескольких линейных регрессиров выглядит следующим образом:

y = b0 + b1 *x1 + b2 * x2 + .... + bn * xn

Здесь Y зависимая переменная и X1, X2, .. xn – наши независимые переменные, которые используются для прогнозирования значения y. Такие значения, как B0, B1, … BN действует как константы.

Шаги по созданию нескольких линейной модели регрессии

Есть 5 шагов, которые нам нужно выполнить перед созданием модели. Эти шаги объяснены ниже:

Шаг 1: Определить переменные

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

Не понимая зависимые переменные, модель, которую вы построете, будет отходом, поэтому убедитесь, что вы проводите достаточно времени, чтобы правильно идентифицировать переменные.

Шаг 2: Проверьте пещету/предположения

Очень важно отметить, что есть 5 допущений для создания нескольких линейных регрессии. Это следующие:

  • Линейность
  • Гомоскопарастичность
  • Многомерная нормальность
  • Независимость ошибок
  • Отсутствие многоколлинеареации

Шаг 3: Создание фиктивных переменных

Предположим, я хочу проверить связь между зависимыми и независимыми переменными, фиктивные переменные входят в картину.

Мы создаем фиктивные переменные, где есть категорические переменные. Для этого мы создадим столбец с 0s и 1s. Например, у нас есть имена нескольких государств, а наш набор данных имеет всего 2 а именно Нью-Йорк и Калифорния. Мы представляем Нью-Йорк как 1 и Калифорния как 0. Это 0 и 1 – наши фиктивные переменные.

Шаг 4: Избегание фиктивной переменной ловушки

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

Феномен, где один или несколько переменных в линейной регрессии прогнозируют другое, часто называют многоколлинеарностью. В результате этого могут быть сценарии, где наша модель может не удалить эффекты фиктивных переменных D1 и D2. Эта ситуация – фиктивная переменная ловушка.

Решение этой проблемы может быть, опуская одну из фиктивных переменных. В приведенном выше примере Нью-Йорка и Калифорнии вместо 2 столбцов именно Нью-Йорк и Калифорния, мы могли бы обозначить его как 0 и 1 в одном столбце, как показано ниже.

Изображение 29.

Шаг 5: Наконец, построение модели

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

Кроме того, имейте в виду, когда вы создаете модель, необходимо представлять модели пользователей. Это относительно трудно объяснить слишком много переменных.

Есть 5 методов, которые вы можете следовать при создании моделей. Есть поэтапные регрессионные методы:

  • Все в
  • Обратное устранение
  • Выбор вперед
  • Двунаправленное устранение
  • Сравнение спецификации

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

Реализация многолинейной регрессии в Python

Давайте рассмотрим набор данных, который показывает прибыль, сделанную 50 запусками. Мы будем работать над библиотекой MatPlotlib.

Ссылка на набор данных – https://github.com/content-anu/dataset-multiple-regression.

Импорт набора данных

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

dataset = pd.read_csv('50_Startups.csv')
dataset.head()
Изображение 35.

Таким образом, в вышеупомянутой выборке данных набора данных мы замечаем, что существует 3 независимых переменных – R & D Traft, администрирование и маркетинговые расходы.

Они способствуют расчету зависимой переменной – прибыль.

Роль данных ученого состоит в том, чтобы проанализировать инвестиции, сделанные, в которых из этих областей повысит прибыль для компании?

Предварительная обработка данных

Строительство матрицы функций и зависимого вектора Отказ

Здесь матрица функций – матрица независимых переменных.

X = dataset.iloc[:,:-1].values
y = dataset.iloc[:,4].values

Кодирование категорических переменных

У нас есть категорические переменные в этой модели. «Состояние» – это категорическая переменная. Мы будем использовать encoder этикетки.

from sklearn.preprocessing import LabelEncoder, OneHotEncoder
labelEncoder_X = LabelEncoder() 
X[:,3] = labelEncoder_X.fit_transform(X[ : , 3])

from sklearn.compose import ColumnTransformer
ct = ColumnTransformer([('encoder', OneHotEncoder(), [3])], remainder='passthrough')
X = np.array(ct.fit_transform(X), dtype=np.float)

Мы выполнили кодировку метки сначала, потому что одна горячая кодировка может быть выполнена только после преобразования в числовые данные. Нам нужны номера для создания фиктивных переменных.

Избегая фиктивной переменной ловушки

В следующем коде мы удалили первый столбец из X, но поставьте все строки. Мы игнорируем только индекс 0. Это следует избегать фиктивной переменной ловушки.

X = X[:, 1:]

Разделение теста и набора поезда

Как правило, мы рассмотрим 20% набора данных, чтобы быть тестовым набором и 80%, чтобы быть набором тренировок. С помощью учебного набора мы имеем в виду, мы тренируем нашу модель в соответствии с этими параметрами и выполняем тест на «тестовый набор» и проверьте, если вывод нашего тестирования соответствует выходу, приведенному в наборе данных ранее.

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state = 0)

Подходящая модель

from sklearn.linear_model import LinearRegression
regressor = LinearRegression()
regressor.fit(X_train, y_train) 

Выход вышеуказанного кодового фрагмента будет небольшая строка ниже.

Изображение 36.

Прогнозировать результаты испытаний

Мы создаем вектор, содержащий все прогнозы тестовой прибыли. Прогнозируемая прибыль затем вкладывается в вектор, называемый Y_PRED. (Содержит прогноз для всех наблюдений в тестовом наборе).

Метод «Предсказ» делает прогнозы для тестового набора. Следовательно, вход – это тестовый набор. Параметр для прогнозирования должен быть массив или редкая матрица, следовательно, вход – X_TEST.

y_pred = regressor.predict(X_test)
y_test
Изображение 37.
y_pred
Изображение 38.

Модель-подходит до сих пор не должна быть оптимальной моделью для набора данных. Когда мы построили модель, мы использовали все независимые переменные.

Но что, если среди этих независимых переменных есть некоторые статистически значимые (имеющие большое влияние) зависимых переменных?

Что если у нас также есть некоторые переменные, которые вообще не значимы?

Следовательно, нам нужна оптимальная команда независимых переменных, так что каждая независимая переменная является мощной и статистически значимой и определенно имеет эффект.

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

Мы будем выполнять обратное устранение с использованием модели статистики. Но эта тема не будет обсуждаться в этой статье.

Полный код для нескольких линейной регрессии в Python

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
 
dataset = pd.read_csv('50_Startups.csv')
dataset.head()

# data preprocessing
X = dataset.iloc[:,:-1].values
y = dataset.iloc[:,4].values

from sklearn.preprocessing import LabelEncoder, OneHotEncoder
labelEncoder_X = LabelEncoder() 
X[:,3] = labelEncoder_X.fit_transform(X[ : , 3])
 
from sklearn.compose import ColumnTransformer
ct = ColumnTransformer([('encoder', OneHotEncoder(), [3])], remainder='passthrough')
X = np.array(ct.fit_transform(X), dtype=np.float)

	
X = X[:, 1:]

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state = 0)

# Fitting the model
from sklearn.linear_model import LinearRegression
regressor = LinearRegression()
regressor.fit(X_train, y_train) 

# predicting the test set results
y_pred = regressor.predict(X_test)
 
y_test

y_pred

Вывод будет предсказания следующим образом:

Изображение 58.

Заключение

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