線性回歸 最小二乘求解

2022-09-23 10:09:11 字數 1594 閱讀 8924

線性回歸

線性回歸用於數值**,它的主要思想是利用預定的權值將屬性進行線性組合來表示類別:

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的向量,叫做**向量。

接下來的重點就是算觀測向量在設計矩陣列空間的正交投影了。我這裡簡要地給出求乙個向量在乙個空間中正交投影的計算方法。

如果是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可逆矩陣且在對角線上的元素為正數。

sklearn 最小二乘線性回歸

sklearn是機器學習中的乙個常用的python第三方模組,裡面對機器學習的許多方法進行了封裝,在進行機器學習的任務時,許多常用的演算法可在這個模組中直接呼叫。並且sklearn中還提供了許多可用於分類 回歸的優質資料集。使用好sklearn最直接的方法就是仔細閱讀官方 sklearn就像是乙個模...

線性回歸 最小二乘 diabetes

資料集 特徵 age 年齡 性別 bmi 體質指數 bp 血壓 s1,s2,s3,s4,s4,s6 六種血清的化驗資料 標籤 value 一年後疾病進展的量化指標 一 載入庫 import numpy as np import pandas as pd from sklearn import dat...

線性回歸之普通最小二乘

from sklearn import linear model reg linear model.linearregression print reg.fit 0,0 1,1 2,2 0,1,2 linearregression copy x true,fit intercept true,n j...