線性迴歸進階版,多項式線性迴歸講解與實現(附完整代碼)

每天給小編五分鐘,小編用自己的代碼,帶你輕鬆學習深度學習!本文將會帶你做完一個深度學習進階版的線性迴歸---多項式線性迴歸,帶你進一步掌握線性迴歸這一深度學習經典模型,然後在此基礎上,小編將在下篇文章帶你實現神經網絡,並且用它實現對數據集的訓練。野蠻智能,小白也能看懂的人工智能。

線性迴歸進階版,多項式線性迴歸講解與實現(附完整代碼)

本文代碼環境:Anaconda3+pytorch1.0,python版本為3.4-3.6,如果你還沒有搭建好環境,可以參考小編的:

關於多項式線性迴歸的前生今世小編已經在 進行了講解。本文要講的是一個進階版的線性迴歸---多項式線性迴歸。

多項式線性迴歸

多項式線性迴歸的最大優點就是把原來的x1,x2,x3,這些數據更加多層次的描述變成了,例如x1,就變成了三個對應權重分別乘以x1的一次方,x1的二次方,x1的三次方。這樣做的好處是可以更加準確的描述數據的特點。方便我們在選擇其他模型前,對數據有一個更好地預估。

多項式線性迴歸代碼實現

講解完了多項式線性迴歸的基本原理,下面進入代碼的實現。代碼如下:

線性迴歸進階版,多項式線性迴歸講解與實現(附完整代碼)

代碼略微有點長,但還是希望大家耐心看完。首選是導入必要的包,這一步操作和小編的深度學習模型速成,三分鐘解決經典線性迴歸模型一文中的操作是一樣一樣的。然後make features​函數是將原來的數據進行升維操作。將原來的數據由{x1,x2,x3,x4},變成{[x1**1,x1**2,x1**3],[x2**1,x2**2,x2**3]},然後數據就從一個維度變為了三個維度,這樣可以更加具體的描述數據。畫出來的曲線也更加具體,準確。

然後定義數據,定義好我們的數據集:x,和y=wx+b,這是我們希望將x作為數據集後訓練得到的最擬合的結果。(注意,這裡的w和x是矩陣,所以她們的乘法要用mm,mm指的是矩陣乘法)。最終通過,f(x)這一函數得到結果。

然後get_batch函數定義了一組訓練集,和對應的結果y。並將其返回。poly_model是我們定義的模型。criterion指的是損失函數,optimizer選擇了梯度下降法進行優化。最後在while(ture)下進行訓練。

測試結果如下:

線性迴歸進階版,多項式線性迴歸講解與實現(附完整代碼)

為了方便大家對比,我把藍點向上移了一個單位。通過對比,我們發現,結果還是很準確的。野蠻智能,小白也能看懂的人工智能。歡迎大家評論。


分享到:


相關文章: