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

Что такое простая линейная регрессия в мире машинного обучения?

Эта статья была первоначально опубликована в Codeperfectplus. Вступление Термин регрессия … Помечено машинным обучением, питоном, информатикой, наукой данных.

Алгоритмы машинного обучения (4 серии деталей)

Эта статья была первоначально опубликована в Codeperfectplus Анкет

Вступление

Термин регрессия был впервые применен к статистике полиматом Фрэнсисом Гальтоном. Гальтон является основной фигурой в разработке статистики и генетики.

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

Простая линейная регрессия

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

Например: взаимосвязь между часами обучения и полученными оценками. Цель состоит в том, чтобы найти взаимосвязь между часами обучения и оценками, полученными студентом. Для этого мы должны найти линейное уравнение между этими двумя переменными.

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

Для поиска наилучшего значения линии подгонки BO и B1 должно быть, что минимизировать ошибку. Возврат – это разница между прогнозируемым и фактическим выводом.

Предположения о простой линейной регрессии

Простая линейная регрессия является параметрическим тестом, что означает, что он делает определенные предположения о данных. Эти предположения:

  • Одногенность дисперсии (гомоскедастичность): размер ошибки в нашем прогнозировании существенно не меняется по значениям независимой переменной.
  • Независимость наблюдений: наблюдения в наборе данных были собраны с использованием статистически достоверных методов отбора проб, и между наблюдениями не существует скрытых отношений.
  • Нормальность: Данные следует нормальному распределению.
  • Связь между независимой и зависимой переменной является линейной: линия наилучшего соответствия через точки данных – это прямая линия (а не кривая или какой -то коэффициент группировки). Если ваши данные не соответствуют предположениям о гомоскедастичности или нормальности, вместо этого вы можете использовать непараметрический тест, такой как тест Rank Spearman.

Пример линейной регрессии

Давайте теперь применим машинное обучение для обучения набора данных, чтобы предсказать Зарплата от Годы опыта .

Загрузите набор данных из GitHub

Импорт библиотек и наборов данных

В коде будут использоваться три библиотеки Python.

  • Панды
  • matplotlib
  • Sklearn
## Importing the necessary Libraries
import pandas as pd
import matplotlib.pyplot as plt

## Importing the datasert
data = pd.read_csv("https://raw.githubusercontent.com/codePerfectPlus/DataAnalysisWithJupyter/master/SalaryVsExperinceModel/Salary.csv")
X = data.iloc[:, :-1].values
y = data.iloc[:, -1].values
data.head()

Разделите данные

На этом этапе разделите набор данных на обучающий набор, на котором будет обучена линейная регрессионная модель, и тестовый набор, на котором будет применена обученная модель для визуализации результатов. В этом test_size = 0,3 обозначает это 30% данных будет храниться как Тестовый набор и оставшиеся 70% будет использоваться для обучения как Обучающий набор .

## Splitting the dataset into the Training set and Test set
from sklearn.model_selection import train_test_split
train_X, test_X, train_y, test_y = train_test_split(X, y, test_size = 0.3, random_state=12)

Подходят и предскажите

Импорт Линейная регрессия от linear_model и назначил его переменной LR. lr.fit () Используется учиться на данных и lr.predict () используется для прогнозирования основы на данных обучения.

## Fit and Predict Model
from sklearn.linear_model import LinearRegression
lr = LinearRegression()
lr.fit(train_X, train_y)

predicted_y = lr.predict(test_X)

Оценить и визуализировать

Создайте DataFrame Pandas прогнозирования и фактических значений и визуализируйте набор данных.

df = pd.DataFrame({'Real Values':test_y,"Predict Value":predicted_y})
df.head()

## Step 6: Visualising the Test set results

plt.scatter(test_X, test_y, color = 'red')
plt.scatter(test_X, predicted_y, color = 'green')
plt.plot(train_X, lr.predict(train_X), color = 'black')
plt.title('Salary vs Experience (Result)')
plt.xlabel('YearsExperience')
plt.ylabel('Salary')
plt.show()

Вывод

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

Скачать полный код GitHub Анкет

## Importing the Libraries
import pandas as pd
import matplotlib.pyplot as plt

## Importing the dataset
data = pd.read_csv("https://raw.githubusercontent.com/codePerfectPlus/DataAnalysisWithJupyter/master/SalaryVsExperinceModel/Salary.csv")
X = data.iloc[:, :-1].values
y = data.iloc[:, -1].values
data.head()

## Splitting the dataset into the Training set and Test set
from sklearn.model_selection import train_test_split
train_X, test_X, train_y, test_y = train_test_split(X, y, test_size = 0.3, random_state=12)

## Fit and Predict Model
from sklearn.linear_model import LinearRegression
lr = LinearRegression()
lr.fit(train_X, train_y)

## Predicting the Test set results
predicted_y = lr.predict(test_X)

## Comparing the Test Set with Predicted Values
df = pd.DataFrame({'Real Values':test_y,"Predict Value":predicted_y})
df.head()

## Visualising the Test set results

plt.scatter(test_X, test_y, color = 'red')
plt.scatter(test_X, predicted_y, color = 'green')
plt.plot(train_X, lr.predict(train_X), color = 'black')
plt.title('Salary vs Experience (Result)')
plt.xlabel('YearsExperience')
plt.ylabel('Salary')
plt.show()

Больше статей автора

Присоединяйтесь к еженедельным обновлениям.

Отрешите ❤, чтобы поощрять автора.

Алгоритмы машинного обучения (4 серии деталей)

Оригинал: “https://dev.to/codeperfectplus/what-is-simple-linear-regression-2591”