numpy多項(xiàng)式擬合函數(shù)polyfit的使用方法代碼
import numpy as np
def fit(x,y,m,w):
if len(x)<=m:
return False
xishu = np.polyfit(x,y,m,w=w)
p = np.poly1d(xishu) # 構(gòu)造多項(xiàng)式
yfit = p(x) # 擬合的y值
yresid = y - yfit # 殘差
SSresid = sum(pow(yresid, 2)) # 殘差平方和
SStotal = len(y) * np.var(y) # 總體平均方差
if SStotal==0:#水平線
r2=1
else:
r2 = 1 - SSresid/SStotal # 擬合優(yōu)度
return (xishu,r2,yfit)
if __name__=="__main__":
x = np.arange(0,5,0.1)
z = [2+3*x+4*x**2 for x in x]
y = np.array([np.random.normal(z,3) for z in z])
weight=[1 for one in x]
print(fit(x,y,2,weight))
polyfit(x,y,m,w) 參數(shù)m為多項(xiàng)式的次數(shù)+1,w為權(quán)重。權(quán)重的含義是這個(gè)數(shù)據(jù)點(diǎn)的誤差要乘以權(quán)重,低點(diǎn)給予高權(quán)重可以減少低點(diǎn)的誤差,避免低點(diǎn)的相對誤差過大。
自定義函數(shù)fit(x,y,m,w)的返回值 (xishu,r2,yfit)分別為系數(shù)、相關(guān)系數(shù)、擬合Y值。
過原點(diǎn)也可以通過權(quán)重實(shí)現(xiàn)。代碼如下:
if must00:
x=np.append(x,0)#.append(0)
y=np.append(y,0)#y.append(0)
w=np.append(w,100000000)#.append(10000)
fit_r=fit(x,y,m,w)
if fit_r:
(xishu,r,y_fitted)=fit_r
else:
#fit error
xishu=[0,1,0]
y_fitted=x
r=0總結(jié)
到此這篇關(guān)于numpy多項(xiàng)式擬合函數(shù)polyfit使用的文章就介紹到這了,更多相關(guān)numpy多項(xiàng)式擬合函數(shù)polyfi內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實(shí)現(xiàn)交通數(shù)據(jù)可視化的示例代碼
本文主要分享了Python交通數(shù)據(jù)分析與可視化的實(shí)戰(zhàn)!其中主要是使用TransBigData庫快速高效地處理、分析、挖掘出租車GPS數(shù)據(jù),感興趣的可以了解一下2023-04-04
python+os根據(jù)文件名自動(dòng)生成文本
這篇文章主要為大家詳細(xì)介紹了python+os根據(jù)文件名自動(dòng)生成文本,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-03-03
Python必備技巧之Pandas數(shù)據(jù)合并函數(shù)
Pandas中一共有五個(gè)數(shù)據(jù)合并函數(shù),分別為:concat、append、merge、join、combine,本文詳細(xì)講解這五個(gè)函數(shù)的使用方法,需要的可以參考一下2022-03-03
Python?Celery定時(shí)任務(wù)詳細(xì)講解
這篇文章主要介紹了Python?Celery定時(shí)任務(wù)詳細(xì)講解,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下2022-08-08
pandas把dataframe轉(zhuǎn)成Series,改變列中值的類型方法
下面小編就為大家分享一篇pandas把dataframe轉(zhuǎn)成Series,改變列中值的類型方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04
基于Python對數(shù)據(jù)shape的常見操作詳解
今天小編就為大家分享一篇基于Python對數(shù)據(jù)shape的常見操作詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12

