原文: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過多):