博客
关于我
pytorch入门第五课——逻辑斯蒂回归
阅读量:687 次
发布时间:2019-03-17

本文共 1290 字,大约阅读时间需要 4 分钟。

前言

本文记录了学习刘洪普老师的PyTorch入门课中逻辑斯蒂回归的内容。通过实践与理论学习,深入理解逻辑斯蒂回归的原理及其在分类任务中的应用。

以下是本文的目录结构:

目录

  • 1. 方法
  • 2. 关于激活函数
  • 3. Jupyter Notebook示例

一、方法

逻辑斯蒂回归并非传统意义上的回归算法,而是一种分类模型。它通过对分类概率进行建模,避免了对数据分布的假设,能够更准确地反映分类结果。

逻辑斯蒂函数的数学表达式为:

$$P(y=1|x) = \sigma(b + wx)$$

其中,$\sigma$ 是逻辑斯蒂激活函数,定义为:

$$\sigma(x) = \frac{1}{1 + e^{-x}}$$

逻辑斯蒂函数的主要特点包括:范围限制于(0,1),单调递增,并且具有饱和特性(随着输入值的远离零点,激活值趋近于1或0)。

二、Jupyter Notebook示例

以下是构建逻辑斯蒂回归模型的代码示例:

import torch
import torch.nn.functional as F
class LogisticRegressionModel(torch.nn.Module):
def __init__(self):
super(LogisticRegressionModel, self).__init__()
self.linear = torch.nn.Linear(1, 1)
\n def forward(self, x):
y_pred = F.sigmoid(self.linear(x))
return y_pred
model = LogisticRegressionModel()
criterion = torch.nn.BCELoss(size_average=False)
optimizer = torch.optim.SGD(model.parameters(), lr=0.01)
\n
for epoch in range(1000):
y_pred = model(x_data)
loss = criterion(y_pred, y_data)
print(f'Epoch {epoch}, Loss: {loss.item()}'."
optimizer.zero_grad()
loss.backward()
optimizer.step()

通过上述代码可以观察到以下训练效果:

Training Loss Trend:

0: 2.8701

1: 2.8529
2: 2.8366
3: 2.8209
4: 2.8061
5: 2.7920
6: 2.7786
7: 2.7658
8: 2.7536
9: 2.7419

随着训练次数的增加,损失值逐渐下降,表明模型在学习样本数据集。

三、总结

逻辑斯蒂回归是一种简单而有效的分类模型,通过对数据进行概率建模,避免了对分布假设的依赖。如果你有分类任务需要处理,不妨考虑使用逻辑斯蒂回归来解决问题。记住,在实践中,保持数据的平衡性和多样性是提升模型性能的关键。

转载地址:http://hmzhz.baihongyu.com/

你可能感兴趣的文章
oracle00205报错,Oracle控制文件损坏报错场景
查看>>
Oracle10g EM乱码之快速解决
查看>>
Oracle10g下载地址--多平台下的32位和64位
查看>>
Oracle10g安装了11g的ODAC后,PL/SQL连接提示TNS:无法解析指定的连接标识符
查看>>
Oracle11G基本操作
查看>>
Oracle11g服务详细介绍及哪些服务是必须开启的?
查看>>
Oracle11g静默安装dbca,netca报错处理--直接跟换操作系统
查看>>
oracle12安装软件后安装数据库,然后需要自己配置监听
查看>>
Oracle——08PL/SQL简介,基本程序结构和语句
查看>>
Oracle——distinct的用法
查看>>
Oracle、MySQL、SQL Server架构大对比
查看>>
oracle下的OVER(PARTITION BY)函数介绍
查看>>
Oracle中DATE数据相减问题
查看>>
Oracle中merge into的使用
查看>>
oracle中sql查询上月、本月、上周、本周、昨天、今天的数据!
查看>>
oracle中sql的case语句运用--根据不同条件去排序!
查看>>
Oracle中Transate函数的使用
查看>>
oracle中关于日期问题的汇总!
查看>>
Oracle中常用的语句
查看>>
Oracle中序列的操作以及使用前对序列的初始化
查看>>