Алгоритмы машинного обучения (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()
Больше статей автора
- Развернуть свое первое приложение Django с Heroku
- Логистическая регрессия по проблеме машинного обучения
- 5 советов для начинающих компьютерного программирования
- Что такое простая линейная регрессия?
- Введение в машинное обучение и его тип.
- Разница между машинным обучением и искусственным интеллектом
Присоединяйтесь к еженедельным обновлениям.
Отрешите ❤, чтобы поощрять автора.
Алгоритмы машинного обучения (4 серии деталей)
Оригинал: “https://dev.to/codeperfectplus/what-is-simple-linear-regression-2591”