Stanford公開課機器學習---week2-1.多變量線性迴歸 (Linear Regression with multiple variable)

3.多變量線性迴歸 (Linear Regression with multiple variable)


3.1 多維特徵(Multiple Features)

  • n 代表特徵的數量
  • x(i) 代表第 i 個訓練實例,是特徵矩陣中的第 i 行,是一個向量(vector)。
  • x(i)j 代表特徵矩陣中第 i 行的第 j 個特徵,也就是第 i 個訓練實例的第 j 個特徵。

多維線性方程:

hθ=θ0+θ1x+θ2x+...+θnx

這個公式中有 n+1 個參數和 n 個變量,爲了使得公式能夠簡化一些,引入 x0 =1, 所以參數θ 和訓練樣本X 都是n+1 緯的向量
θ=θ0θ1θn
X=x0x1xn

多維線性方程 簡化爲:

hθ=θTX

這裏寫圖片描述


3.2 多變量梯度下降(Gradient descent for multiple variables)

cost function :

J(θ)=12m1m(hθ(x(i))y(i))2

在 Octave 中,寫作: J = sum((X * theta - y).^2)/(2*m);

梯度下降公式:

θj:=θjαθjJ(θ0,θ1)
=θjα1m1m(hθ(x(i))y(i))x(i)j

在 Octave 中,寫作:
theta=thetaalpha/mX(Xthetay);

這裏寫圖片描述


3.3 特徵縮放(feature scaling)

以房價問題爲例,假設我們使用兩個特徵,房屋的尺寸和房間的數量,尺寸的值爲 0- 2000 平方英尺,而房間數量的值則是 0-5,繪製代價函數的等高線圖,看出圖像會顯得很扁,梯度下降算法下降的慢,而且可能來回震盪才能收斂。
這裏寫圖片描述

mean normalization

解決的方法是嘗試將所有特徵的尺度都儘量歸一化到-1 到 1 之間。最簡單的方法是令xiμi 代替 xi ,使得特徵的平均值接近0(x0 除外) :

xn=xnμnsn

其中  μn 是平均值, sn 是標準差sn 或特徵範圍max(xi)min(xi)

這裏寫圖片描述


3.4 學習率(Learning rate)

  1. 確保梯度下降working correctly
    繪製迭代次數和代價函數的圖表來觀測算法在何時趨於收斂。下降說明正常
    這裏寫圖片描述

若增大或來回波動,可能是α 過大

這裏寫圖片描述

這裏寫圖片描述

2.如何選取 α
先在10倍之間取,找到合適的區間後,在其中再細化爲3倍左右(log)
We recommend trying values of the learning rate α on a log-scale, at multiplicative steps of about 3 times the previous value
α=…,0.001,0.01,0.1,1,…
α=…,0.001,0.03,0.01,0.03,0.1,0.3,1,…


3.5 多項式迴歸(Features and Polynomial Regression)

房價預測問題
已知x1=frontage(臨街寬度),x2=depth(縱向深度),則hθ=θ0+θ1x1+θ2x2
若用 x=frontage*depth=area(面積),則hθ=θ0+θ1x 會得到更有意義的迴歸方程

線性迴歸並不適用於所有數據,有時我們需要曲線來適應我們的數據,比如一個二次方模型或三次方模型(考慮到二次方程的話總會到最高點後隨着size↑,price↓,不合常理;因此選用三次方程進行擬合更合適。):
這裏寫圖片描述

或採用第二個式子:

這裏寫圖片描述

特徵歸一化很重要,使得不同feature之間有可比性

這裏寫圖片描述


3.6 正規方程(Normal Equation)

之前用梯度下降算法,但是對於某些線性迴歸問題,正規方程方法更好。
要找到使cost function J(θ) 最小的θ,就是找到使得導數取0時的參數θ:
這裏寫圖片描述

θjJ(θ)=1m1m(hθ(x(i))y(i))x(i)j=0

X是m×(n+1)的矩陣,y是m×1的矩陣,正規方程(Normal Equation):

θ=(XTX)1XTy

在 Octave 中,正規方程寫作:
pinv(XX)Xy

這裏寫圖片描述

這裏寫圖片描述

注:對於那些不可逆的矩陣(通常是因爲特徵之間不獨立,或特徵數量大於訓練集的數量),正規方程方法是不能用的。

梯度下降 正規方程
需要選擇學習率α 不需要
需要多次迭代 一次運算得出
當特徵數量n大時也能較好適用 如果特徵數量n較大則運算代價大,因爲(XTX)1 的計算時間複雜度爲 O(n3)(當 n < 10000 時還是可以接受的)
適用於各種類型的模型 只適用於線性模型,不適合邏輯迴歸模型等其他模型
需要特徵值歸一化 不需要

3.7 練習

這裏寫圖片描述

這裏寫圖片描述

這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述


發佈了76 篇原創文章 · 獲贊 64 · 訪問量 36萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章