線性迴歸中的梯度下降


線性迴歸的應用是一種用於找出和檢查變數之間關係的有用技術。預測建模依賴於它,並將其用作許多機器學習技術的基石。機器學習需要大量的最佳化。它類似於改進模型以使其具有最佳效能。梯度下降,一種最佳化中的關鍵技術,此時進入畫面。將其視為一個值得信賴的盟友,它將幫助我們瀏覽大量潛在的模型引數以找到最佳引數。

梯度下降允許我們透過沿著最陡下降方向稍微移動來迭代地更改這些引數,隨著時間的推移最小化誤差,並帶來收斂。梯度下降是機器學習中的一項基本技術,因為它使我們能夠有效地最佳化線性迴歸模型的效能。在這篇文章中,我們將仔細研究線性迴歸中的梯度下降。

理解線性迴歸

線性迴歸是一種重要的統計方法,用於模擬因變數和一個或多個自變數之間的關係。找到合適的直線來描述變數之間的關係,需要將線性方程擬合到預先存在的資料集中。一個簡單的線性迴歸方程表示為

其中

  • 因變數是 y。

  • 自變數是 x。

  • y 截距(當 x 為 0 時 y 的值)是 $\mathrm{\beta_{0}}$

  • 斜率(x 增加一個單位時 y 的變化)是 $\mathrm{\beta_{1}}$

  • 隨機誤差由 $\mathrm{\varepsilon}$ 表示

線性迴歸的目標是最小化預測值()與實際值(y)之間的差異,通常稱為成本、損失或誤差。均方誤差 (MSE) 是最常使用的目標函式,其定義如下。

其中,

  • 觀測值的總數是 n。

  • y 是因變數的實際值。

  • ŷ 是因變數的預測值。

理解梯度下降

梯度下降是一種強大的最佳化過程,用於迭代地最小化機器學習模型中的成本函式。它是一種廣泛應用於各個領域的方法,包括線性迴歸。簡而言之,梯度下降透過重複地沿成本函式最陡下降的方向修改模型引數,從而收斂到最佳解決方案。

梯度下降可以用以下數學公式表示

這裡,模型引數由 $\mathrm{\theta}$ 表示,學習率由 $\mathrm{\alpha}$ 表示,成本函式相對於引數的梯度由 $\mathrm{\bigtriangledown J(\theta)}$ 表示,乘法運算由 * 表示。根據此公式更新引數時,模型越來越接近最小化成本函式的理想引數值。

線上性迴歸的背景下,找到最佳擬合線以最小化預測值和實際值之間的差距,關鍵取決於梯度下降。線上性迴歸中,均方誤差 (MSE) 通常用作成本函式。梯度下降允許模型修改其預測,從而降低總體誤差並提高迴歸線的精度。這是透過使用 MSE 的梯度迭代更新引數(斜率和截距)來實現的。

線上性迴歸中實現梯度下降

下面顯示了一個使用梯度下降執行線性迴歸的功能性 Python 程式碼示例

import numpy as np
import matplotlib.pyplot as plt

# Generate sample data for demonstration
np.random.seed(42)
X = 2 * np.random.rand(100, 1)
y = 4 + 3 * X + np.random.randn(100, 1)

# Add bias term to X
X_b = np.c_[np.ones((100, 1)), X]

# Set hyperparameters
learning_rate = 0.01
num_iterations = 1000

# Initialize parameters randomly
theta = np.random.randn(2, 1)

# Perform gradient descent
for iteration in range(num_iterations):
   gradients = 2 / 100 * X_b.T.dot(X_b.dot(theta) - y)
   theta = theta - learning_rate * gradients

# Print the final parameter values
print("Intercept:", theta[0][0])
print("Slope:", theta[1][0])

# Plot the data points and the regression line
plt.scatter(X, y)
plt.plot(X, X_b.dot(theta), color='red')
plt.xlabel('X')
plt.ylabel('y')
plt.title('Linear Regression with Gradient Descent')
plt.show()

輸出

Intercept: 4.158093763822134
Slope: 2.8204434017416244

我們首先生成一些示例資料。然後在輸入矩陣 X 中包含偏差項以考慮線性迴歸方程中的截距。接下來設定梯度下降演算法的學習率和迭代次數。在隨機初始化 theta 引數後,透過迭代預定的迭代次數來執行梯度下降。在每次迭代中,我們使用均方誤差損失函式計算梯度並相應地調整引數。最後,我們使用 Matplotlib 列印最終的截距和斜率值,並顯示資料點和擬合的迴歸線。

結論

線性迴歸的影響遠遠超出了預測建模的領域。線性迴歸透過揭示變數之間的相關性,使各行各業能夠進行資料驅動的決策。在金融、經濟、營銷和醫療保健等行業中,組織可以使用線性迴歸來洞察消費者行為、最佳化資源分配、估計需求並做出明智的戰略決策。

更新於: 2023年8月24日

369 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

開始
廣告