Автор оригинала: 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 ()
Показывает первые несколько столбцов нашего набора набора данных. Выход вышеуказанного фрагмента заключается в следующем:
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
5. Прогнозировать результаты испытаний
Мы создаем вектор, содержащий все прогнозы заработной платы испытаний. Прогнозируемая зарплата затем вкладывается в вектор, называемый Y_PRED
, (содержит прогноз для всех наблюдений в тестовом наборе)
прогнозировать
Метод делает прогнозы для тестового набора. Следовательно, вход – это тестовый набор. Параметр для прогнозирования должен быть массив или редкая матрица, следовательно, вход – X_TEST.
y_pred = regressor.predict(X_test) y_pred
y_test
y_test
реальная зарплата испытательного набора. Y_PRED
предсказанные зарплаты.
Визуализируя результаты
Посмотрим, как будут выглядеть результаты нашего кода, когда мы его визуализируем.
1. Построение точек (наблюдения)
Чтобы визуализировать данные, мы сюжет графики с помощью MATPLOTLIB. Чтобы построить реальные точки наблюдения, то есть построение реальных заданных ценностей.
Оси X будет иметь многолетний опыт, а ось Y будет иметь прогнозируемые зарплаты.
plt.scatter
графики рассеивания графика данных. Параметры включают в себя:
- X – координата (x_train: количество лет)
- Y – координата (Y_Train: реальная зарплата сотрудников)
- Цвет (линия регрессии в красной и наблюденной линии в синем)
2. Построение линии регрессии
PLT.PLOT имеют следующие параметры:
- X координаты (X_TRAIN) – количество лет
- 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
Приведенный выше код генерирует график для набора поезда, показанный ниже:
#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()
Приведенный выше фрагмент кода генерирует график, как показано ниже:
Полный код 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()
Выход вышеуказанного фрагмента кода, как показано ниже:
Заключение
Мы подошли к концу этой статьи о простой линейной регрессии. Надеюсь, вам понравился наш пример и попробовал также кодировать модель. Дайте нам знать ваши отзывы в разделе «Комментарий» ниже.
Если вы заинтересованы в большем количестве моделей регрессии, прочитайте несколько моделей линейной регрессии.