目录

1. logistic(逻辑斯蒂)函数

2.二分类任务(binary classification)损失函数

3.二分类任务(binary classification)最小批量损失函数

4.逻辑斯蒂回归代码实现

附:pytorch提供的数据集


推荐课程:06.逻辑斯蒂回归_哔哩哔哩_bilibili

回归是对连续变量预测。

分类是对离散变量预测。通过比较分类的概率来判断预测的结果。

回归&分类

以学生学习为例,回归任务:学习时间预测学习成绩,分类任务:学习时间预测通过考试的概率,两个类别标签,通过与不通过,这是一个二分类任务。

逻辑斯蒂回归是一种分类任务。

1. logistic(逻辑斯蒂)函数

这里的x更换为

logistic(逻辑斯蒂)函数:用于线性模型将输出值由实数空间映射到[0,1]之间,以此进行分类。与线性回归模型相比logistic(逻辑斯蒂)回归模型,多增加了一个映射函数。logistics函数使用符号表示。

映射

注:只要满足饱和函数的规定,都属于sigmoid函数,如logistic(逻辑斯蒂)函数。所以logistic回归有时也叫sigmoid。

2.二分类任务(binary classification)损失函数

也称为BCELoss()函数,二分类交叉熵(cross entorpy)

在二分类任务中,为class=1的概率, 1-为class=0的概率。为交叉熵表示log前后两个分布概率的差异大小。如果y=0表示class=0的概率为1,class=1的概率为0。如果y=1表示class=1的概率为1,class=0的概率为0。

当y=1时,loss=-log,表示值越大越接近class=1的概率为1的真实分布概率,损失值越小。当y=0时, loss=-log(1 - ), 表示值越小,class=0的概率越大,越接近class=0的概率为1的真实分布概率,损失值越小。可见下图。

3.二分类任务(binary classification)最小批量损失函数

求损失量均值。

4.逻辑斯蒂回归代码实现

1.数据准备

2.设计模型

3.构造损失函数和优化器

4.训练周期(前馈—>反馈—>更新)

逻辑斯蒂回归完整代码:

import torch
import torch.nn.functional as F#…1.准备数据………………………………………………………………………………………………………………………………………#
x_data = torch.Tensor([[1.0], [2.0], [3.0]])
# 二分类
y_data = torch.Tensor([[0], [0], [1]])#…2.设计模型………………………………………………………………………………………………………………………………………#
# 继承torch.nn.Module,定义自己的计算模块,neural network
class LogisticRegressionModel(torch.nn.Module):# 构造函数def __init__(self):# 调用父类构造super(LogisticRegressionModel, self).__init__()# 定义输入样本和输出样本的维度self.linear = torch.nn.Linear(1, 1)# 前馈函数def forward(self, x):# 返回x线性计算后的预测值# sigmoid()作映射变化y_pred = F.sigmoid(self.linear(x))return y_pred#……3.构造损失函数和优化器……………………………………………………………………………………………………………#
# 实例化自定义模型,返回做logistic变化(也叫sigmoid)的预测值
model = LogisticRegressionModel()
# 实例化损失函数,返回损失值
criterion = torch.nn.BCELoss(size_average=False)
# 实例化优化器,优化权重w
# model.parameters(),取出模型中的参数
optimizer = torch.optim.SGD(model.parameters(), lr=0.01)#……4.训练周期………………………………………………………………………………………………………………………………………#
for epoch in range(1000):# 获得预测值y_pred = model(x_data)# 获得损失值loss = criterion(y_pred, y_data)# 不会产生计算图,因为__str()__print(epoch, loss.item())# 梯度归零optimizer.zero_grad()# 反向传播loss.backward()# 更新权重woptimizer.step()
# 打印权重和偏值
print('w = ', model.linear.weight.item())
print('b = ', model.linear.bias.item())#……5.绘图………………………………………………………………………………………………………………………………………#
#用于在大型、多维数组上执行数值运算
import numpy as np
import matplotlib.pyplot as plt# 定义均匀间隔创建数值序列,指定间隔起始点、终止端,指定分隔值总数
x = np.linspace(0, 10, 200)
# 重新调整维度为200*1
x_t = torch.Tensor(x).view((200, 1))
y_t = model(x_t)
# 将tensor转化为numpy类型
y = y_t.data.numpy()
# 图线1,x,y 轴上的数值
plt.plot(x, y)
# 图线2,x,y 轴上的数值,设置颜色
plt.plot([0, 10], [0.5, 0.5], c='r')
plt.xlabel('Hours')
plt.ylabel('Probability of Pass')
# 绘制刻度线的网格线
plt.grid()
plt.show()

附:pytorch提供的数据集

pytorch的免费数据集由两个上层的API提供,分别是torchvision和torchtext。

torchvision提供了对照片数据处理相关的API和数据,数据所在位置:torchvision.datasets,比如torchvision.datasets.MNIST(手写数字照片数据),torchvision.datasets.cifar(十类彩色图像数据)。

torchtext提供了对文本数据处理相关的API和数据,数据所在位置:torchtext.datasets,比如torchtext.datasets.IMDB(电影评论文本数据)。

