機(jī)器學(xué)習(xí)(3-4)多變量線性回歸

4.1 多維特征

舉例房?jī)r(jià)模型

房?jī)r(jià)模型

增添了更多的特征。

此時(shí)模型中的參數(shù)是一個(gè)n+1維的向量。
公式可以簡(jiǎn)化:

4.2 多變量梯度下降

與單變量線性回歸類似,在多變量線性回歸中,我們也構(gòu)建一個(gè)代價(jià)函數(shù):所有建模誤差的平方和。

目標(biāo):找出使得代價(jià)函數(shù)最小的一系列參數(shù)。
多變量線性回歸的批量梯度下降算法為:

開始:隨機(jī)選擇一系列的參數(shù)值。
計(jì)算所有的預(yù)測(cè)結(jié)果后,再給所有的參數(shù)一個(gè)新的值。如此循環(huán)直到收斂。

4.3 梯度下降法時(shí)間

特征縮放

對(duì)于多維特征問題,最好保證這些特征都具有相近的尺度,這將幫助梯度下降算法更快地收斂。

解決方法:嘗試將所有特征的尺度都盡量縮放到-1到1之間。

尺度縮放

學(xué)習(xí)率

梯度下降算法的每次迭代受到學(xué)習(xí)率的影響。
學(xué)習(xí)率過小則達(dá)到收斂所需的迭代次數(shù)會(huì)非常高。
學(xué)習(xí)率過大,每次迭代可能不會(huì)減小代價(jià)函數(shù),可能會(huì)越過局部最小值導(dǎo)致無(wú)法收斂。

通??梢钥紤]嘗試學(xué)習(xí)率:
\alpha=0.01,0.03,0.1,0.3,1,3,10

特征和多項(xiàng)式回歸

線性回歸并不適用于所有數(shù)據(jù),有時(shí)我們需要曲線來適應(yīng)我們的數(shù)據(jù)。
二次方模型:

三次方模型:

通常我們需要先觀察數(shù)據(jù)然后再?zèng)Q定準(zhǔn)備嘗試怎樣的模型。

另外,我們可以令:
x_2=x_2^2, x_3=x^3_3
從而將模型轉(zhuǎn)化為線性回歸模型。

采用多項(xiàng)式回歸模型,在運(yùn)行梯度下降算法前,特征縮放非常有必要。

正規(guī)方程

對(duì)于某些線性回歸問題,正規(guī)方程方法是更好的解決方案,如:

對(duì)于不可逆矩陣(通常因?yàn)樘卣髦g不獨(dú)立,如單位不同的兩個(gè)同樣特征,也有可能是特征數(shù)量大于訓(xùn)練集的數(shù)量),不能使用正規(guī)方程方法。

舉個(gè)栗子:

梯度下降與正規(guī)方程的比較:

梯度下降 正規(guī)方程
需要選擇學(xué)習(xí)率 不需要
需要多次迭代 一次運(yùn)算得出
當(dāng)特征數(shù)量n大時(shí)也能較好適用 需要計(jì)算(X^TX)^{-1}如果特征數(shù)量n較大則運(yùn)算代價(jià)大,因?yàn)榫仃嚹娴挠?jì)算時(shí)間復(fù)雜度為O(n^3),通常來說當(dāng)n小于10000時(shí)還是可以接受的
適用于各種類型的模型 只適用于線性模型,不適合邏輯回歸模型等其他模型

只要特征變量數(shù)量小于1w,通常使用標(biāo)準(zhǔn)方程法而不使用梯度下降法。
對(duì)于這個(gè)特定的線性回歸模型,標(biāo)準(zhǔn)方程法是一個(gè)比梯度下降法更快地替代算法。
但是對(duì)于實(shí)際上更復(fù)雜的學(xué)習(xí)算法,不得不仍然使用梯度下降法。

python實(shí)現(xiàn) 正規(guī)方程

import numpy as np
def normalEqn(X,y):
  theta = np.linalg.inv(X.T@X)@X.T@y
  return theta
#np.linalg.inv 求逆矩陣
#X.T@X等價(jià)于X.T.dot(X)
#先求X的轉(zhuǎn)置再與X點(diǎn)積

正規(guī)方程推導(dǎo)過程

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容