在這篇文章中,你将了解線性回歸算法、它的工作原理,以及如何在機器學習項目中更好地運用它。
什麼是線性回歸?線性回歸是一種基于監督學習的機器學習算法,它執行回歸任務。回歸基于自變量對目标預測值進行建模,它主要用于找出和預測變量之間的關系。不同的回歸模型基于他們正在考慮的因變量和自變量之間的關系類型以及使用的自變量數量而異。
如何定義模型?線性回歸的執行是基于給定的自變量 (x) 預測因變量值 (y) 的任務。
線性回歸方程公式如下:
Y = wX b
其中X是自變量,Y是因變量。w是系數,b是偏差。
計算損失函數損失函數是均方誤差方程。對于監督學習,模型通過找到最小化成本函數的最優系數來優化。成本函數使用損失函數計算的每個數據點的損失總和。
線性回歸最常用的損失函數是最小平方誤差,它的成本函數也稱為均方誤差(MSE)。均方誤差的公式為:
其中n是數據點的數量,y是模型返回的值,ŷ是數據點的實際值。
如何優化回歸模型?梯度下降是一種尋找損失函數的叠代優化算法。當函數達到全局最小值時,它将具有最佳的 w 和 b 值。
梯度下降是一種用于尋找可微函數的局部最小值的優化算法。梯度下降簡單地用于機器學習中,以找到盡可能使成本函數最小化的函數參數(系數)值。
實施模型
現在将上面的所有内容都轉換為代碼,看看我們的模型是如何運行的。
# Making the imports
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['figure.figsize'] = (12.0, 9.0)
# Preprocessing Input data
data = pd.read_csv('data.csv')
X = data.iloc[:, 0]
Y = data.iloc[:, 1]
plt.scatter(X, Y)
plt.show()
# Building the model
m = 0
c = 0
L = 0.0001 # The learning Rate
epochs = 1000 # The number of iterations to perform gradient descent
n = float(len(X)) # Number of elements in X
# Performing Gradient Descent
for i in range(epochs):
Y_pred = m*X c # The current predicted value of Y
D_m = (-2/n) * sum(X * (Y - Y_pred)) # Derivative wrt m
D_c = (-2/n) * sum(Y - Y_pred) # Derivative wrt c
m = m - L * D_m # Update m
c = c - L * D_c # Update c
print (m, c)
1.4796491688889395 0.10148121494753726
#(m = w et c = b)
# Making predictions
Y_pred = m*X c
plt.scatter(X, Y)
plt.plot([min(X), max(X)], [min(Y_pred), max(Y_pred)], color='red') # regression line
plt.show()
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!