從我們上次介紹的問題進行延申,同樣是房子價格的預測,但我們此時的特徵從一個變成多個特徵,也就是變量從一個變成了多個,例如其他特徵有面積,房間個數,樓層,房齡等。我們用一個列向量代表這些特徵:
此時,我們假設的模型也要相應做出變化:
爲了方便計算,也就是使得兩個列向量可以進行運算,我們定義
這樣一來,模型可以寫成
同樣,我們定義損失函數
目標是使得損失函數取得最小值。
使用梯度下降更新參數
化簡
對於多個變量的線性迴歸問題,做到這裏你可能會發現結果與我們預期相差得比較遠或者收斂得比較慢,我們需要多數據進行一些預處理,試想一下,如果維度之間的數量級不同,梯度下降的方向就有可能受到比較大的影響,在沒有對數據進行預處理時,
進行數據預處理以後
下面提供幾種對數據進行預處理的操作
其中是數據集的均值,是與數據集中最小值的差,也可以是標準差。
上面的做法是一般的做法,但我們也應該會想,這整個過程我們所有的數據都已經知道了,能不能通過列等式求解呢,答案是可以的,但這種方法存在很大的問題,對於矩陣
我們列出的表達式是
推導如下:
但在數學證明當中,的計算是有誤差的,只有滿秩的矩陣纔有逆,我們在編程中只能通過求虛逆來計算,所以誤差比較大。