Stanford機器學習---第二講. 多變量線性迴歸 Linear Regression with multiple variable

原文:http://blog.csdn.net/abcjennifer/article/details/7700772算法

 

本欄目(Machine learning)包括單參數的線性迴歸、多參數的線性迴歸、Octave Tutorial、Logistic Regression、Regularization、神經網絡、機器學習系統設計、SVM(Support Vector Machines 支持向量機)、聚類、降維、異常檢測、大規模機器學習等章節。全部內容均來自Standford公開課machine learning中Andrew老師的講解。(https://class.coursera.org/ml/class/index網絡

 

第二講-------多變量線性迴歸 Linear Regression with multiple variable機器學習

 

 

(一)、Multiple Features:學習

 

多變量假設:輸出由多維輸入決定,即輸入爲多維特徵。以下圖所示:Price爲輸出,前面四維爲輸入:測試

假設h(x)=θ0+θ1x1+……所謂多參數線性迴歸即每一個輸入x有(n+1)維[x0……xn].net

 

 

 

(二)、Gradient Descent for Multiple Variables:設計

 

左邊爲但參數的梯度遞減單變量學習方法,右圖new algorithm爲多變量學習方法。orm

 

 

 

 

 

(三)、Gradient Descent for Multiple Variables - Feature Scalingblog

 

It is important to 歸一化feature,因此用到了feature scaling,即將全部feature歸一化到[-1,1]區間內:ip

 

歸一化方法:xi=(xi-μi)/σi

 

 

 

 

 

(四)、Gradient Descent for Multiple Variables - Learning Rate

 

梯度降低算法中另外一關鍵點就是機器學習率的設計:設計準則是保證每一步迭代後都保證能使cost function降低。

這是cost function順利降低的狀況:

這是cost function不順利降低的狀況:

緣由如右圖所示,因爲學習率過大,使得隨着迭代次數的增長,J(θ)越跳越大,形成沒法收斂的狀況。

解決方法:減少學習率

總結:如何選取學習率:

測試α=0.001,收斂太慢(cost function降低太慢),測試0.01,過了?那就0.003……

 

 

 

 

 

(五)、Features and Polynomial Regression

 

假設咱們的輸入爲一座房子的size,輸出爲該house的price,對其進行多項式擬合:

有兩個選擇,二次方程或者三次方程。考慮到二次方程的話總會到最高點後隨着size↑,price↓,不合常理;所以選用三次方程進行擬合。

這裏歸一化是一個關鍵。

或者有另外一種擬合方程,如圖粉紅色曲線擬合所示:

 

 

 

 

 

(六)、Normal Equation

 

與gradient descent平行的一種方法爲Normal Equation,它採用線性代數中非迭代的方法,見下圖:

咱們想要找到使cost function 最小的θ,就是找到使得導數取0時的參數θ:
該參數可由圖中紅框公式得到:

具體來講:X是m×(n+1)的矩陣,y是m×1的矩陣

上圖中爲何x要加上一列1呢?由於常常設置X(i)0=1;

下面比較一下Gradient Descent與Normal Equation的區別:

 

 

 

 

 

(七)、Normal Equation Noninvertibility

 

咱們已知,對於有m個樣本,每一個擁有n個feature的一個訓練集,有X是m×(n+1)的矩陣,XTX是(n+1)×(n+1)的方陣,那麼對於參數θ的計算就出現了一個問題,若是|XTX|=0,即XTX不可求逆矩陣怎麼辦?這時能夠進行冗餘feature的刪除(m<=n的狀況,feature過多):

相關文章
相關標籤/搜索