前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Pytorch实现Logistic回归二分类

Pytorch实现Logistic回归二分类

作者头像
CodeInHand
发布2018-03-26 11:55:48
5.2K0
发布2018-03-26 11:55:48
举报
文章被收录于专栏:Pytorch实践Pytorch实践

摘要:本文主要介绍使用深度学习框架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) 结果

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-02-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CodeInHand 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档