多項式擬合 不調包,線性回歸

2021-10-07 06:53:29 字數 1930 閱讀 9957

做乙個三階多項式擬合

,-1) #x,y都轉成n,

1的矩陣

y = temp[:,

1].reshape(1

,-1)

n_x =

100print

(n_x)

w1 = np.

zeros

(shape=(1

,1), dtype = np.float32)

w2 = np.

zeros

(shape=(1

,1), dtype = np.float32)

w3 = np.

zeros

(shape=(1

,1), dtype = np.float32)

b = np.

zeros

(shape=(1

,1), dtype = np.float32)

learning_rate =

0.6for i in range

(10000):

z = np.

dot(w1, x)

+ np.

dot(w2, x**2

)+ np.

dot(w3, x**3

)+ b#這裡z的形狀是1

*n_x

l =(z-y)**

2 dz =2*

(z-y)

dw1 =

1./n_x*np.

dot(x, dz.t)

dw2 =

1./n_x*np.

dot(

(x**2)

, dz.t)

dw3 =

1./n_x*np.

dot(

(x**3)

, dz.t)

db =

1./n_x*np.

sum(dz, axis=1)

w1 = w1 - learning_rate*dw1

w2 = w2 - learning_rate*dw2

w3 = w3 - learning_rate*dw3

b = b - learning_rate*db

if i %

100==0:

print

("迭代的次數: %i , 誤差值: %f"

%(i,

1/n_x*np.

sum(l)))

y_hat = w1*x + w2*x**2

+ w3*x**3

+ bplt.

figure

(num=1)

plt.

scatter

(x, y, color=

'blue'

)plt.

plot

(x, y_hat,

'v')

plt.

show

()結果,可以在修改一下引數,達到更好的擬合效果,比如損失函式/100,在把學習率調小,或者增加迭代次數測試。

**和資料在github上github位址,點這裡

多項式擬合lm 非線性回歸模型 多項式回歸

作者丨丹丹 丨醫數思維雲課堂 id datamedi 在許多實際問題分析中,回歸分析的應用十分廣泛,它是處理變數之間相關關係最常用的一種統計方法。回歸分析可分為線性回歸和非線性回歸。線性回歸分析相信大家都已經非常熟悉了,它主要分析有線性回歸趨勢的兩個變數間的關係。但是在處理許多實際問題時,變數間的關...

多項式擬合缺點 多項式擬合

在網上看別人的心得 一 最小二乘法的基本原理 從整體上考慮近似函式同所給資料點 i 0,1,m 誤差 i 0,1,m 的大小,常用的方法有以下三種 一是誤差 i 0,1,m 絕對值的最大值,即誤差 向量的 範數 二是誤差絕對值的和,即誤差向量r的1 範數 三是誤差平方和的算術平方根,即誤差向量r的2...

多項式擬合

class1.cs 擬合類 using system using system.collections.generic using system.text namespace 最小二乘法擬合多項式 guass i,j sumarr arrx,i,arry,1,length return comput...