国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

機(jī)器學(xué)習(xí):基于梯度下降算法的線性擬合實(shí)現(xiàn)和原理解析

這篇具有很好參考價(jià)值的文章主要介紹了機(jī)器學(xué)習(xí):基于梯度下降算法的線性擬合實(shí)現(xiàn)和原理解析。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

當(dāng)我們需要尋找數(shù)據(jù)中的趨勢(shì)、模式或關(guān)系時(shí),線性擬合和梯度下降是兩個(gè)強(qiáng)大的工具。這兩個(gè)概念在統(tǒng)計(jì)學(xué)、機(jī)器學(xué)習(xí)和數(shù)據(jù)科學(xué)領(lǐng)域都起著關(guān)鍵作用。本篇博客將介紹線性擬合和梯度下降的基本原理,以及它們?cè)趯?shí)際問題中的應(yīng)用。

機(jī)器學(xué)習(xí):基于梯度下降算法的線性擬合實(shí)現(xiàn)和原理解析,機(jī)器學(xué)習(xí),機(jī)器學(xué)習(xí),算法,人工智能

線性擬合

線性擬合是一種用于找到數(shù)據(jù)集中線性關(guān)系的方法。它的基本原理是,我們可以使用線性方程來(lái)描述兩個(gè)或多個(gè)變量之間的關(guān)系。這個(gè)方程通常采用以下形式:
y = m x + b y=mx+b y=mx+b

在這個(gè)方程中, y y y 是因變量, x x x 是自變量, m m m 是斜率, b b b 是截距。線性擬合的目標(biāo)是找到最佳的斜率和截距,以使線性方程最好地?cái)M合數(shù)據(jù)。

為了找到最佳擬合線,我們通常使用最小二乘法。這意味著我們將所有數(shù)據(jù)點(diǎn)到擬合線的距離的平方相加,然后尋找最小化這個(gè)總和的斜率和截距。這可以用數(shù)學(xué)優(yōu)化方法來(lái)實(shí)現(xiàn),其中一個(gè)常用的方法就是梯度下降。

梯度下降

梯度下降是一種迭代優(yōu)化算法,用于尋找函數(shù)的最小值。在線性擬合中,我們的目標(biāo)是最小化誤差函數(shù),即數(shù)據(jù)點(diǎn)到擬合線的距離的平方和。這個(gè)誤差函數(shù)通常表示為 J ( m , b ) J(m, b) J(m,b),其中 m m m 是斜率, b b b 是截距。我們的任務(wù)是找到 m m m b b b 的值,使 J ( m , b ) J(m, b) J(m,b) 最小化。

梯度下降的基本思想是從一個(gè)隨機(jī)初始點(diǎn)開始,然后根據(jù)誤差函數(shù)的梯度方向逐步調(diào)整參數(shù),直到找到局部最小值。梯度下降的迭代規(guī)則如下:

機(jī)器學(xué)習(xí):基于梯度下降算法的線性擬合實(shí)現(xiàn)和原理解析,機(jī)器學(xué)習(xí),機(jī)器學(xué)習(xí),算法,人工智能

在這里, α \alpha α 是學(xué)習(xí)率,它決定了每次迭代中參數(shù)更新的步長(zhǎng)。較大的學(xué)習(xí)率可能導(dǎo)致快速收斂,但可能會(huì)錯(cuò)過(guò)最小值,而較小的學(xué)習(xí)率可能需要更多的迭代。

算法步驟

線性回歸中的梯度下降是一種優(yōu)化算法,用于尋找最佳擬合線性模型的參數(shù),以最小化預(yù)測(cè)值與實(shí)際觀測(cè)值之間的均方誤差(Mean Squared Error,MSE)。梯度下降的原理可以概括為以下幾個(gè)步驟:

初始化參數(shù): 首先,為線性回歸模型的參數(shù)(權(quán)重和偏置項(xiàng))選擇初始值。通常,可以隨機(jī)初始化這些參數(shù)。

計(jì)算損失函數(shù): 使用當(dāng)前的參數(shù)值,計(jì)算出模型的預(yù)測(cè)值,并計(jì)算預(yù)測(cè)值與實(shí)際觀測(cè)值之間的差異,即損失函數(shù)。在線性回歸中,常用的損失函數(shù)是均方誤差(MSE),它表示為:

