Python實現(xiàn)多項式擬合正弦函數(shù)詳情
1. 實驗?zāi)康?/h2>
掌握最小二乘法求解(無懲罰項的損失函數(shù))、掌握加懲罰項(2 范數(shù))的損失函數(shù)優(yōu)化、梯度下降法、共軛梯度法、理解過擬合、克服過擬合的方法(如加懲罰項、增加樣本)
2. 實驗要求
生成數(shù)據(jù),加入噪聲;
用高階多項式函數(shù)擬合曲線;
用解析解求解兩種 loss 的最優(yōu)解(無正則項和有正則項)
優(yōu)化方法求解最優(yōu)解(梯度下降,共軛梯度);
用你得到的實驗數(shù)據(jù),解釋過擬合。
用不同數(shù)據(jù)量,不同超參數(shù),不同的多項式階數(shù),比較實驗效果。
語言不限,可以用 matlab,python。求解解析解時可以利用現(xiàn)成的矩陣求逆。梯度下降,共軛梯度要求自己求梯度,迭代優(yōu)化自己寫。不許用現(xiàn)成的平臺,例如 pytorch,tensorflow 的自動微分工具。
3. 實驗內(nèi)容
3.1 算法原理
本實驗需要用多項式來擬合正弦函數(shù)。在 m 階多項式中,有 m+1 個待定系數(shù),m+1 個系數(shù)(由低到高)組成的(列)向量記作 w。要確定 w,用最小二乘法。
設(shè) E(w) = 1/2 * (Xw – Y)^T(Xw – Y),其中,X 為多項式中各個未知項代入觀測數(shù)據(jù)求得的矩陣,若記 Xi 為 X 的第 i 行的向量,則 Xi[j]為第 i 個觀測數(shù)據(jù) xi 的 j 次方,記有 n 組觀測數(shù)據(jù),多項式最高次為 m,易知 X 的維度為 n * (m+1)。Y 為觀測標簽向量。即 Y[j]為第 j 組觀測數(shù)據(jù)的標簽值(即 y 值)。從而問題轉(zhuǎn)化為:求向量 w,使得 E(w)最小。
- 若不加入正則項,令損失函數(shù)導(dǎo)數(shù)為零,求 w
- 若加入正則項,令損失函數(shù)導(dǎo)數(shù)為零,求 w
- 加入正則項,對損失函數(shù)用梯度下降,當損失函數(shù)收斂時,求 w
- 加入正則項,對損失函數(shù)用共軛梯度法,循環(huán)迭代 m+1 次,求 w 3.2 算法實現(xiàn) 生成數(shù)據(jù),加入噪聲
用高階多項式函數(shù)擬合曲線;
用解析解求解兩種 loss 的最優(yōu)解(無正則項和有正則項)
無正則項:
有正則項:
優(yōu)化方法求解最優(yōu)解(梯度下降,共軛梯度)
梯度下降法:
共軛梯度法:
用你得到的實驗數(shù)據(jù),解釋過擬合。
多項式次數(shù)為 1 時:
多項式次數(shù)為 3 時:
當多項式次數(shù)為 5 時:
當多項式次數(shù)為 7 時:
當多項式次數(shù)為 9 時:
到此這篇關(guān)于Python實現(xiàn)多項式擬合正弦函數(shù)詳情的文章就介紹到這了,更多相關(guān)Python擬合正弦函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實現(xiàn)的飛速中文網(wǎng)小說下載腳本
這篇文章主要介紹了Python實現(xiàn)的飛速中文網(wǎng)小說下載腳本,本文直接給出實現(xiàn)代碼,需要的朋友可以參考下2015-04-04使用IPython下的Net-SNMP來管理類UNIX系統(tǒng)的教程
這篇文章主要介紹了使用IPython下的Net-SNMP來管理類UNIX系統(tǒng)的教程,本文來自于IBM官方網(wǎng)站技術(shù)文檔,需要的朋友可以參考下2015-04-04python實現(xiàn)不同數(shù)據(jù)庫間數(shù)據(jù)同步功能
這篇文章主要介紹了python實現(xiàn)不同數(shù)據(jù)庫間數(shù)據(jù)同步功能,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-02-02python之pyinstaller組件打包命令和異常解析實戰(zhàn)
前段時間在制作小工具的時候,直接在命令行用pyinstaller工具打包成功后,啟動exe可執(zhí)行文件的時候各種報錯, 今天,我們就分享一下踩坑經(jīng)過,需要的朋友可以參考下2021-09-09python json 遞歸打印所有json子節(jié)點信息的例子
今天小編就為大家分享一篇python json 遞歸打印所有json子節(jié)點信息的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02Python淘寶或京東等秒殺搶購腳本實現(xiàn)(秒殺腳本)
本篇文章主要介紹了Python 通過selenium實現(xiàn)毫秒級自動搶購的示例代碼,通過掃碼登錄即可自動完成一系列操作,搶購時間精確至毫秒,可搶加購物車等待時間結(jié)算的,也可以搶聚劃算、火車票等的商品,感興趣的朋友跟隨小編一起看看吧2022-10-10