【斯坦福大學-機器學習】4.多變量線性迴歸
Author:kevinelstri
DateTime:2017/3/22
4.1 多維特徵
目前爲止,所討論的都是單變量/特徵的迴歸模型,也就是在對房價模型進行預測的過程中,只存在一個特徵:面積
下面,將構建一個含有多個變量的模型,來進行多特徵迴歸分析,模型的特徵爲
支持多變量的假設h表示爲:
在這個公式中,有n+1個參數和n個變量,爲了使公式更加簡化,引入
此時模型的參數是一個n+1維的向量,任何一個訓練實例也就是n+1向量,特徵矩陣X的維度是
4.2 多變量梯度下降
與單變量線性迴歸類似,在多變量線性迴歸中,我們也構建一個代價函數,則這個代價函數是所有建模誤差的平方和,即:
其中:
我們的目標和單變量線性迴歸問題是一樣的,是要找出使得代價函數最小的一系列參數,多變量線性迴歸的批量梯度下降算法爲:
Repeat{
}
即:
Repeat{
}
求導後得到:
Repeat{
}
當
4.3 梯度下降法實踐 1-特徵縮放
對於多維特徵問題,只有保證特徵具有相似的尺度,梯度下降算法才能更快的收斂。
以房價爲例,假設使用兩個特徵,房屋的尺寸和房間的數量,尺寸的值爲0-2000平方英尺,而房間數量的值則是0-5,以兩個參數分別爲橫縱座標,繪製代價函數的等高線圖:
由圖中可以知道,此時等高線圖很扁,梯度下降算法需要使用多次迭代才能收斂,解決的方法就是嘗試將所有特徵的尺度都儘量縮放到-1到1之間,如右圖:
4.4 梯度下降法實戰 2-學習率
梯度下降算法收斂所需要的迭代次數根據模型的不同而不同,是不能預知的,所以可以通過繪製迭代次數和代價函數的圖表來觀測算法在何時趨於收斂。
梯度下降算法的每次迭代都受到學習率的影響,如果學習率
4.5 特徵和多項式迴歸
x1=frontage(臨街寬度),x2=depth(縱向深度),x=frontage*depth=area(面積),則:
線性迴歸並不適用於所有數據,有時我們需要曲線來適應我們的數據,比如一個二次方模型:
4.6 正規方程
正規方程是通過求解方程來找出使得代價函數最小的參數的:
假設我們的訓練集特徵矩陣X包含了
上標T代表矩陣轉置,上標-1代表矩陣的逆。
設矩陣
梯度下降 | 正規方程 |
---|---|
需要選擇學習率 |
不需要 |
需要多次迭代 | 一次運算得出 |
當特徵數量n大時也能較好適用 | 需要計算 |
適用於各種類型的模型 | 只適用於線性模型,不適合邏輯迴歸模型等其他模型 |
只要特徵變量的數目並不大,標準方程是一個很好的計算參數 θ 的替代方法。具體地說,只要特徵變量數量小於10000,我通常使用標準方程法,而不使用梯度下降法。
4.7 正規方程及不可逆性
對於問題:
當計算
不可逆矩陣爲奇異矩陣。
Octave中,有兩個函數來求解矩陣的逆,一個被稱爲pinv(),另一個是inv(),這兩者之間的差異是計算過程上的差異。一個是所謂的僞逆,一個被稱爲逆。
pinv()函數對於那些即使是不可逆的矩陣,也可以計算出結果。
所以在Octave中,如果矩陣是不可逆的,那麼就使用僞逆函數pinv()來實現。