python進(jìn)行函數(shù)擬合 python做擬合

Python 中的函數(shù)擬合

很多業(yè)務(wù)場景中,我們希望通過一個(gè)特定的函數(shù)來擬合業(yè)務(wù)數(shù)據(jù),以此來預(yù)測未來數(shù)據(jù)的變化趨勢。(比如用戶的留存變化、付費(fèi)變化等)

創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設(shè),惠農(nóng)企業(yè)網(wǎng)站建設(shè),惠農(nóng)品牌網(wǎng)站建設(shè),網(wǎng)站定制,惠農(nóng)網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,惠農(nóng)網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

本文主要介紹在 Python 中常用的兩種曲線擬合方法:多項(xiàng)式擬合 和 自定義函數(shù)擬合。

通過多項(xiàng)式擬合,我們只需要指定想要擬合的多項(xiàng)式的最高項(xiàng)次是多少即可。

運(yùn)行結(jié)果:

對于自定義函數(shù)擬合,不僅可以用于直線、二次曲線、三次曲線的擬合,它可以適用于任意形式的曲線的擬合,只要定義好合適的曲線方程即可。

運(yùn)行結(jié)果:

python_numpy最小二乘法的曲線擬合

在了解了最小二乘法的基本原理之后 python_numpy實(shí)用的最小二乘法理解 ,就可以用最小二乘法做曲線擬合了

從結(jié)果中可以看出,直線擬合并不能對擬合數(shù)據(jù)達(dá)到很好的效果,下面我們介紹一下曲線擬合。

b=[y1]

[y2]

......

[y100]

解得擬合函數(shù)的系數(shù)[a,b,c.....d]

CODE:

根據(jù)結(jié)果可以看到擬合的效果不錯(cuò)。

我們可以通過改變

來調(diào)整擬合效果。

如果此處我們把擬合函數(shù)改為最高次為x^20的多項(xiàng)式

所得結(jié)果如下:

矯正 過擬合 現(xiàn)象

在保持?jǐn)M合函數(shù)改為最高次為x^20的多項(xiàng)式的條件下,增大樣本數(shù):

通過結(jié)果可以看出,過擬合現(xiàn)象得到了改善。

Python科學(xué)計(jì)算——任意波形擬合

任意波形的生成 (geneartion of arbitrary waveform) 在商業(yè),軍事等領(lǐng)域都有著重要的應(yīng)用,諸如空間光通信 (free-space optics communication), 高速信號處理 (high-speed signal processing),雷達(dá) (radar) 等。在任意波形生成后, 如何評估生成的任意波形 成為另外一個(gè)重要的話題。

假設(shè)有一組實(shí)驗(yàn)數(shù)據(jù),已知他們之間的函數(shù)關(guān)系:y=f(x),通過這些信息,需要確定函數(shù)中的一些參數(shù)項(xiàng)。例如,f 是一個(gè)線型函數(shù) f(x)=k*x+b,那么參數(shù) k 和 b 就是需要確定的值。如果這些參數(shù)用 p 表示的話,那么就需要找到一組 p 值使得如下公式中的 S 函數(shù)最?。?/p>

這種算法被稱之為 最小二乘擬合 (least-square fitting)。scipy 中的子函數(shù)庫 optimize 已經(jīng)提供實(shí)現(xiàn)最小二乘擬合算法的函數(shù) leastsq 。下面是 leastsq 函數(shù)導(dǎo)入的方式:

scipy.optimize.leastsq 使用方法

在 Python科學(xué)計(jì)算——Numpy.genfromtxt 一文中,使用 numpy.genfromtxt 對數(shù)字示波器采集的三角波數(shù)據(jù)導(dǎo)入進(jìn)行了介紹,今天,就以 4GHz三角波 波形的擬合為案例介紹任意波形的擬合方法。

