1. 程式人生 > >最小二乘擬合(矩陣)

最小二乘擬合(矩陣)

最小二乘公式

B=(XTX)1XTY

Bn×1矩陣
Xm×n矩陣,輸入變數/特徵
Ym×1矩陣,輸出變數/目標變數
m樣本數
n特徵個數


given:XB=Y
XTXB=XTY
B=(XTX)1XTY

為什麼 XB=Y 不直接得出 B=X1Y ?
答:因為X為m×n的矩陣,是不存在逆矩陣的。

Tips
如果一個矩陣不是方陣,是不存在逆矩陣的 如果對其求逆,就是求它的偽逆
比如一個2×3的矩陣,它的偽逆矩陣就是一個3×2的矩陣,兩者相乘之後得到2×2的單位矩陣


矩陣X必須是列滿秩矩陣,否則X

TX的逆就不會存在。

若A為m×n的矩陣,b為m×1的矩陣,則Ax=b表達了一個線性方程組,它的(normal equation)的形式為ATAx=ATb

當Ax=b有解時(即矩陣[A|b]的秩與A的秩相同),Ax=b與ATAx=ATb的解集是一樣。

而當Ax=b無解時,ATAx=ATb仍然有解,其解集即(least squares solution),即使得(Axb)T(Axb)的值最小的解,可以理解為使方程組Ax=b近似成立且誤差最小的解。

最小二乘法和梯度下降法


1 、本質相同:兩種方法都是在給定已知資料(因變數 & 自變數)的前提下對因變數算出出一個一般性的估值函式。然後對給定的新的自變數用估值函式對其因變數進行估算。
2、 目標相同:都是在已知資料的框架內,使得估算值與實際值的差的平方和儘量更小(事實上未必一定要使用平方),估算值與實際值的差的平方和的公式為:

error=J(θ)=i=1m(hθ(x(i))y(i))2
hθ(x)=ni=0θixi=θTX 為預測函式,θ=[θ0,θ1,...θn]TX=[x0,x1,...xn]T,m為樣本數,n為特徵個數。


1、實現方法和結果不同:

  • 是直接對error求導找出全域性最小,是
  • 是一種,有一個學習的過程,先由給定引數計算一個error,然後向該error下降最快的方向調整引數值,在若干次迭代之後找到區域性最小。
    梯度下降法的缺點是到最小點的時候收斂速度變慢,並且對初始點的選擇極為敏感,其改進大多是在這兩方面下功夫。

參考:

遇到的問題:

TypeError: No loop matching the specified signature and casting was found for ufunc solve1

【原因】:

矩陣運算前沒有統一資料型別

【解決】:

X = X.astype(float)

參考:

性質

  • 可逆矩陣的秩等於階數
  • 可逆矩陣為滿秩矩陣
  • 奇異矩陣為降秩矩陣
  • 當矩陣A的行列式|A|不等於0時,才存在可逆矩陣

計算可逆矩陣報錯

  • 檢查矩陣是否可逆(行列式的值不為0或者為滿秩矩陣