正規方程 Normal Equation
前幾篇部落格介紹了一些梯度下降的實用技巧,特征縮放(詳見http://blog.csdn.net/u012328159/article/details/51030366)和學習率(詳見http://blog.csdn.net/u012328159/article/details/51030961)。線上性回歸中,為了求得參數
的最優值,一般采用梯度下降和本文将要介紹的正規方程(normal equation)。相比較梯度下降采用多次疊代逼近的方式,normal equation采用矩陣運算可以直接求解出參數
。先介紹下什麼是normal equation,假設一個資料集X有m個樣本,n個特征。則假設函數為:
,資料集X的特征向量表示為:
表示第i個訓練樣本,
表示第i個訓練樣本的第j個特征。之是以在X中加了第一列全為1,是為了讓
,若希望假設函數能夠拟合Y,則
。又因為
,是以可以通過矩陣運算求出參數
。 熟悉線性代數的同學應該知道怎麼求出參數
,但是前提是矩陣X存在逆矩陣
。但隻有方陣才有可能存在逆矩陣(不熟悉定理的同學建議去補補線性代數),是以可以通過左乘
使等式變成
,是以
,有同學可能會有疑問
不一定存在啊,确實是,但是
極少不存在,後面會介紹
不存在的處理方法,先别着急。現在你隻需要明白為什麼
就可以了,并且記住。
介紹完normal equation求解參數
,我們已經知道了兩種求解參數
的方法,normal equation和梯度下降,現在來對比下這兩種方法的優缺點以及什麼場景選擇什麼方法。具體見下表吧:
回到上面說的
不一定存在,這種情況是極少存在的。如果
不可逆了,一般要考慮一下兩者情況: (1) 移除備援特征,一些特征存線上性依賴。 (2) 特征太多時,要删除一些特征。例如(m<n),對于小樣本資料使用正則化。