Pytorch实现Logistic回归二分类

Posted CodeInHand

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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激活函数的神经网络结构,具体如下:

Pytorch实现Logistic回归二分类


其中f(x)sigmoid函数,函数图像为:

Pytorch实现Logistic回归二分类


 

 

二.Pytorch简述

Pytorch是一个Python优先的深度学习框架,支持GPU加速、支持动态图构建。你可以将它理解为类似Numpy的数学库,换句话理解,PytorchGPU上运行的Numpy,主要包的模块有:torch.autograd支持动态微分;torch.nn支持建立神经网络;torch.optim定义了各种优化函数;torch.multiprocessing支持多线程;torch.utils支持数据导入或处理。详情可以参见:http://pytorch.org

 

三.数据简述


Pytorch实现Logistic回归二分类

 

四.具体实现

(1)      数据预处理

对于数据主要进行去中心化和标准化处理,避免不同属性由于数值大小不同对分类结果产生偏差。

Pytorch实现Logistic回归二分类


(2)      模型定义

使用Pytorchnn模块,定义LR模型,使用Linear定义线性网络,再使用Functionalsigmoid函数来激活,具体如下。

Pytorch实现Logistic回归二分类


(3)      训练与测试

训练过程:定义损失函数为交叉熵函数,优化算法为SGD算法,使用backward进行迭代优化


Pytorch实现Logistic回归二分类

测试过程:

 

(4)      结果



以上是关于Pytorch实现Logistic回归二分类的主要内容,如果未能解决你的问题,请参考以下文章

pytorch学习实战逻辑回归

PyTorch学习5《PyTorch深度学习实践》——逻辑回归[对数几率回归](Logistic Regression)

干货|10分钟入门PyTorch~附源码

Titanic(Kaggle)-Logistic

机器学习:Logistic回归原理及其实现

机器学习实验四基于Logistic Regression二分类算法实现手部姿态识别