機(jī)器學(xué)習(xí):基于梯度下降算法的線性擬合實(shí)現(xiàn)和原理解析,機(jī)器學(xué)習(xí),機(jī)器學(xué)習(xí),算法,人工智能

其中, m m m 是樣本數(shù)量, y ( i ) y^{(i)} y(i) 是第 i i i 個(gè)觀測(cè)值, y ^ ( i ) \hat{y}^{(i)} y^?(i) 是模型的預(yù)測(cè)值。

計(jì)算梯度: 梯度是損失函數(shù)關(guān)于參數(shù)的偏導(dǎo)數(shù),表示了損失函數(shù)在參數(shù)空間中的變化方向。梯度下降算法通過(guò)計(jì)算損失函數(shù)關(guān)于參數(shù)的梯度來(lái)確定參數(shù)更新的方向。對(duì)于線性回歸模型,梯度可以表示為:

機(jī)器學(xué)習(xí):基于梯度下降算法的線性擬合實(shí)現(xiàn)和原理解析,機(jī)器學(xué)習(xí),機(jī)器學(xué)習(xí),算法,人工智能

其中, J ( θ ) J(\theta) J(θ) 是損失函數(shù), θ \theta θ 是參數(shù)向量, X X X 是特征矩陣, y y y 是目標(biāo)向量。

參數(shù)更新: 使用梯度信息,按照下面的規(guī)則來(lái)更新參數(shù):

θ = θ ? α ? J ( θ ) θ=θ?α?J(θ) θ=θ?α?J(θ)

其中, α \alpha α 是學(xué)習(xí)率,它控制著每次參數(shù)更新的步長(zhǎng)。學(xué)習(xí)率越小,參數(shù)更新越小,但收斂可能會(huì)更穩(wěn)定。學(xué)習(xí)率越大,參數(shù)更新越快,但可能會(huì)導(dǎo)致不穩(wěn)定的收斂或發(fā)散。

重復(fù)迭代: 重復(fù)執(zhí)行步驟2至步驟4,直到滿足停止條件,例如達(dá)到最大迭代次數(shù)或損失函數(shù)收斂到一個(gè)足夠小的值。在每次迭代中,參數(shù)都會(huì)根據(jù)梯度信息進(jìn)行更新,逐漸優(yōu)化以減小損失函數(shù)。

梯度下降的目標(biāo)是找到損失函數(shù)的最小值,這將使線性回歸模型的預(yù)測(cè)值與實(shí)際觀測(cè)值之間的誤差最小化。通過(guò)不斷調(diào)整參數(shù),梯度下降可以使模型逐漸收斂到最佳參數(shù)值,從而得到最佳擬合線性模型。

算法實(shí)現(xiàn)

import numpy as np
import matplotlib.pyplot as plt
# 設(shè)置字體為支持漢字的字體(例如宋體)
plt.rcParams['font.sans-serif'] = ['SimSun']
# 創(chuàng)建示例數(shù)據(jù)
X = np.array([1, 2, 3, 4, 5])
y = np.array([2, 4, 5, 4, 5])

# 添加偏置項(xiàng)(截距項(xiàng))到特征矩陣
# 添加了偏置項(xiàng)(截距項(xiàng))到特征矩陣 X。這是通過(guò)在 X 前面添加一列全為1的列來(lái)實(shí)現(xiàn)的。這是線性回歸模型中的常見步驟。
X_b = np.c_[np.ones((len(X), 1)), X.reshape(-1, 1)]

# 使用正規(guī)方程計(jì)算最佳參數(shù)
theta_best = np.linalg.inv(X_b.T.dot(X_b)).dot(X_b.T).dot(y)

# 使用梯度下降計(jì)算最佳參數(shù)
def gradient_descent(X_b, y, theta, learning_rate, num_epochs):
    m = len(y)
    losses = []
    for epoch in range(num_epochs):
        # 計(jì)算當(dāng)前參數(shù)下的預(yù)測(cè)值。
        predictions = X_b.dot(theta)
        error = predictions - y
       # 計(jì)算均方誤差(MSE)作為損失函數(shù),衡量預(yù)測(cè)值和實(shí)際值之間的差異。
        loss = np.mean(error**2)
        # 計(jì)算損失函數(shù)的梯度,用于更新參數(shù)。
        # X_b.T 表示矩陣 X_b 的轉(zhuǎn)置。在線性代數(shù)中,矩陣的轉(zhuǎn)置是指將矩陣的行和列交換,即將矩陣的列向量變成行向量,反之亦然。
        gradient = 2 * X_b.T.dot(error) / m
        theta -= learning_rate * gradient
        losses.append(loss)
    return theta, losses

