六 線性回歸

2021-09-10 15:52:58 字數 1449 閱讀 2980

當然,以上找出θ0,θ1的方法純屬手工方法,侷限性很大。因為實際工作中我們遇到的資料樣本集中的特徵值往往不止乙個,而且當引數的數量大於餘2個的話,面對大量的特徵值以及手動自定義引數值時,我們會因為特徵維度的限制以及自定義引數的繁瑣而無法視覺化代價函式,所以下面引入自動獲取最佳引數的一種演算法。

梯度下降演算法是用來最小化代價函式的

那麼梯度下降的原理是什麼呢?

1、首先確定代價函式的引數的初始值(一般都預設為0)

2、不停更新引數的值(注意:所有引數同時更新)

3、在更新的過程中獲取多個代價函式的值,獲取最小代價函式值所對應的引數值

其中第二步是最重要的,下面通過乙個簡單容易理解的例子來解釋該演算法是怎麼梯度下降的:

假設在公園中有一座小山(因為代價函式的多維座標3d圖與小山類似),此時我們在山頂(這就是演算法中我們設定的引數的初始值),現在要下山,我們下山的方法肯定是向四周展望檢視,選取下乙個腳步該往哪邁,這樣我們到了新的地點之後,就會重複以上的方法去獲取下乙個出腳點,這樣一步一步我們就到了山腳,此時完成下山(獲得到了代價函式的最小值以及引數)

當然第二步中的所有引數同時更新是必須的,因為我們根據引數更新計算公式發現引數的新值會受到引數原值得我影響,所以要保證引數更新時間的一致性來確保準確性。

代價函式3d圖:

引數計算公式:

可以注意到引數計算公式中的 α,這裡表示為學習率(learning rate),可以這樣理解,學習率越大,下山的速度(跨度)越大,反之越小。學習率過大會導致演算法略過了最小代價函式值(無法收斂),學習率過小會導致演算法過慢。

注:當你的初始引數值改變了,你也會得到不同的最優引數(也就是在山頂換了乙個位置會得到另外一條不同的下山的路線以及終點)

以上引數計算公式中的導數項(下圖紅圈)的意義:

導數項能確保引數的更新方向是向著減小代價函式值去的,導數項大於或小於0都是這樣

那麼還有乙個問題,如果無限接近代價函式區域性最優值的時候,演算法該怎麼辦?

因為更新引數的公式中的導數項就代表著代價函式座標圖中某一點的斜率,可以預見的是區域性最優值處的斜率肯定為0,所以該演算法在執行的過程中會因為導數項在越來越接近0的時候去減小學習率以確保不會錯過最優值。

線性回歸梯度下降中引數更新公式中的導數項微積分:

而我們注意到上面的線性回歸代價函式3d圖是乙個碗裝圖,所以這個代價函式叫做凸函式,這個函式沒有區域性最優解,得到的是全域性最優解。

線性回歸(六) LASSO

在嶺回歸那一篇說到特徵過多而樣本過少會出現過擬合的問題,嶺回歸的解決策略是加乙個懲罰函式,也就是正則化。其實嶺回歸中的正則化只是l2正則化,如果換成是l1正則化,那麼代價函式就會變為 j 0,1 n 1 2m i 1m yi h x i 2 i 1m i j theta 0,theta 1,thet...

六 Sklearn線性回歸

參考url 最廣為人知的線性模型 將資料擬合成一條直線。直線擬合的模型方程為y ax b,其中a是直線斜率,b是直線截距。linearregression評估器除了簡單的直線擬合,它還可以處理多維度的線性回歸模型 y a0 a1x1 a2x2 裡面有多個x變數 從幾何學的角度看,這個模型是擬合三維空...

資料結構(六)線性表(一)

線性表 線性表的定義 零個或多個資料元素的有限序列 若線性表記為 a1,ai 1,ai,an 則表中ai 1領先於ai,ai領先於ai 1,稱ai 1是ai的直接前驅元素,ai 1是ai的直接後繼元素。當i 1,2,3,n 1時,ai有且僅有乙個直接後繼,當i 2,3,n,ai有且僅有乙個直接前驅。...