import torchvision
# 训练集
train_set = torchvision.datasets.MNIST(root="../dataset/mnist", train=True, download=True)
# 测试集
test_set = torchvision.datasets.MNIST(root="../dataset/mnist", train=False, download=True)
  • rootstring)– 数据集的根目录,其中存放processed/training.ptprocessed/test.pt文件。
  • train(bool, 可选)– 如果设置为True,从training.pt创建数据集,否则从test.pt创建。
  • download(bool, 可选)– 如果设置为True, 从互联网下载数据并放到root文件夹下。如果root目录下已经存在数据,不会再次下载。
  • transform可被调用 , 可选)– 一种函数或变换,输入PIL图片,返回变换之后的数据。如:transforms.RandomCrop
  • target_transform可被调用 , 可选)– 一种函数或变换,输入目标,进行变换。

torchvision.datasets-PyTorch 1.0 中文文档 & 教程

Pytorch深度学习笔记(七)逻辑斯蒂回归相关推荐

  1. 刘二大人 PyTorch深度学习实践 笔记 P6 逻辑斯蒂回归

    刘二大人 PyTorch深度学习实践 笔记 P6 逻辑斯蒂回归 P6 逻辑斯蒂回归 1.torchversion 提供的数据集 2.基本概念 3.代码实现 P6 逻辑斯蒂回归 1.torchversi ...

  2. 【笔记】逻辑斯蒂回归

    一.逻辑斯蒂回归概述 (1)逻辑斯蒂回归的目的:分类. 逻辑斯蒂回归常常解决分类问题,特别是二分类问题. (2)逻辑斯蒂回归的过程:回归. 计算结果是0~1之间的连续值,代表发生的可能性(类概率). ...

  3. 逻辑斯蒂回归 逻辑回归_逻辑回归简介

    逻辑斯蒂回归 逻辑回归 Logistic regression is a classification algorithm, which is pretty popular in some commu ...

  4. PyTorch深度学习实践(b站刘二大人)P6讲 逻辑斯蒂回归 Logistic Regression

    1.分类任务的数据集 ① The MNIST Dataset:handwritten digits Training set: 60,000 examples, Test set: 10,000 ex ...

  5. 《PyTorch深度学习实践》06 逻辑斯蒂回归 代码

    视频:06.逻辑斯蒂回归_哔哩哔哩_bilibili 参考文章:pytorch 深度学习实践 第6讲 逻辑斯蒂回归_会游泳的小雁的博客-CSDN博客 网络模型的基本框架 1步骤: 1.Prepare ...

  6. 逻辑斯蒂回归_逻辑斯蒂回归详细解析 | 统计学习方法学习笔记 | 数据分析 | 机器学习...

    本文包括: 重要概念 逻辑斯蒂回归和线性回归 二项逻辑斯谛回归模型 逻辑斯蒂回顾与几率 模型参数估计 多项逻辑斯谛回归 其它有关数据分析,机器学习的文章及社群 1.重要概念: 在正式介绍逻辑斯蒂回归模 ...

  7. 学习笔记——逻辑斯蒂回归与最大熵模型

    逻辑斯蒂回归(logistic regression)是统计学习中的经典分类方法.最大熵是概率模型学习的一个准则,将其推广到分类问题得到最大熵模型(maximum entropy).都属于对数线性模型 ...

  8. 统计学习方法读书笔记(六)-逻辑斯蒂回归与最大熵模型(迭代尺度法(IIS))

    全部笔记的汇总贴:统计学习方法读书笔记汇总贴 逻辑斯谛回归 (logistic regression )是统计学习中的经典分类方法.最大熵是概率模型学习的一个准则,将其推广到分类问题得到最大熵模型(m ...

  9. 机器学习笔记之(3)——Logistic回归(逻辑斯蒂回归)

    本博文为逻辑斯特回归的学习笔记.由于仅仅是学习笔记,水平有限,还望广大读者朋友多多赐教. 假设现在有一些数据点,我们用一条直线对这些点进行拟合(该直线称为最佳拟合直线),这个拟合的过程就称为回归. 利 ...

最新文章

  1. linux lab命令,Linux lab 命令
  2. actor multithreading concurrency
  3. docker-compose up volumes 调用外部文件,权限问题 cannot open directory xxxxx .: Permission denied
  4. 数字转换成字符串进行连接
  5. Android Canvas绘制带箭头的直线
  6. 阿里发布《2015-2016中国云栖创新报告》,北上杭深广排名前5
  7. html有几个文件夹,关于webpack打包问题,怎么打包成多个文件夹,每个文件夹下有相应的html,js和css?...
  8. 在$x_0$处全导数可逆的函数$f:\mathbf{R^n}\to\mathbf{R^n}$的一个性质
  9. Trick(十三)—— 数学与函数
  10. 目标检测的数据增强 -- 代码实现
  11. IOS测试版全版本固件下载集合
  12. 操作系统课后答案第五章
  13. Matlab条件语句
  14. label smoothingregularization (LSR)
  15. 7种常见分布的数学期望及其证明
  16. Linux五个最牛视频编辑软件
  17. Java鸡兔同笼问题
  18. Qt +百度地图+获取返回位置点
  19. 【Python】从爬虫开始吧——爬取妹子图整站
  20. 西门子博途系列学习笔记SCL(一)

热门文章

  1. 华为 HCIA-Cloud Computing V4.0(基础知识)
  2. 什么是接口测试?接口测试的流程步骤
  3. 做自媒体18个月,倒欠38万,一个自媒体创作者的自述
  4. 二手MacBook笔记本回收数量的提升,也是用户环保意识的增强
  5. 树莓派--seafile搭建私人网盘
  6. 年收入30万的家庭如何买保险最划算?
  7. 输出指定要求的回文日期与字符串拼接
  8. 从网瘾少年逆袭拿到微软、字节等offer(上)
  9. 汉字五行 五格五行 喜用神
  10. Windows认证原理