theta = np.random.randn(2)
learning_rate = 0.01
num_epochs = 1000
theta, losses = gradient_descent(X_b, y, theta, learning_rate, num_epochs)

# 可視化數(shù)據(jù)和擬合結(jié)果
plt.scatter(X, y, label='數(shù)據(jù)點(diǎn)')
plt.plot(X, X_b.dot(theta_best), label='正規(guī)方程擬合', color='green')
plt.plot(X, X_b.dot(theta), label='梯度下降擬合', color='red')
plt.xlabel('特征值')
plt.ylabel('目標(biāo)值')
plt.legend()
plt.show()

數(shù)據(jù)可視化(動(dòng)態(tài)展示)

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation



# 創(chuàng)建一些示例數(shù)據(jù)
np.random.seed(0)
X = 2 * np.random.rand(100, 1)
y = 4 + 3 * X + np.random.rand(100, 1)

# 初始化線性模型參數(shù)
theta = np.random.randn(2, 1)


def gradient_descent(X, y, theta, learning_rate, num_iterations):
    m = len(y)
    history = []

    for iteration in range(num_iterations):
        gradients = -2/m * X.T.dot(y - X.dot(theta))
        theta -= learning_rate * gradients
        history.append(theta.copy())

    return history




learning_rate = 0.1
num_iterations = 50

# 添加偏置項(xiàng)
X_b = np.c_[np.ones((100, 1)), X]

# 執(zhí)行梯度下降算法并獲取參數(shù)歷史
parameter_history = gradient_descent(X_b, y, theta, learning_rate, num_iterations)

# 創(chuàng)建動(dòng)態(tài)可視化
fig, ax = plt.subplots()
line, = ax.plot([], [], lw=2)

def animate(i):
    y_pred = X_b.dot(parameter_history[i])
    line.set_data(X, y_pred)
    return line,

ani = FuncAnimation(fig, animate, frames=num_iterations, interval=200)
plt.scatter(X, y)
plt.xlabel('X')
plt.ylabel('y')
plt.title('Linear Regression with Gradient Descent')

plt.show()

應(yīng)用示例

線性擬合和梯度下降在各種領(lǐng)域都有廣泛的應(yīng)用。以下是一些示例:

股市預(yù)測(cè):通過(guò)線性擬合歷史股票價(jià)格數(shù)據(jù),可以嘗試預(yù)測(cè)未來(lái)股價(jià)的趨勢(shì)。

房?jī)r(jià)預(yù)測(cè):使用線性擬合來(lái)估算房屋價(jià)格與特征(如面積、位置等)之間的關(guān)系,幫助買家和賣家做出決策。

機(jī)器學(xué)習(xí)模型訓(xùn)練:梯度下降是訓(xùn)練線性回歸、邏輯回歸和神經(jīng)網(wǎng)絡(luò)等機(jī)器學(xué)習(xí)模型的關(guān)鍵步驟。

自然語(yǔ)言處理:在自然語(yǔ)言處理中,線性擬合可以用于情感分析和文本分類任務(wù)。

總之,線性擬合和梯度下降是數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)領(lǐng)域的基本工具,它們幫助我們理解數(shù)據(jù)中的關(guān)系,并訓(xùn)練模型以做出預(yù)測(cè)和決策。這兩個(gè)概念的理解對(duì)于處理各種數(shù)據(jù)分析和機(jī)器學(xué)習(xí)問題都至關(guān)重要。希望本博客能夠幫助你更好地理解它們的基本原理和應(yīng)用。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-695601.html

