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激活函数的神经网络结构,具体如下:
其中f(x)为sigmoid函数,函数图像为:
二.Pytorch简述
Pytorch是一个Python优先的深度学习框架,支持GPU加速、支持动态图构建。你可以将它理解为类似Numpy的数学库,换句话理解,Pytorch是GPU上运行的Numpy,主要包的模块有:torch.autograd支持动态微分;torch.nn支持建立神经网络;torch.optim定义了各种优化函数;torch.multiprocessing支持多线程;torch.utils支持数据导入或处理。详情可以参见:http://pytorch.org
三.数据简述
四.具体实现
(1) 数据预处理
对于数据主要进行去中心化和标准化处理,避免不同属性由于数值大小不同对分类结果产生偏差。
(2) 模型定义
使用Pytorch的nn模块,定义LR模型,使用Linear定义线性网络,再使用Functional的sigmoid函数来激活,具体如下。
(3) 训练与测试
训练过程:定义损失函数为交叉熵函数,优化算法为SGD算法,使用backward进行迭代优化
测试过程:
(4) 结果
以上是关于Pytorch实现Logistic回归二分类的主要内容,如果未能解决你的问题,请参考以下文章
PyTorch学习5《PyTorch深度学习实践》——逻辑回归[对数几率回归](Logistic Regression)