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)的相對(duì)誤差過(guò)大。
自定義函數(shù)fit(x,y,m,w)的返回值 (xishu,r2,yfit)分別為系數(shù)、相關(guān)系數(shù)、擬合Y值。
過(guò)原點(diǎn)也可以通過(guò)權(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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實(shí)現(xiàn)交通數(shù)據(jù)可視化的示例代碼
本文主要分享了Python交通數(shù)據(jù)分析與可視化的實(shí)戰(zhàn)!其中主要是使用TransBigData庫(kù)快速高效地處理、分析、挖掘出租車(chē)GPS數(shù)據(jù),感興趣的可以了解一下2023-04-04Pycharm連接遠(yuǎn)程服務(wù)器過(guò)程圖解
這篇文章主要介紹了Pycharm連接遠(yuǎn)程服務(wù)器過(guò)程圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04python+os根據(jù)文件名自動(dòng)生成文本
這篇文章主要為大家詳細(xì)介紹了python+os根據(jù)文件名自動(dòng)生成文本,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-03-03Python必備技巧之Pandas數(shù)據(jù)合并函數(shù)
Pandas中一共有五個(gè)數(shù)據(jù)合并函數(shù),分別為:concat、append、merge、join、combine,本文詳細(xì)講解這五個(gè)函數(shù)的使用方法,需要的可以參考一下2022-03-03Python?Celery定時(shí)任務(wù)詳細(xì)講解
這篇文章主要介紹了Python?Celery定時(shí)任務(wù)詳細(xì)講解,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下2022-08-08pandas把dataframe轉(zhuǎn)成Series,改變列中值的類(lèi)型方法
下面小編就為大家分享一篇pandas把dataframe轉(zhuǎn)成Series,改變列中值的類(lèi)型方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-04-04基于Python對(duì)數(shù)據(jù)shape的常見(jiàn)操作詳解
今天小編就為大家分享一篇基于Python對(duì)數(shù)據(jù)shape的常見(jiàn)操作詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12python break和continue用法對(duì)比
在本篇文章里小編給大家整理的是一篇關(guān)于python break和continue用法對(duì)比內(nèi)容,有需要的朋友們可以學(xué)習(xí)參考下。2021-06-06