1. 程式人生 > >Lesson2 Liner Regression with multiple variables(多變數的線性迴歸)

Lesson2 Liner Regression with multiple variables(多變數的線性迴歸)

Multiple Features(多特徵)

x_{j}^{(i)}是指訓練集中第i個訓練樣本的第j個特徵(標量);x^{(i)}是訓練集中第i個輸入特徵(向量)。

Example:

x^{(2)}=\begin{bmatrix} 1416\\ 3\\ 2\\ 40 \end{bmatrix},x_{3}^{(2)}=2

Hypothesis:

以前:h\theta (x)=\theta _{0}+\theta _{1}x

現在:h\theta (x)=\theta _{0}+\theta _{1}x_{1}+\theta _{2}*x_{2}+...+\theta _{n}x_{n}

定義x_{0}=1,(x_{0}^{(i)}=1),

x=\begin{bmatrix} x_{0}\\ x_{1}\\ x_{2}\\ ...\\ x_{n} \end{bmatrix} \epsilon R^{n+1},\theta \epsilon R^{n+1}

h_{\theta }(x)=\theta _{0}+\theta _{1}x_{1}+...+\theta _{n}x_{n}=\theta ^{T}x

代價函式(cost function):

J(\theta _{0},\theta _{1},...,\theta _{n})=\frac{1}{2m}\sum_{i=1}^{m}(h_{\theta }(x^{(i)})-y^{(i)})^2

梯隊下降法(Gradient descent):

以前:\theta _{0}:=\theta _{0}-\alpha \frac{1}{m} \sum_{i=1}^{m}(h_{\theta }(x^{(i)})-y^{(i)}) ,\theta _{1}:=\theta _{1}-\alpha \frac{1}{m} \sum_{i=1}^{m}(h_{\theta }(x^{(i)})-y^{(i)})x^{(i)}(n=1)

現在:\theta _{j}:=\theta _{j}-\alpha \frac{1}{m}\sum_{i=1}^{m}(h_{\theta }(x^{(i)})-y^{(i)})x_{j}^{(i)}(n>=1)  -->多元線性迴歸的梯度下降演算法

特徵縮放(feature scaling):

idea(實現思想):使不同特徵縮小至相近範圍

讓每一個特徵縮小至統一相近範圍:一般減去平均值然後除以標準差或最大最小值之差(均值歸一化)

均值歸一化(mean normalization):

x_{i}-u_{i}替代x_{i},這樣特徵值就具有為0的平均值(tips:不將此實施在x_{0}=1)

學習率\alpha

在選擇\alpha取值:...,0.001,0.003,0.01,0.03,0.1,0.3,1,...

Polynomial regression(多項式迴歸):

tips:注意歸一化

normal equation(正規方程):

這是一個求解\theta的解析演算法,對比梯度下降法,可以一次性求解\theta的最優值。

注意(x^{T}x)不一定可逆(奇異或退化矩陣),matlab/octave使用pvin()函式可能求解的是偽逆矩陣。

對不可逆情況的處理:找到無關的多餘特徵並刪除,這將解決不可逆問題。