c++ 三次多项式拟合_线性回归进阶版,多项式线性回归讲解与实现(附完整代码)...
每天給小編五分鐘,小編用自己的代碼,帶你輕松學習深度學習!本文將會帶你做完一個深度學習進階版的線性回歸---多項式線性回歸,帶你進一步掌握線性回歸這一深度學習經(jīng)典模型,然后在此基礎(chǔ)上,小編將在下篇文章帶你實現(xiàn)神經(jīng)網(wǎng)絡(luò),并且用它實現(xiàn)對數(shù)據(jù)集的訓練。野蠻智能,小白也能看懂的人工智能。
本文代碼環(huán)境:Anaconda3+pytorch1.0,python版本為3.4-3.6,如果你還沒有搭建好環(huán)境,可以參考小編的:文科生也能看懂的深度學習入門寶典:pytorch+tensorflow快速上手
關(guān)于多項式線性回歸的前生今世小編已經(jīng)在深度學習模型速成,三分鐘解決經(jīng)典線性回歸模型(附完整代碼)進行了講解。本文要講的是一個進階版的線性回歸---多項式線性回歸。
多項式線性回歸
多項式線性回歸的最大優(yōu)點就是把原來的x1,x2,x3,這些數(shù)據(jù)更加多層次的描述變成了,例如x1,就變成了三個對應(yīng)權(quán)重分別乘以x1的一次方,x1的二次方,x1的三次方。這樣做的好處是可以更加準確的描述數(shù)據(jù)的特點。方便我們在選擇其他模型前,對數(shù)據(jù)有一個更好地預(yù)估。
多項式線性回歸代碼實現(xiàn)
講解完了多項式線性回歸的基本原理,下面進入代碼的實現(xiàn)。代碼如下:
代碼略微有點長,但還是希望大家耐心看完。首選是導(dǎo)入必要的包,這一步操作和小編的深度學習模型速成,三分鐘解決經(jīng)典線性回歸模型一文中的操作是一樣一樣的。然后make features?函數(shù)是將原來的數(shù)據(jù)進行升維操作。將原來的數(shù)據(jù)由{x1,x2,x3,x4},變成{[x1**1,x1**2,x1**3],[x2**1,x2**2,x2**3]},然后數(shù)據(jù)就從一個維度變?yōu)榱巳齻€維度,這樣可以更加具體的描述數(shù)據(jù)。畫出來的曲線也更加具體,準確。
然后定義數(shù)據(jù),定義好我們的數(shù)據(jù)集:x,和y=wx+b,這是我們希望將x作為數(shù)據(jù)集后訓練得到的最擬合的結(jié)果。(注意,這里的w和x是矩陣,所以她們的乘法要用mm,mm指的是矩陣乘法)。最終通過,f(x)這一函數(shù)得到結(jié)果。
然后get_batch函數(shù)定義了一組訓練集,和對應(yīng)的結(jié)果y。并將其返回。poly_model是我們定義的模型。criterion指的是損失函數(shù),optimizer選擇了梯度下降法進行優(yōu)化。最后在while(ture)下進行訓練。
測試結(jié)果如下:
為了方便大家對比,我把藍點向上移了一個單位。通過對比,我們發(fā)現(xiàn),結(jié)果還是很準確的。野蠻智能,小白也能看懂的人工智能。歡迎大家評論。
?
總結(jié)
以上是生活随笔為你收集整理的c++ 三次多项式拟合_线性回归进阶版,多项式线性回归讲解与实现(附完整代码)...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 根据坐标如何在matlab中l连成曲线,
- 下一篇: nginx 带宽_Nginx的Gzip功