線性回歸之最小二乘法

2021-09-22 21:43:55 字數 2923 閱讀 2288

線性回歸是很常見的一種回歸,線性回歸可以用來**或者分類,主要解決線性問題。

線性回歸過程主要解決的就是如何通過樣本來獲取最佳的擬合線。最常用的方法便是最小二乘法,它是一種數學優化技術,它通過最小化誤差的平方和尋找資料的最佳函式匹配。

假設擬合直線為y=

ax+b

對任意樣本點(x

i,yi

)誤差為e=

yi−(

axi+

b)當s

=∑ni

=1ei

2為最小時擬合度最高,即∑n

i=1(

yi−a

xi−b

)2最小。分別求一階偏導 ∂s

∂b=−

2(∑i

=1ny

i−nb

−a∑i

=1nx

i)

∂s∂a=−2

(∑i=

1nxi

yi−b

∑i=1

nxi−

a∑i=

1nxi

2)6.分別讓上面兩式等於0,並且有nx

¯=∑n

i=1x

i,ny

¯=∑n

i=1y

i 7.得到最終解

a=∑ni=1

(xi−

x¯)(

yi−y

¯)∑n

i=1(

xi−x

¯)2

b=y¯−ax

¯ 結果也可以如下

b轉為向量形式 w=

[w0w

1]$『

,『$x

=[1x

1] 於是

y=w1

x1+w

0=wt

x損失函式為 l=

1n∑i

=1n(

yn−(

wtx)

2)=1

n(y−

xw)t

(y−x

w)最後可化為

1nxt

wtxw

−2nx

twty

+1ny

ty令偏導為0

∂l∂w

=2nx

txw−

2nxt

y=0

另外, (

xtx)

−1xt

x=e,

ew=w則, (

xtx)

−1xt

xw=(

xtx)

−1xt

y

w=(x

tx)−

1xty

import numpy as np

import matplotlib.pyplot as plt

x = [1,2,3,4,5,6,7,8,9,10]

y = [10,11.5,12,13,14.5,15.5,16.8,17.3,18,18.7]

a = np.vstack([x,np.ones(len(x))]).t

a,b = np.linalg.lstsq(a,y)[0]

print("y = %10.5fx + %10.5f"

%(a,b))

x = np.array(x)

y = np.array(y)

plt.plot(x,y,'o',label='data',markersize=10)

plt.plot(x,a*x+b,'r',label='line')

plt.show()

執行結果

*****===廣告時間*****===

鄙人的新書《tomcat核心設計剖析》已經在京東銷售了,有需要的朋友可以到 進行預定。感謝各位朋友。

為什麼寫《tomcat核心設計剖析》

線性回歸之最小二乘法簡要解析

最小二乘法 又稱最小平方法 是一種數學 優化技術。它通過最小化 誤差的平方和尋找資料的最佳函式匹配。利用 最小二乘法 可以簡便地求得未知的資料,並使得這些求得的資料與實際資料之間誤差的平方和為最小。最小二乘法 還可用於 曲線擬合 其他一些優化問題也可通過最小化 能量或最大化 熵用最小二乘法來表達。最...

線性回歸,最小二乘法

回歸的定義 對於乙個點集,使用乙個函式去擬合該點集,使點集與擬合函式間的誤差最小,如果這個函式曲線是一條直線,則是線性回歸,如果曲線是二次曲線,則是二次回歸。廣義線性回歸 廣義線性模型是線性模型的擴充套件,其特點是不強行改變資料的自然度量,資料可以具有非線性和非恆定方差結構 59 主要是通過聯結函式...

線性回歸 最小二乘法(二)

上篇文章中介紹了單變數線性回歸,為什麼說時單變數呢,因為它只有單個特徵,其實在很多場景中只有單各特徵時遠遠不夠的,當存在多個特徵時,我們再使用之前的方法來求特徵係數時是非常麻煩的,需要乙個特徵係數乙個偏導式,而卻最要命的時特性的增長時及其迅猛的,幾 十 幾百 幾千 單變數線性回歸 多變數線性回歸 所...