到了這里,關(guān)于機(jī)器學(xué)習(xí):基于梯度下降算法的線性擬合實(shí)現(xiàn)和原理解析的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 機(jī)器學(xué)習(xí)——線性回歸、梯度下降

    機(jī)器學(xué)習(xí)——線性回歸、梯度下降

    監(jiān)督學(xué)習(xí) :學(xué)習(xí)數(shù)據(jù)帶有標(biāo)簽 無(wú)監(jiān)督學(xué)習(xí) :沒有任何的標(biāo)簽,或者有相同的標(biāo)簽 其他:強(qiáng)化學(xué)習(xí)、推薦系統(tǒng)等 還是房?jī)r(jià)預(yù)測(cè)的例子, 訓(xùn)練集如下: 定義各個(gè)變量的含義如下: m——代表訓(xùn)練集中實(shí)例的數(shù)量 x——代表特征/輸入變量 y——代表目標(biāo)變量/輸出變量 (x,y)——代

    2024年02月07日
    瀏覽(25)
  • 機(jī)器學(xué)習(xí)--決策樹、線性模型、隨機(jī)梯度下降

    機(jī)器學(xué)習(xí)--決策樹、線性模型、隨機(jī)梯度下降

    ???♂? 個(gè)人主頁(yè):@Lingxw_w的個(gè)人主頁(yè) ???作者簡(jiǎn)介:計(jì)算機(jī)科學(xué)與技術(shù)研究生在讀 ?? 希望大家多多支持,我們一起進(jìn)步!?? 如果文章對(duì)你有幫助的話, 歡迎評(píng)論 ??點(diǎn)贊???? 收藏 ??加關(guān)注+??? 目錄 ?一、決策樹 二、線性模型 三、隨機(jī)梯度下降 決策樹(decision

    2024年02月03日
    瀏覽(34)
  • 【機(jī)器學(xué)習(xí)(二)】線性回歸之梯度下降法

    【機(jī)器學(xué)習(xí)(二)】線性回歸之梯度下降法

    ? 作者簡(jiǎn)介: i阿極 ,CSDN Python領(lǐng)域新星創(chuàng)作者, 專注于分享python領(lǐng)域知識(shí)。 ? 本文錄入于《機(jī)器學(xué)習(xí)案例》 ,本專欄精選了經(jīng)典的機(jī)器學(xué)習(xí)算法進(jìn)行講解,針對(duì)大學(xué)生、初級(jí)數(shù)據(jù)分析工程師精心打造,對(duì)機(jī)器學(xué)習(xí)算法知識(shí)點(diǎn)逐一擊破,不斷學(xué)習(xí),提升自我。 ? 訂閱后,

    2023年04月14日
    瀏覽(39)
  • 機(jī)器學(xué)習(xí)(二):線性回歸之梯度下降法

    機(jī)器學(xué)習(xí)(二):線性回歸之梯度下降法

    ? 作者簡(jiǎn)介: i阿極 ,CSDN Python領(lǐng)域新星創(chuàng)作者, 專注于分享python領(lǐng)域知識(shí)。 ? 本文錄入于《機(jī)器學(xué)習(xí)案例》 ,本專欄精選了經(jīng)典的機(jī)器學(xué)習(xí)算法進(jìn)行講解,針對(duì)大學(xué)生、初級(jí)數(shù)據(jù)分析工程師精心打造,對(duì)機(jī)器學(xué)習(xí)算法知識(shí)點(diǎn)逐一擊破,不斷學(xué)習(xí),提升自我。 ? 訂閱后,

    2023年04月22日
    瀏覽(20)
  • 【機(jī)器學(xué)習(xí)】P2 線性回歸、損失函數(shù)與梯度下降

    【機(jī)器學(xué)習(xí)】P2 線性回歸、損失函數(shù)與梯度下降

    線性回歸簡(jiǎn)單的說(shuō)就是線性函數(shù); 線性回歸屬于機(jī)器學(xué)習(xí) 回歸問題; 在線性回歸建立的線性關(guān)系的模型中,假設(shè)目標(biāo)變量和自變量之間存在一種線性關(guān)系,模型的目標(biāo)是找到最佳的擬合線,是的模型對(duì)于未知的數(shù)據(jù)能夠進(jìn)行最準(zhǔn)確的預(yù)測(cè); 線性回歸模型的一般形式為: y

    2023年04月08日
    瀏覽(28)
  • python機(jī)器學(xué)習(xí)(三)特征預(yù)處理、鳶尾花案例--分類、線性回歸、代價(jià)函數(shù)、梯度下降法、使用numpy、sklearn實(shí)現(xiàn)一元線性回歸

    python機(jī)器學(xué)習(xí)(三)特征預(yù)處理、鳶尾花案例--分類、線性回歸、代價(jià)函數(shù)、梯度下降法、使用numpy、sklearn實(shí)現(xiàn)一元線性回歸

    數(shù)據(jù)預(yù)處理的過(guò)程。數(shù)據(jù)存在不同的量綱、數(shù)據(jù)中存在離群值,需要穩(wěn)定的轉(zhuǎn)換數(shù)據(jù),處理好的數(shù)據(jù)才能更好的去訓(xùn)練模型,減少誤差的出現(xiàn)。 標(biāo)準(zhǔn)化 數(shù)據(jù)集的標(biāo)準(zhǔn)化對(duì)scikit-learn中實(shí)現(xiàn)的大多數(shù)機(jī)器學(xué)習(xí)算法來(lái)說(shuō)是常見的要求,很多案例都需要標(biāo)準(zhǔn)化。如果個(gè)別特征或多或

    2024年02月16日
    瀏覽(24)
  • 機(jī)器學(xué)習(xí)的數(shù)學(xué)基礎(chǔ):從線性代數(shù)到梯度下降

    機(jī)器學(xué)習(xí)是人工智能的一個(gè)重要分支,它涉及到計(jì)算機(jī)程序自動(dòng)化地學(xué)習(xí)或者預(yù)測(cè)事物的行為。機(jī)器學(xué)習(xí)的核心是算法,算法需要數(shù)學(xué)來(lái)支持。在本文中,我們將從線性代數(shù)到梯度下降的數(shù)學(xué)基礎(chǔ)來(lái)討論機(jī)器學(xué)習(xí)算法的核心。 機(jī)器學(xué)習(xí)的數(shù)學(xué)基礎(chǔ)包括線性代數(shù)、微積分、概率

    2024年02月21日
    瀏覽(24)
  • 【吳恩達(dá)·機(jī)器學(xué)習(xí)】第二章:?jiǎn)巫兞烤€性回歸模型(代價(jià)函數(shù)、梯度下降、學(xué)習(xí)率、batch)

    【吳恩達(dá)·機(jī)器學(xué)習(xí)】第二章:?jiǎn)巫兞烤€性回歸模型(代價(jià)函數(shù)、梯度下降、學(xué)習(xí)率、batch)

    博主簡(jiǎn)介: 努力學(xué)習(xí)的22級(jí)計(jì)算機(jī)科學(xué)與技術(shù)本科生一枚?? 博主主頁(yè): @Yaoyao2024 每日一言??: 勇敢的人,不是不落淚的人,而是愿意含著淚繼續(xù)奔跑的人。 ——《朗讀者》 本系列博客文章是博主本人根據(jù)吳恩達(dá)老師2022年的機(jī)器學(xué)習(xí)課程所學(xué)而寫,主要包括老師的核心講義

    2024年02月19日
    瀏覽(26)
  • 機(jī)器學(xué)習(xí)&&深度學(xué)習(xí)——隨機(jī)梯度下降算法(及其優(yōu)化)

    在我們沒有辦法得到解析解的時(shí)候,我們可以用過(guò)梯度下降來(lái)進(jìn)行優(yōu)化,這種方法幾乎可以所有深度學(xué)習(xí)模型。 關(guān)于優(yōu)化的東西,我自己曾經(jīng)研究過(guò)智能排班算法和優(yōu)化,所以關(guān)于如何找局部最小值,以及如何跳出局部最小值的一些基本思想是有感觸的,隨機(jī)梯度算法和其優(yōu)

    2024年02月15日
    瀏覽(24)
  • 【深度學(xué)習(xí)實(shí)驗(yàn)】線性模型(二):使用NumPy實(shí)現(xiàn)線性模型:梯度下降法

    【深度學(xué)習(xí)實(shí)驗(yàn)】線性模型(二):使用NumPy實(shí)現(xiàn)線性模型:梯度下降法

    目錄 一、實(shí)驗(yàn)介紹 二、實(shí)驗(yàn)環(huán)境 1. 配置虛擬環(huán)境 2. 庫(kù)版本介紹 三、實(shí)驗(yàn)內(nèi)容 0. 導(dǎo)入庫(kù) 1. 初始化參數(shù) 2. 線性模型?linear_model 3. 損失函數(shù)loss_function 4. 梯度計(jì)算函數(shù)compute_gradients 5. 梯度下降函數(shù)gradient_descent 6. 調(diào)用函數(shù) ? ? ? ????????使用NumPy實(shí)現(xiàn)線性模型:梯度下降法

    2024年02月07日
    瀏覽(33)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包