在 Python科學(xué)計(jì)算——如何構(gòu)建模型? 一文中,討論了如何構(gòu)建三角波模型。在標(biāo)準(zhǔn)三角波波形的基礎(chǔ)上添加了 橫向,縱向的平移和伸縮特征參數(shù) ,最后添加了 噪聲參數(shù) 模擬了三角波幅度參差不齊的隨機(jī)性特征。但在波形擬合時(shí),并不是所有的特征參數(shù)都要納入考量,例如,噪聲參數(shù)應(yīng)是 波形生成系統(tǒng) 的固有特征,正因?yàn)樗拇嬖谑沟卯a(chǎn)生的波形存在瑕疵,因此,在進(jìn)行波形擬合并評估時(shí),不應(yīng)將噪聲參數(shù)納入考量,最終模型如下:

在調(diào)用 scipy.optimize.leastsq 函數(shù)時(shí),需要構(gòu)建誤差函數(shù):

有時(shí)候,為了使圖片有更好的效果,需要對數(shù)據(jù)進(jìn)行一些處理:

leastsq 調(diào)用方式如下:

合理的設(shè)置 p0 可以減少程序運(yùn)行時(shí)間,因此,可以在運(yùn)行一次程序后,用擬合后的相應(yīng)數(shù)據(jù)對 p0 進(jìn)行修正。

在對波形進(jìn)行擬合后,調(diào)用 pylab 對擬合前后的數(shù)據(jù)進(jìn)行可視化:

均方根誤差 (root mean square error) 是一個(gè)很好的評判標(biāo)準(zhǔn),它是觀測值與真值偏差的平方和觀測次數(shù)n比值的平方根,在實(shí)際測量中,觀測次數(shù)n總是有限的,真值只能用最可信賴(最佳)值來代替.方根誤差對一組測量中的特大或特小誤差反映非常敏感,所以,均方根誤差能夠很好地反映出測量的精密度。

RMSE 用程序?qū)崿F(xiàn)如下:

擬合效果,模型參數(shù)輸出:

leastsq 函數(shù)適用于任何波形的擬合,下面就來介紹一些常用的其他波形:

【轉(zhuǎn)】指數(shù)、冪函數(shù)擬合

轉(zhuǎn)自: python指數(shù)、冪數(shù)擬合curve_fit

1、一次二次多項(xiàng)式擬合

一次二次比較簡單,直接使用numpy中的函數(shù)即可,polyfit(x, y, degree)。

2、指數(shù)冪數(shù)擬合curve_fit

使用scipy.optimize 中的curve_fit,冪數(shù)擬合例子如下:

下面是指數(shù)擬合例子:

Python數(shù)據(jù)分析在數(shù)學(xué)建模中的應(yīng)用匯總(持續(xù)更新中?。?/h2>

1、Numpy常用方法使用大全(超詳細(xì))

1、Series和DataFrame簡單入門

2、Pandas操作CSV文件的讀寫

3、Pandas處理DataFrame,Series進(jìn)行作圖

1、Matplotlib繪圖之屬性設(shè)置

2、Matplotlib繪制誤差條形圖、餅圖、等高線圖、3D柱形圖

1、層次分析法(AHP)——算數(shù)平均值法、幾何平均值法、特征值法(Python實(shí)現(xiàn),超詳細(xì)注釋)

2、Python實(shí)現(xiàn)TOPSIS分析法(優(yōu)劣解距離法)

3、Python實(shí)現(xiàn)線性插值和三次樣條插值

4、Python實(shí)現(xiàn)線性函數(shù)的擬合算法

5、Python實(shí)現(xiàn)統(tǒng)計(jì)描述以及計(jì)算皮爾遜相關(guān)系數(shù)

6、Python實(shí)現(xiàn)迪杰斯特拉算法和貝爾曼福特算法求解最短路徑

當(dāng)前名稱:python進(jìn)行函數(shù)擬合 python做擬合
文章分享:http://muchs.cn/article26/hhescg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、企業(yè)網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、商城網(wǎng)站、軟件開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司