線性迴歸
線性迴歸用於數值預測,它的主要思想是利用預定的權值將屬性進行線性組合來表示類別:
y=w0+w1x1+w2x2+...+wnxn
其中,y是類別屬性值,x1,x2,...,xn 是一般屬性值,w1,w2,...,xn 是權值, w0 稱爲偏置,類似於一元線性迴歸y=ax+b 中b。
求解線性迴歸就是通過已知的一些數據點
(1,xi1,xi2,...,xin,yi)
算出權重(w0,w1,...,wn) 。在屬性集合中加了一個1,是爲了與權重w0 對應,屬性值的上標i,是指這個屬性值屬於第i個數據點。
最小二乘求解線性迴歸
假設我們已知m個數據點的屬性值,我們便有了包含m個方程的方程組:
y1=w0+w1x11+w2x12+...+wnx1n
y2=w0+w1x21+w2x22+...+wnx2n
…
ym=w0+w1xm1+w2xm2+...+wnxmn
方程組可以表示爲矩陣形式:
⎡⎣⎢⎢⎢⎢⎢y1y2⋮ym⎤⎦⎥⎥⎥⎥⎥=⎡⎣⎢⎢⎢⎢⎢11⋮1x11x21⋮xm1⋯⋯⋱⋯x1nx2n⋮xmn⎤⎦⎥⎥⎥⎥⎥⎡⎣⎢⎢⎢⎢w0w1⋮wn⎤⎦⎥⎥⎥⎥
其中,
⎡⎣⎢⎢⎢⎢⎢y1y2⋮ym⎤⎦⎥⎥⎥⎥⎥
稱爲觀測向量,
⎡⎣⎢⎢⎢⎢⎢11⋮1x11x21⋮xm1⋯⋯⋱⋯x1nx2n⋮xmn⎤⎦⎥⎥⎥⎥⎥
稱爲設計矩陣,
⎡⎣⎢⎢⎢⎢w0w1⋮wn⎤⎦⎥⎥⎥⎥
稱爲參數向量。
這裏假設設計矩陣的各列線性無關,也就是說,用於表示
y 的其它屬性各貢獻了不同方向的力量。
我們知道,當
m≤n+1 時,通過消元法,就能求出
(w0,w1,...,wn) ,有一個解,或者多個解;但是當
m>n+1 時, 方程可能無解,這時設計矩陣的列向量生成了
R(n+1) 的一個子空間,也就是設計矩陣的列空間,當觀察向量屬於列空間時,方程組有解,但是當觀測向量不屬於列空間時,方程組就沒有解了。當方程組沒解時,我們該怎麼辦呢?算近似解。這兒,我們用列空間中離觀測向量最近的向量代替觀測向量求解方程組。列空間中離觀測向量最近的向量就是觀測向量列空的正交投影。關於這個結論有一個定理:
假設W是
Rn 空間中的一個字空間,
y 是
Rn 中的任意向量,
y′ 是y在W上的正交投影,那麼
y′ 是W中最接近
y 的向量,也就是說,
|y−y′|≤|y−v|
對所有屬於W又異於
y′ 的v都成立。其中|y-y’|是指向量
y−y′ 的模,它的計算公式是:
∑nk=1(y1−y1′)2
使得這個公式的值最小便是“最小二乘”這個名字的由來。
在我們這裏,
y 是觀測向量,
y′ 就是列空間中用來代替
y 的向量,叫做預測向量。
接下來的重點就是算觀測向量在設計矩陣列空間的正交投影了。我這裏簡要地給出求一個向量在一個空間中正交投影的計算方法。
如果
{u1,u2,...,up} 是
Rn 中子空間W的單位正交基,那麼
projwy=(yu1)u1+(yu2)u2+...+(yup)up
其中,
ui 都是向量。
要得到設計向量列空間的單位正交基,可以通過把設計矩陣進行QR分解得到。關於QR分解的定理如下:
如果
m x
n 矩陣A的列向量線性無關,那麼A可以分解爲
A=QR , 其中Q是一個
m x
n 矩陣,其列形成A矩陣列空間的一個單位正交基,R是一個
mn x
n 可逆矩陣且在對角線上的元素爲正數。
參考資料:
1.《概率導論》第2版,(美)伯特瑟卡斯,(美)齊齊克利斯 著,鄭忠國,童行偉 譯
2.《數據挖掘 實用機器學習工具與技術》第3版,
(新西蘭)威滕(Witten,I.H.),(新西蘭)弗蘭克(Frank,E.) 著,董琳 譯
3.《線性代數及其應用》第3版,(美)萊(Lay,D.C.) 著,劉深泉 等譯