線性回歸及梯度下降法

  • 回歸分析:用來建立方程模擬兩個或者多個變量之間如何關(guān)聯(lián)
    被預(yù)測的變量叫:因變量,輸出
    用來進行預(yù)測的變量叫:自變量,輸入


    hθ(x) = θ01x
    這個方程對應(yīng)的圖像是一條直線,稱為回歸線。其中,θ1為回歸線的斜率,θ0為回歸線的截距

  • 代價函數(shù)(cost Function)

  • 最小二乘法:

  • 真實值y,預(yù)測值hθ(x),則誤差為(y-hθ(x))2

  • 找到合適的參數(shù),使得誤差平方和:
    \quad\quad\quad\quad\quad J(θ_0,θ_1) =\frac{1}{2m} \textstyle\sum_{i=1}^{m}(y^i-h_θ(x^i))^2 最小
    \quad\quad\quad\quad\quad【注:\frac{1}{2}可有可無,主要是為了求導和平方的2抵消】

    線性回歸


  • 相關(guān)系數(shù)
    我們使用相關(guān)系數(shù)去衡量線性相關(guān)性的強弱
    \quad\quad\quad\quad\quad r_{xy} = \frac{\textstyle\sum(X_i-\bar{X})(Y_i-\bar{Y})}{\sqrt{\textstyle\sum(X_i-\bar{X})^2 \textstyle\sum(Y_i-\bar{Y})^2}}

  • 決定系數(shù)
    相關(guān)系數(shù)R(coefficient of determination)是用來描述兩個變量之間的線性關(guān)系的,但決定系數(shù)的適用范圍更廣,可以用于描述非線性或者有兩個及兩個以上的相關(guān)關(guān)系。它可以用來評價模型的效果

\quad總平方和(SST) : \textstyle\sum_{i=1}^{n}(y_i-\bar{y})^2y_i是真實值,\bar{y}是真實值的平均值】
\quad回歸平方和(SSR) :\textstyle\sum_{i=1}^{n}(\hat{y}-\bar{y})^2\hat{y}是預(yù)測值】
\quad殘差平方和(SSE):\textstyle\sum_{i=1}^{n}(y_i-\hat{y})^2
\quad它們?nèi)叩年P(guān)系是:SST=SSR+SSE

\quad決定系數(shù): R^2 = \frac{SSR}{SST} = 1-\frac{SSE}{SST}R^2的值越接近1,說明它們之間的關(guān)系越接近于線性的關(guān)系,越接近0就越不接近于線性關(guān)系】

  • 梯度下降法:
    有這么一個函數(shù) J(θ_0,θ_1)minJ(θ_0,θ_1)
    \quad1. 初始化θ_0,θ_1
    \quad2. 不斷改變θ_0,θ_1,直到J(θ_0,θ_1) 到達全局最小值,或局部極小值
    圖1
圖2

θ_0,θ_1 取不同初始值的變化結(jié)果,如圖1取值,然后不斷改變θ_0,θ_1,直到J(θ_0,θ_1) 到達全局最小值,如圖2取值,然后不斷改變θ_0,θ_1,直到J(θ_0,θ_1) 到達局部極小值

repeat until convergence {
θ_j:= θ_j- α\frac{?}{?θ_j}J(θ_0,θ_1) (j=0 ,j=1)【α指的是學習率】
}

正確做法 :同步更新
temp0:= θ_j- α\frac{?}{?θ_j}J(θ_0,θ_1) (j=0 ,j=1)
temp1:= θ_j- α\frac{?}{?θ_j}J(θ_0,θ_1) (j=0 ,j=1)
θ_0:=temp0
θ_1:=temp1

不正確做法:
temp0:= θ_j- α\frac{?}{?θ_j}J(θ_0,θ_1) (j=0 ,j=1)
θ_0:=temp0
temp1:= θ_j- α\frac{?}{?θ_j}J(θ_0,θ_1) (j=0 ,j=1)
θ_1:=temp1

\quad現(xiàn)在假設(shè)只有一個參數(shù)θ_1,公式如下,現(xiàn)在看圖3中的曲線,當我們的取①處的θ_1值,那么我們計算出來的斜率是負數(shù),α學習率為正數(shù),相乘就為負數(shù),則θ_1減去這個負值以后就變大了,賦給θ_1,θ_1的取值大了,現(xiàn)在到了②處,計算出來的斜率還是負數(shù),α學習率為正數(shù),相乘就為負數(shù),則θ_1減去這個負值以后又變大了,接下來到了③處,計算出來的斜率還是正數(shù),α學習率為正數(shù),相乘就為正數(shù),則θ_1減去這個正值以后變小了,則下次取值一定在③的左側(cè),都會忘最小值靠近?!緦W習率的值不能太?。ㄗ兓瘯膊荒芴螅ㄗ兓瘯螅?,可以多嘗試,找到比較合適的 0.1,0.03,0.003,0.001........等等】

圖3

  • 用梯度算法來求解線性回歸:

\quad\quad\quad\quad\quad\quad\quad j=0: α\frac{?}{?θ_0}J(θ_0,θ_1) = \frac{1}{m}\textstyle\sum_{i=1}^{m}(h_θ(x^i)- y^i)
\frac{?}{?θ_j}J(θ_0,θ_1) =
\quad\quad\quad\quad\quad\quad\quad j=1: α\frac{?}{?θ_1}J(θ_0,θ_1) = \frac{1}{m}\textstyle\sum_{i=1}^{m}(h_θ(x^i)- y^i)
repeat until convergence {
θ_0:= θ_0- α \frac{1}{m}\textstyle\sum_{i=1}^{m}(h_θ(x^i)- y^i)
θ_1:= θ_1- α \frac{1}{m}\textstyle\sum_{i=1}^{m}(h_θ(x^i)- y^i)·x^i
}


梯度算法可能會陷入局部最小值:



梯度下降算法的代價函數(shù)是凸函數(shù),所以會一直往最小值走

梯度下降算法的代價函數(shù)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。