當前位置:
首頁 > 最新 > Pytorch實現Logistic回歸二分類

Pytorch實現Logistic回歸二分類

摘要:本文主要介紹使用深度學習框架Pytorch實現簡單的Logistic回歸模型,進而實現簡單的分類問題。

一.邏輯回歸簡述

邏輯回歸實質上是線性回歸,把特徵線性求和(一階)之後再使用Sigmoid函數將結果映射到[0,1]區間,得到分類結果為1的概率大小。具體表達式如下:

h(w,x) =1/(1+exp(-(w*x+b)))

其中x為特徵向量,可以表示為[x1,x2,....,xN],的取值範圍為[0,1]表示分類結果為1的概率大小。通過公式可以看出,邏輯回歸可以理解為單層的全連接網路加上sigmoid激活函數的神經網路結構,具體如下:

其中f(x)為sigmoid函數,函數圖像為:

二.Pytorch簡述

Pytorch是一個Python優先的深度學習框架,支持GPU加速、支持動態圖構建。你可以將它理解為類似Numpy的數學庫,換句話理解,Pytorch是GPU上運行的Numpy,主要包的模塊有:torch.autograd支持動態微分;torch.nn支持建立神經網路;torch.optim定義了各種優化函數;torch.multiprocessing支持多線程;torch.utils支持數據導入或處理。詳情可以參見:http://pytorch.org

三.數據簡述

本文實現邏輯回歸的二分類,主要使用UCI的機器學習數據,German信用數據,選擇numeric類型的數據。數據地址:https://archive.ics.uci.edu/ml/machine-learning-databases/statlog/german/。 數據主要有24個屬性,兩個類別(1表示GoodMan, 2表示Bad Man).數據格式如下:(1000*25,1000組數據,24個屬性,1個類別)

四.具體實現

(1)數據預處理

對於數據主要進行去中心化和標準化處理,避免不同屬性由於數值大小不同對分類結果產生偏差。

(2)模型定義

使用Pytorch的nn模塊,定義LR模型,使用Linear定義線性網路,再使用Functional的sigmoid函數來激活,具體如下。

(3)訓練與測試

訓練過程:定義損失函數為交叉熵函數,優化演算法為SGD演算法,使用backward進行迭代優化

測試過程:

(4)結果


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 SDN學習小組 的精彩文章:

AI與深度學習-2017年總結

TAG:SDN學習小組 |