做乙個三階多項式擬合
,-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:
("迭代的次數: %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...