一、多項式回歸
房價預測中:
有兩個特徵,frontage和depth,即臨街長度和房子的寬度。假如我們計算一個x = frontage * depth (房子面積),則假設函數變成了hθ(x) = θo + θ1x 。
線性回歸併不適用於所有數據,有時我們需要曲線來適應我們的數據,比如一個二次方模型或者三次方模型。
通常我們需要先觀察數據然後再決定準備嘗試怎樣的模型。 另外,我們可以令:
X2 = X2^3 , X3 = X3^3,從而將模型轉化為線性回歸模型。
根據函數圖形特性,我們還可以使:
如果我們採用多項式回歸模型,在運行梯度下降算法前,特徵縮放非常有必要。
二、正規方程
對於某些線性回歸問題,正規方程方法是更好的解決方案。如:
假設我們的θ是一個實數,而不是一個向量,代價函數是一個關於θ的二次函數
那么正規方程是通過求解下面的方程來找出使得代價函數最小的參數的,即求導:
但是實際上θ往往是一個向量,代價函數(下圖J函數括號中的m應為n)是關於這一系列θ的函數
假設我們的訓練集特徵矩陣為X(包含了Xo=1)並且我們的訓練集結果為向量y,則利用正規方程解出向量
上標T代表矩陣轉置,上標-1 代表矩陣的逆。設矩陣
以下表示數據為例:
即:
運用正規方程方法求解參數:
在 Octave 中,正規方程寫作:
pinv(X'*X)*X'*y
梯度下降與正規方程的比較:
只要特徵變量的數目並不大,正規方程是一個很好的計算參數的替代方法。具體地說,只要特徵變量數量小於一萬,通常使用正規方程法,而不使用梯度下降法。
三、正規方程以及不可逆性
正規方程中會存在不可逆的情況。
其一、當存在特徵是線性相關的時候,比如在預測住房價格時,如果X1是以英尺為尺寸規格計算的房子,X2是以平方米為尺寸規格計算的房子,而1英尺=3.28米,那麼兩個特徵值將始終滿足:X1=X2*(3.28)^2,這時矩陣
是不可逆的。
其二、特徵數量大於訓練集的數量時,矩陣不可逆,比如十個數據集但是有100個特徵。
當存在上述情況時,首先看看是否存在多餘的特徵,有則刪除。另外可以對線性模型進行正則化,這樣即使一個相對較小的訓練集,也可使用很多的特徵來找到很多合適的參數。
最後在Octave裡,有兩個函數可以求解矩陣的逆,一個被稱為pinv(),另一個是inv(),前者是所謂的偽逆,另一個被稱為逆。前者這種使用不同的線性代數庫的方法被稱為偽逆。即使矩陣不可逆,但算法執行的流程是正確的,正規方程仍然可以計算。
正規方程的推導過程: