1. 程式人生 > >機器學習筆記(一)線性迴歸模型

機器學習筆記(一)線性迴歸模型

一、線性迴歸模型

(一)引入—梯度下降演算法

1. 線性假設:

2. 方差代價函式:

 

3. 梯度下降:

 

4. : learning rate

(用來控制我們在梯度下降時邁出多大的步子,值較大,梯度下降就很迅速)

值過大易造成無法收斂到minimum(每一步邁更大)

值較小且適宜的情況下,步子越來越小直到收斂(導數項為零) 不再改變。

 

(注:每一次梯度下降,需完成多個的同步更新

右側計算後立即更新是不正確的,在計算時使用了新的,未實現同步。

(二)結合——一元線性迴歸模型

 

分別對求偏導:

 

 

將導數項代回得梯度下降:

 

課堂註解:

(二)多元線性迴歸模型

1. 多元線性迴歸假設函式形式:

2. 多元線性迴歸梯度下降演算法表示式:

課程註解:

3. 特徵縮放:使梯度下降的速度更快,收斂所需的迭代次數更少。

假設我們有兩個特徵 ,在梯度下降的過程中,畫出的引數等值線如下圖。

由圖中紅線可以看出,當 值的scale(取值範圍)相差很大時,梯度下降的的道路是曲折的,而當對數值進行處理後,梯度下降的過程變得很高效。所以我們在實際操作時,經常將特徵的取值約束到-1到+1的範圍內。(-1、+1兩個數值並不重要,只是作為輔助作用將特徵取值調整到合適範圍)

有時我們需要將特徵值“標準化”使其均值為0,其中是訓練集中特徵值的平均值,是該特徵值的取值範圍(最大值-最小值)

4. 是否收斂(觀察影象及收斂測試)

 

推薦通過左側影象觀察梯度下降演算法是否正常工作,而不是依靠自動收斂測試。

5. 關於學習率

左側兩種情況出現的原因可能是過大,然而如果過小,收斂將極其緩慢。

 

(通常會嘗試一些值,如0.01、0.001,十倍取一個值,對於這些不同的值,繪製隨迭代步數變化的曲線,選擇使快速下降的值,實際中常取三倍來找合適的值)

 

 

在訓練模型對資料進行擬合時,我們可以自由選擇使用什麼特徵

,並且通過設計不同的特徵,我們可以使用更復雜的函式去擬合數據,而不是隻用一條直線去擬合。

(三)正規方程法

1. 正規方程法一步求出最小(不需要特徵縮放)

將矩陣X、向量y帶入如下公式,(X:將第i條訓練資料特徵值轉置,作為設計矩陣X的第i行。y:把所有標籤,如訓練集中的所有房價資料,放在一起構成。)即可求出目標引數值。

 2. 正規方程法和梯度下降法優缺點比較

(n<10000選用正規方程法)

小結:我們可以看到,對於線性迴歸這個特定的模型,正規方程法能夠成為一個比梯度下降法更快的替代演算法,而在Logistics迴歸模型等一些其他更復雜的模型當中,正規方程法不適用。所以,我們應該掌握這兩種方法,根據具體的演算法、根據具體的問題,以及特徵的數量,對這兩種方法進行更好的應用。