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

Простая линейная регрессия: практическая реализация в Python

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

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

Простая линейная регрессия: практическая реализация в Python

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

6 шагов, чтобы построить линейную регрессию

Шаг 1: Импорт набора данных Шаг 2: Предварительная обработка данных Шаг 3: Распространение теста и наборов поездов Шаг 4: Установка линейной регрессии Модель на тренировочный набор Шаг 5: Прогноз результатов теста Шаг 6: Визуализация результатов теста

Теперь, когда мы видели шаги, давайте начнем с кодирования то же самое

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

В этой статье мы будем использовать набор набора заработной платы. Наш набор данных будет иметь 2 столбца, а именно – годы опыта и зарплаты.

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

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

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

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

dataset = pd.read_csv('Salary_Data.csv')
dataset.head()

dataset.head () Показывает первые несколько столбцов нашего набора набора данных. Выход вышеуказанного фрагмента заключается в следующем:

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

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

Теперь, когда мы импортировали набор данных, мы будем выполнять предварительную обработку данных.

X = dataset.iloc[:,:-1].values  #independent variable array
y = dataset.iloc[:,1].values  #dependent variable vector

Х является независимым переменным массивом и y Является зависимым вектором переменной. Обратите внимание на разницу между массивом и вектором. Зависимая переменная должна находиться в векторе, а независимая переменная должна быть самой массивом.

3. Разделение набора данных

Нам нужно разделить наш набор набора данных в тест и набор поездов. Как правило, мы следуем политике 20-80 или политику 30-70 соответственно.

Почему необходимо выполнить расщепление? Это потому, что мы хотим тренировать нашу модель в соответствии с годами и зарплатой. Затем мы проверим нашу модель на тестовом наборе.

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

Если это соответствует, он подразумевает, что наша модель точна и делает правильные прогнозы.

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

Нам не нужно применять масштабирование функций для линейной регрессии, поскольку библиотеки позаботятся об этом.

4. Установка линейной регрессии в учебный набор

Из линейной модели модельной модели Sklearn импортируют линейный класс регрессии. Создайте объект для линейного регрессионного класса под названием Regressor.

Чтобы подписать регресс в тренировочный набор, мы позвоним метод FIT – функцию, чтобы соответствовать регрессаму в учебный набор.

Нам нужно соответствовать X_Train (учебные данные матрицы функций) в целевые значения y_train. Таким образом, модель изучает корреляцию и узнает, как предсказать зависимые переменные на основе независимой переменной.

from sklearn.linear_model import LinearRegression
regressor = LinearRegression()
regressor.fit(X_train,y_train) #actually produces the linear eqn for the data
Изображение 60.

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

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

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

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

y_test реальная зарплата испытательного набора. Y_PRED предсказанные зарплаты.

Визуализируя результаты

Посмотрим, как будут выглядеть результаты нашего кода, когда мы его визуализируем.

1. Построение точек (наблюдения)

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

Оси X будет иметь многолетний опыт, а ось Y будет иметь прогнозируемые зарплаты.

plt.scatter графики рассеивания графика данных. Параметры включают в себя:

  1. X – координата (x_train: количество лет)
  2. Y – координата (Y_Train: реальная зарплата сотрудников)
  3. Цвет (линия регрессии в красной и наблюденной линии в синем)

2. Построение линии регрессии

PLT.PLOT имеют следующие параметры:

  1. X координаты (X_TRAIN) – количество лет
  2. Y координаты (прогнозируют на X_TRAIN) – прогноз X-поезда (в зависимости от нескольких лет).

Примечание: y-координата не Y_PRED, потому что Y_PRED предсказана заработная плата наблюдения набора теста.

#plot for the TRAIN

plt.scatter(X_train, y_train, color='red') # plotting the observation line

plt.plot(X_train, regressor.predict(X_train), color='blue') # plotting the regression line

plt.title("Salary vs Experience (Training set)") # stating the title of the graph

plt.xlabel("Years of experience") # adding the name of x-axis
plt.ylabel("Salaries") # adding the name of y-axis
plt.show() # specifies end of graph

Приведенный выше код генерирует график для набора поезда, показанный ниже:

Изображение 63.
#plot for the TEST

plt.scatter(X_test, y_test, color='red') 
plt.plot(X_train, regressor.predict(X_train), color='blue') # plotting the regression line

plt.title("Salary vs Experience (Testing set)")

plt.xlabel("Years of experience") 
plt.ylabel("Salaries") 
plt.show() 

Приведенный выше фрагмент кода генерирует график, как показано ниже:

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

Полный код Python для реализации линейной регрессии

# importing the dataset
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
 
dataset = pd.read_csv('Salary_Data.csv')
dataset.head()

# data preprocessing
X = dataset.iloc[:, :-1].values  #independent variable array
y = dataset.iloc[:,1].values  #dependent variable vector

# splitting the dataset
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=1/3,random_state=0)

# fitting the regression model
from sklearn.linear_model import LinearRegression
regressor = LinearRegression()
regressor.fit(X_train,y_train) #actually produces the linear eqn for the data

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

y_test

# visualizing the results
#plot for the TRAIN
 
plt.scatter(X_train, y_train, color='red') # plotting the observation line
plt.plot(X_train, regressor.predict(X_train), color='blue') # plotting the regression line
plt.title("Salary vs Experience (Training set)") # stating the title of the graph
 
plt.xlabel("Years of experience") # adding the name of x-axis
plt.ylabel("Salaries") # adding the name of y-axis
plt.show() # specifies end of graph

#plot for the TEST
 
plt.scatter(X_test, y_test, color='red') 
plt.plot(X_train, regressor.predict(X_train), color='blue') # plotting the regression line
plt.title("Salary vs Experience (Testing set)")
 
plt.xlabel("Years of experience") 
plt.ylabel("Salaries") 
plt.show() 

Выход вышеуказанного фрагмента кода, как показано ниже:

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

Заключение

Мы подошли к концу этой статьи о простой линейной регрессии. Надеюсь, вам понравился наш пример и попробовал также кодировать модель. Дайте нам знать ваши отзывы в разделе «Комментарий» ниже.

Если вы заинтересованы в большем количестве моделей регрессии, прочитайте несколько моделей линейной регрессии.