多变量线性回归
目前為止,我們探討了單變量/特征的回歸模型,現在我們對房價模型增加更多的特征, 例如房間數樓層等,構成一個含有多個變量的模型,模型中的特征為(x1,x2,…,xn)
增添更多特征后,我們引入一系列新的注釋:
n 代表特征的數量
x(i)代表第 i 個訓練實例,是特征矩陣中的第 i 行,是一個向量(vector)。
xij 代表特征矩陣中第 i 行的第 j 個特征,也就是第 i 個訓練實例的第 j 個特征。
支持多變量的假設 h 表示為:h(x)=θ0+θ1x1+θ2x2...θnxn
這個公式中有 n+1 個參數和 n 個變量,為了使得公式能夠簡化一些,引入 x0=1,則公式
轉化為:h(x)=ΘTX
多變量梯度下降
與單變量線性回歸類似,在多變量線性回歸中,我們也構建一個代價函數,則這個代價 函數是所有建模誤差的平方和,即:
其中: hθ(x)=ΘTX=θ0x0+θ1x1+....θnxn
我們的目標和單變量線性回歸問題中一樣,是要找出使得代價函數最小的一系列參數。
多變量線性回歸的批量梯度下降算法為:
梯度下降法實踐 1-特征縮放
在我們面對多維特征問題的時候,我們要保證這些特征都具有相近的尺度,這將幫助梯 度下降算法更快地收斂。
以房價問題為例,假設我們使用兩個特征,房屋的尺寸和房間的數量,尺寸的值為 0- 2000 平方英尺,而房間數量的值則是 0-5,以兩個參數分別為橫縱坐標,繪制代價函數的等 高線圖能,看出圖像會顯得很扁,梯度下降算法需要非常多次的迭代才能收斂。
解決的方法是嘗試將所有特征的尺度都盡量縮放到-1 到 1 之間。
xn=xn?unsn
其中 un表示平均值, sn表示標準差
梯度下降法實踐 2-學習率
梯度下降算法收斂所需要的迭代次數根據模型的不同而不同,我們不能提前預知,我們 可以繪制迭代次數和代價函數的圖表來觀測算法在何時趨于收斂。
也有一些自動測試是否收斂的方法,例如將代價函數的變化值與某個閥值(例如 0.001) 進行比較,但通常看上面這樣的圖表更好。
梯度下降算法的每次迭代受到學習率的影響,如果學習率 α 過小,則達到收斂所需的迭 代次數會非常高;如果學習率 α 過大,每次迭代可能不會減小代價函數,可能會越過局部最 小值導致無法收斂。
通常可以考慮嘗試些學習率: α=0.01,0.03,0.1,0.3,1,3,10
特征和多項式回歸
注:如果我們采用多項式回歸模型,在運行梯度下降算法前,特征縮放非常有必要。
正規方程
正規方程是通過求解下面的方程來找出使得代價函數最小的參數的: σσθjJ(θj)=0
假設我們的訓練集特征矩陣為 X(包含了 x0=1)并且我們的訓練集結果為向量 y,則利用正規方程解出的向量為
注:對于那些不可逆的矩陣(通常是因為特征之間不獨立,如同時包含英尺為單位的尺
寸和米為單位的尺寸兩個特征,也有可能是特征數量大于訓練集的數量),正規方程方法是 不能用的。
梯度下降與正規方程的比較:
總結一下,只要特征變量的數目并不大,標準方程是一個很好的計算參數 θ 的替代方 法。具體地說,只要特征變量數量小于一萬,我通常使用標準方程法,而不使用梯度下降法。
隨著我們要講的學習算法越來越復雜,例如,當我們講到分類算法,像邏輯回歸算法,
我們會看到, 實際上對于那些算法,并不能使用標準方程法。對于那些更復雜的學習算法,
我們將不得不仍然使用梯度下降法。因此,梯度下降法是一個非常有用的算法,可以用在有大量特征變量的線性回歸問題
正規方程及不可逆性
有些同學曾經問過我,當計算 θ=inv(X’X ) X’y ,那對于矩陣 X’X 的結果是不可逆的情況 咋辦呢?
如果你懂一點線性代數的知識,你或許會知道,有些矩陣可逆,而有些矩陣不可逆。我 們稱那些不可逆矩陣為奇異或退化矩陣。
問題的重點在于 X’X 的不可逆的問題很少發生,在 Octave 里,如果你用它來實現 θ 的 計算,你將會得到一個正常的解。在 Octave 里,有兩個函數可以求解矩陣的逆,一個被稱 為 pinv(),另一個是 inv(),這兩者之間的差異是些許計算過程上的,一個是所謂的偽逆,另 一個被稱為逆。使用 pinv() 函數可以展現數學上的過程,這將計算出 θ 的值,即便矩陣 X’X 是不可逆的。
在 pinv() 和 inv() 之間,又有哪些具體區別呢 ?
其中 inv() 引入了先進的數值計算的概念。例如,在預測住房價格時,如果 x1 是以英尺 為尺寸規格計算的房子,x2 是以平方米為尺寸規格計算的房子,同時,你也知道 1 米等于 3.28 英尺 ( 四舍五入到兩位小數 ),這樣,你的這兩個特征值將始終滿足約束:x1=x2* (3.28)2。
實際上,你可以用這樣的一個線性方程,來展示那兩個相關聯的特征值,矩陣 X’X 將是 不可逆的。
第二個原因是,在你想用大量的特征值,嘗試實踐你的學習算法的時候,可能會導致矩 陣 X’X 的結果是不可逆的。
具體地說,在 m 小于或等于 n 的時候,例如,有 m 等于 10 個的訓練樣本也有 n 等于
100 的特征數量。
總之,出現不可逆矩陣的情況極少發生,所以 在大多數實現線性回歸中,出現不可逆的問題不應該過多的關注 XTX 是不可逆的。
總結
- 上一篇: 单片机期末复习代码
- 下一篇: 单片机实验-DA实验