機器學習系列 6:正規方程

  • 2019 年 10 月 7 日
  • 筆記

求一個函數的參數,例如下面這個方程,我們一般都會用梯度下降法去求。

還會不會有其他方法求參數呢?答案是有的,可以用正規方程(Normal Equation)去求參數。

那麼問題來了,什麼是正規方程呢?這個方程長什麼樣子,就讓我們來見識一下。

其中 X 是一個矩陣,這個矩陣的每一行都是一組特徵值,y 是數據集結果的向量。

舉個例子,還是求房價,現在有 4 組訓練集,如下表:

x_0 就代表常數項。在這個例子中,矩陣 X 為:

可以看出,矩陣 X 的每一行都代表一組數據集的特徵值。向量 y 為:

這樣通過正規方程就可以很容易地求出參數 θ(一定要注意,這裡的參數 θ 是一個向量)。

既然求參數 θ 有兩種方法,一個為梯度下降法,一個為正規方程,那麼他倆之間一定會有優缺點,下表就是這兩種方法的優缺點的對比:

當特徵值 n 非常大時,正規方程工作效率低的原因是要求一個非常大的矩陣的逆矩陣。

提到逆矩陣,就會出現矩陣的不可逆性,如果我們遇到了矩陣不可逆該怎麼辦呢?

正規方程有兩種情況會出現不可逆性,也就是這個矩陣無法得出。

第一種情況:出現了兩個相似的特徵,這個兩個特徵可以用一個線性關係進行表示。例如,米和英尺,這兩個都是用來描述長度的單位,且他們之間可以進行相互轉化,如果特徵值同時出現他們兩個,就會出現矩陣不可逆的情況。

解決方法:去掉任意一個即可。

第二種情況:特徵值的數量特別多,但是數據集的數量特別少。

解決方法:增加數據集或減少特徵值。

Tags: