深度學習模型速成,三分鐘解決經典線性回歸模型(附完整代碼)

2021-01-07 野蠻智能

每天給小編五分鐘,小編用自己的代碼,帶你輕鬆學習人工智慧!本文將會帶你做完一個深度學習進階項目,讓你熟練掌握線性回歸這一深度學習經典模型,然後在此基礎上,小編將在下篇文章帶你通過此模型實現對股票漲幅的預測。野蠻智能,小白也能看懂的人工智慧。

線性回歸

乾貨快遞點:

線性回歸是什麼?假如給定數據集{[x1,y1],[x2,y2][x3,y3]……},線性回歸希望用一個近似函數來描述這組數據,這個數據集裡y的影響因素只有一個就是x,那描述的結果應該就是y = wx + b這樣一條直線。這時就把這個解題模型叫做一維線性回歸。以此類推,當我們給定一組數據集{[x11,x12,x13,x14,y1],[x21,x22,x23,x24,y2],[x31,x32,x33,x34,y3]……},可以看到這組數據有4個自變量,一個因變量,就可以把它稱為多維線性回歸,對應產生的直線也是更高維度的,所以總結一下:線性回歸目的是創造一條線,使這條線儘可能多的經過我們的數據點,從而顯現出數據的一般規律,進而預測出更多的規律。線性回歸的優勢:也許你看完上邊的解釋,你會覺得線性回歸技術含量太低,但是,越簡單越實用,這確實人工智慧領域經久不衰的數學模型之一,面對比較複雜的現實問題,我們只要用更高的維度來描述,就可以把這組數據的規律描述清楚。而且這個模型的可解釋性好,所有的參數和對應的權重,我們都可以清晰地看到對應的含義。所以當前很多應用問題,我們都是用的這個模型的基礎上變化出很多版本來使用。都獲得了很好的效果。線性回歸的應用:既然線性回歸創造的這條線擬合了過去的數據,那麼數據的規律就蘊藏在這條線中,可以用它來實現未來的預測,所以在下篇文章中,小編將帶著大家做一個真正的,股票市場的漲幅預測模型。另一個應用是描述權重,通過線性回歸,可以得到不同屬性對最後結果的影響大小。進而幫助為我們選擇其他數學模型提供信息支持。代碼配送站:

如果你還沒有搭建好自己的深度學習模型。參考小編的寫給純小白的深度學習環境搭建寶典:pytorch+tensorflow。下面進入實戰。

以下是小編的代碼,為了幫助大家多多練習,特意印成了圖片格式。

在這段代碼中,首先是導入必要的包,其中第一二行的matplotlib.pyplot和numpy是用來畫圖的,torch.nn是神經網絡模組,用來進行神經網絡的相關處理。Variable是將張量轉換為變量的函數。

然後構建數據想x_train和y_train,一共12組,即為12個點。然後用matplotlib工具的scatter和show將這12個點畫出來。運行結果如下圖所示:

class內的部分,定義了這個訓練的模型,也就是線性回歸,先用super初始化,然後調用nn.linear創建一層神經元。然後使用前向傳播並返回執行結果。if_else部分是這個線性回歸模型放在GPU或者CPU上的選擇。優先放在GPU上,沒有GPU就使用CPU。

criterion = nn.MSELoss()定義了損失函數。optimizer定義了優化器,選擇使用的是SGD(梯度下降)。最後就是進行訓練了,我們設定迭代1000次,然後把數據放在GPU上(或者CPU上),然後將輸入數據裝入模型,保存模型運行出來的結果out。然後算出loss值,在進行梯度優化前進行歸零,對loss值求導後進行梯度優化。等待三到五秒,模型訓練完畢。中間輸出以下結果。

然後進行模型測試,首先需要將模型的狀態轉為測試,通過eval()完成。然後將原來的訓練集傳入測試,觀察輸出的預測值。中間需要注意下述部分:

predict = model(Variable(x_train).cuda())#如果你是cpu模式的,就不用輸入".cuda()"了,這部分代碼功能是將數據放到GPU上。predict = predict.data.cpu().numpy()#同樣的道理,如果你是CPU模式,也不用輸入".cpu()"部分了,這部分功能是將GPU數轉換為CPU數,因為numpy只能運行在cpu上。最後依舊利用plot畫圖工具,得到如下測試結果。

整體效果還不錯,如果想更加熟練地掌握,那麼自己也去敲一遍代碼吧。出現問題,可以在評論區留言,小編看到就會回的。野蠻智能,小白也能看懂的人工智慧,歡迎大家跟小編一起來學習。

相關焦點

  • 原理+代碼|Python實戰多元線性回歸模型
    文章來源: 早起Python作者:蘿蔔前言「多元線性回歸模型」非常常見,是大多數人入門機器學習的第一個案例,儘管如此,裡面還是有許多值得學習和注意的地方。其中多元共線性這個問題將貫穿所有的機器學習模型,所以本文會「將原理知識穿插於代碼段中」,爭取以不一樣的視角來敘述和講解「如何更好的構建和優化多元線性回歸模型」。
  • Python 實戰多元線性回歸模型,附帶原理+代碼
    來源 | 早起Python( ID:zaoqi-python )「多元線性回歸模型」非常常見,是大多數人入門機器學習的第一個案例,儘管如此,裡面還是有許多值得學習和注意的地方。其中多元共線性這個問題將貫穿所有的機器學習模型,所以本文會「將原理知識穿插於代碼段中」,爭取以不一樣的視角來敘述和講解「如何更好的構建和優化多元線性回歸模型」。主要將分為兩個部分:
  • 針對線性回歸模型和深度學習模型,介紹了確定訓練數據集規模的方法
    【導讀】對於機器學習而言,獲取數據的成本有時會非常昂貴,因此為模型選擇一個合理的訓練數據規模,對於機器學習是至關重要的。在本文中,作者針對線性回歸模型和深度學習模型,分別介紹了確定訓練數據集規模的方法。
  • 從FM推演各深度CTR預估模型(附代碼)
    不過此處省略了FNN的FM部分的線性模塊。這種省略為了更好地進行兩個模型的對比。接下來的計算圖我們都會省略線性模塊。此處附上FNN的代碼實現,完整數據和代碼請參考網盤。此處DeepFM的代碼實現,完整數據和代碼請參考網盤。
  • 線性模型(一)普通線性回歸到廣義線性模型
    普通線性回歸線性回歸線性模型如何解決非線性問題建模方法論背景線性模型為什麼能解決非線性問題。同時提醒讀者避免只從字面理解「線性」帶來誤會,即線性模型只能解決線性問題。本章將線性模型定位和表述為在數學表達式上具有線性的表示方式的數學模型,包含普通線性回歸模型和廣義線性模型(線性支持向量機本章不進行講述)。
  • 模型之母:多元線性回歸
    0x00 前言 在線性回歸的前3篇中,我們介紹了簡單線性回歸這種樣本只有一個特徵值的特殊形式,並且了解了一類機器學習的建模推導思想,即:然後通過最優化損失函數或者效用函數,獲得機器學習的模型。然後我們推導並實現了最小二乘法,然後實現了簡單線性回歸。最後還以簡單線性回歸為例,學習了線性回歸的評價指標:均方誤差MSE、均方根誤差RMSE、平均絕對MAE以及R方。
  • 機器學習之多元線性回歸模型梯度下降公式與代碼實現(篇二)
    上一篇我們介紹了線性回歸的概述和最小二乘的介紹,對簡單的一元線性方程模型手推了公式和python代碼的實現。機器學習之線性回歸模型詳細手推公式與代碼實現(篇一)今天這一篇來介紹多元線性回歸模型多元線性回歸模型介紹在回歸分析中,如果有兩個或兩個以上的自變量,就稱為多元回歸
  • 僅用 8 行代碼即可建立一個線性回歸模型
    我用 Python 理解並實現基本線性回歸模型的簡單指南。 本文最初發表在 Towards Data Science 博客,經原作者 Braden Riggs 授權,InfoQ 中文站翻譯並分享。數學建模和機器學習常常會讓人感覺像是難以探索和學習的課題,尤其是對那些不熟悉計算機科學和數學領域的人來說尤為如此。
  • 廣義線性模型學習
    彈性網絡彈性網絡 是一種使用 L1, L2 範數作為先驗正則項訓練的線性回歸模型。 這種組合允許學習到一個只有少量參數是非零稀疏的模型,就像 Lasso 一樣,但是它仍然保持 一些像 Ridge 的正則性質。我們可利用 l1_ratio 參數控制 L1 和 L2 的凸組合。彈性網絡在很多特徵互相聯繫的情況下是非常有用的。
  • [PRML]線性回歸模型--線性基函數模型
    這通常稱為線性回歸(linear regression)。,這個暗示了模型的限制。『tanh』函數的線性組合。在監督學習中如回歸和分類,我們不是尋找輸入變量的分布模型。如果數據集足夠大,那麼使用順序算法(sequential algorithms)可能是值得的,也稱為在線算法(on-line algorithms),在這種算法中,每次考慮一個數據點,並在每次這樣的展示後更新模型參數。順序學習也適用於實時應用,在這種應用中,數據觀察是在一個連續的流中到達的,並且必須在看到所有數據點之前做出預測。
  • 廣義線性模型與邏輯回歸
    學過統計學的同學們應該非常清楚,上述分類超平面其實就是一個多元線性模型。故和是線性相關的。並且在線性回歸中,我們假設響應變量服從正態分布的,即所以我們無法直接採用線性回歸模型進行建模。對於這一類問題,可以用邏輯回歸來處理。在講邏輯回歸之前,先簡單介紹下指數族分布、廣義線性模型,因為邏輯回歸是廣義線性模型的一種,所以我們需要了解如何從廣義線性模型得到邏輯回歸。二、指數族分布之所以先介紹指數族分布,因為指數族分布是所有廣義線性模型的假設條件之一。
  • 乾貨 | 對數線性模型之 Logistic 回歸、SoftMax 回歸和最大熵模型
    至於為何選擇Sigmoid函數,後面可以從廣義線性模型導出為什麼是Sigmoid函數。邏輯回歸可以看作是在線性回歸的基礎上構建的分類模型,理解的角度有多種(最好的當然是概率解釋和最小對數損失),而最直接的理解是考慮邏輯回歸是將線性回歸值離散化。即一個二分類問題(二值函數)如下:
  • 線性模型(三)邏輯回歸
    至此,經過連結函數轉化後的原值域為正、負無窮該變換稱為logit變換,經過logit變換後可以順利地使用線性回歸模型擬合觀察值的對數機率。此時,我們稱該模型為logit regression或logistic regression,即中文翻譯的邏輯回歸,適用於分類問題。
  • 使用單行代碼評估回歸模型的Python包
    對此的一個內聯嘗試是python包「 regressormetricgraphplot」的開發,該軟體包旨在幫助用戶使用單行代碼繪製評估指標圖,以針對不同的廣泛使用的回歸模型指標進行一目了然的比較。使用該實用程序包,還可以通過將其應用於日常的預測回歸問題,顯著降低從業人員以業餘方式評估不同機器學習算法的障礙。
  • 用 Python 進行多元線性回歸分析(附代碼)
    很多人在做數據分析時會經常用到一元線性回歸,這是描述兩個變量間統計關係的最簡單的回歸模型。但現實問題中,我們往往會碰到多個變量間的線性關係的問題,這時就要用到多元線性回歸,多元線性回歸是一元回歸的一種推廣,其在實際應用中非常廣泛,本文就用python代碼來展示一下如何用多元線性回歸來解決實際問題。圖1.
  • Stacking 模型融合詳解(附python代碼)
    閱讀過本文的人還看了以下:分享《深度學習入門:基於Python的理論與實現》高清中文版PDF+原始碼>《21個項目玩轉深度學習:基於TensorFlow的實踐詳解》完整版PDF+附書代碼《深度學習之pytorch》pdf+附書源碼將機器學習模型部署為REST APIFashionAI服裝屬性標籤圖像識別Top1-5方案分享重要開源!
  • 多元線性回歸的模型解釋、假設檢驗、特徵選擇
    線性回歸是最流行和討論最多的模型之一,它無疑是深入機器學習(ML)的入門之路。這種簡單、直接的建模方法值得學習,這是進入ML的第一步。在繼續討論之前,讓我們回顧一下線性回歸可以大致分為兩類。簡單線性回歸:當只有一個輸入變量時,它是線性回歸最簡單的形式。
  • 一般線性模型與廣義線性模型
    當然可以,請看廣義線性模型。 (二)廣義線性模型廣義線性模型是一般線性模型的推廣,一般線性模型中的因變量只能是定量變量,而廣義線性模型的因變量不再局限於定量變量,還可以是諸如二項分布、泊松分布、負二項分布等分布類型的定性變量。
  • eviews 線性回歸模型 - CSDN
    分享經典書籍: A Modern Approach to Regression with R.pdf  連結: https://pan.baidu.com/s/14NJt7CrOpUUe2hYyrJn_rg  提取碼:
  • eviews線性回歸模型 - CSDN
    分享經典書籍: A Modern Approach to Regression with R.pdf  連結: https://pan.baidu.com/s/14NJt7CrOpUUe2hYyrJn_rg  提取碼: 7fv6