首先,什麼是最小二乘?
維基百科給出了乙個定義,戳這裡
在我看來,最小二乘法是一種資料擬合方法。
我們從矩陣的角度來理解:
首先我們給出乙個矩陣中的定義: r
(a)=
,a∈r
n×n
有了上面的定義之後,我們就可以寫出最小二乘問題的矩陣形式: ∃b
∉r(a
),b∈
rn,minx∈
rn∥a
x−b∥
2 用bi格高一點的說法來說,就是求在歐幾里得空間中以2-範數作為距離,使得向量ax與b之間距離最小的x。
我們的目標是求:
minx∈r
n∥ax
−b∥2
當然我們知道,使得距離最小的向量x與使得距離平方最小的向量x是相同的,於是我們可以將所求的目標改寫為:
minx∈r
n∥ax
−b∥2
2 結合一些矩陣、行列式的知識,我們知道: ∥a
x−b∥
22=(
ax−b
)t∗(
ax−b
) 根據我們大一學過的高數知識,我們知道,求最極值問題直接對應的就是導數為零,因此我們試圖將所給出的原式的矩陣形式求導:
不過首先我們需要補充矩陣微積分(matrix calculus)的一些知識
(ps:是矩陣微積分吧…我沒有翻譯錯吧….) ∂
xta∂
x=∂a
tx∂x
=a
∂xta
x∂x=
ax+a
tx
如果矩陣a是對稱的(symmetric matrix): ax
+atx
=2ax
接下來,我們對原式化簡並求其對x的導數: ∥
ax−b
∥22=
xtat
ax−b
tax−
xtat
b+bt
b 求導得到: ∂∥
ax−b
∥22∂
x=2a
tax−
2atb
=0
於是我們就得到了,最小二乘法解的矩陣形式: x=
(ata
)−1a
tb
當然了,這裡是最簡答的線性最小二乘法,還有更為複雜的非線性以及矩陣a不滿秩的情況(hdq說他老師能默寫出這個過程…),等以後有時間了,我會再補充上去的。
變數可以是矩陣嗎 矩陣形式下的最小二乘法推導
最常用的是普通最小二乘法 ordinary least square,ols 所選擇的回歸函式應該使所有觀察值的殘差平方和達到最小。在擬合函式時,先假定函式的通用表示式。這裡以最簡單的一次函式為例。若 橫座標 自變數 為 則估計值 使得殘差和 最小,表示式如下 現在需要求 的值。取何值時,殘差和 最...
最小二乘法矩陣
usr bin env python coding utf 8 import numpy as np defcalc left k mat k 獲得左側k矩陣 param k return k mat for i in range k 1 now line for j in range k 1 re...
最小二乘法 公式推導
求出這樣一些未知引數使得樣本點和擬合線的總誤差 距離 最小 最直觀的感受如下圖 圖引用自知乎某作者 而這個誤差 距離 可以直接相減,但是直接相減會有正有負,相互抵消了,所以就用差的平方 1 寫出擬合方程y a bx y a bx 2 現有樣本 x1 y1 x2 y2 xn,y n x1,y1 x2,...