線性回歸是很常見的一種回歸,線性回歸可以用來**或者分類,主要解決線性問題。
線性回歸過程主要解決的就是如何通過樣本來獲取最佳的擬合線。最常用的方法便是最小二乘法,它是一種數學優化技術,它通過最小化誤差的平方和尋找資料的最佳函式匹配。
假設擬合直線為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 主要是通過聯結函式...
線性回歸 最小二乘法(二)
上篇文章中介紹了單變數線性回歸,為什麼說時單變數呢,因為它只有單個特徵,其實在很多場景中只有單各特徵時遠遠不夠的,當存在多個特徵時,我們再使用之前的方法來求特徵係數時是非常麻煩的,需要乙個特徵係數乙個偏導式,而卻最要命的時特性的增長時及其迅猛的,幾 十 幾百 幾千 單變數線性回歸 多變數線性回歸 所...