機器學習 R語言中如何使用最小二乘法

2022-07-18 14:54:27 字數 1341 閱讀 3275

這裡只是介紹下r語言中如何使用最小二乘法解決一次函式的線性回歸問題。

> x

> y

> lsfit(x,y)

結果如下:

$coefficients

intercept x

0.8310557 0.9004584

說明: intercept :截距

x: 變數x的係數

即對於一元一次函式截距式方程:y=0.9x+0.83

輸出結果:

k= 0.900458420439 b= 0.831055638877

cost:1

求解的擬合直線為:

y=0.9x+0.83

如果你不追求繪圖的美觀,可以簡單的直接用r繪製散點圖觀察規律也是可以的(當然也是可以通過設定引數調美觀點的)。

> plot(x,y)  ###x,y是上面已經賦值過的資料
結果如圖:

下面我們接著調整目標函式及樣本資料:

目標函式:y=ax2+bx+c

> x

> y

> lsfit(x,y)

$coefficients

intercept x

-14.66667 17.00000

從結果可以看出,求解的依然是y=kx+b形式的函式。

而調整python中的**(完整**見下面的連線):

def func(p,x):

a,b,c=p

return a*x*x+b*x+c

p0=[10,10,10]

#讀取結果

a,b,c=para[0]

print("a=",a,"b=",b,"c=",c)

print("cost:"+str(para[1]))

print("求解的擬合直線為:")

print("y="+str(round(a,2))+"x*x+"+str(round(b,2))+"x+"+str(c))

a= 2.0 b= 3.0 c= 4.0

cost:2

求解的擬合直線為:

y=2.0x*x+3.0x+4.0

通過對比看出,python  scipy庫中的leastsq函式通用性還是比較高的。

目標函式:y=ax2+bx+c的非線性回歸的擬合過程,見:機器學習:形如拋物線的散點圖在python和r中的非線性回歸擬合方法

機器學習 最小二乘

大家可以隨意搜尋一下,相關的文章很多。長篇大論的不少,剛入門的朋友一看到那些公式可能就看不下去了。比如下面的解釋 毫無疑問,這樣的解釋是專業的,嚴謹的。事實上,這是深度學習聖經裡的解釋。我並沒有詆毀大師的意思,只是覺得用乙個具體的例子來說明,可能會讓讀者更加容易理解。小明是跑運輸的,跑1公里需要6塊...

機器學習(八)最小二乘法

文章將從線性代數和概率論統計兩個角度去分析和解釋最小二乘法 在定義了內積的n維向量空間rn 成為歐式空間或內積空間 中,定義兩個向量 和 的距離等於 的長度,記為d 而且這樣的距離滿足三條基本性質 d d d 0,當且僅當 時等號成立 d d d 設w是rn的乙個子空間,它是由 1,2,s生成的,設...

機器學習系列之最小二乘法

最小二乘法,又稱最小平方法,是機器學習中基礎的演算法之一,它是一種優化演算法,通過最小化誤差的平方來尋找資料的最佳函式匹配。利用最小二乘法可以簡便地求得未知的資料,並使得這些求得的資料與實際資料之間誤差的平方和為最小。在機器學習中,還可以使用最小二乘法來進行曲線擬合。上圖介紹的上海市長寧區部分房價的...