首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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)结果

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180203G0IUGK00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券