博客
关于我
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/

你可能感兴趣的文章
Netty工作笔记0057---Netty群聊系统服务端
查看>>
Netty工作笔记0060---Tcp长连接和短连接_Http长连接和短连接_UDP长连接和短连接
查看>>
Netty工作笔记0063---WebSocket长连接开发2
查看>>
Netty工作笔记0070---Protobuf使用案例Codec使用
查看>>
Netty工作笔记0077---handler链调用机制实例4
查看>>
Netty工作笔记0084---通过自定义协议解决粘包拆包问题2
查看>>
Netty工作笔记0085---TCP粘包拆包内容梳理
查看>>
Netty常用组件一
查看>>
Netty常见组件二
查看>>
netty底层源码探究:启动流程;EventLoop中的selector、线程、任务队列;监听处理accept、read事件流程;
查看>>
Netty心跳检测机制
查看>>
Netty核心模块组件
查看>>
Netty框架内的宝藏:ByteBuf
查看>>
Netty框架的服务端开发中创建EventLoopGroup对象时线程数量源码解析
查看>>
Netty源码—2.Reactor线程模型一
查看>>
Netty源码—3.Reactor线程模型三
查看>>
Netty源码—4.客户端接入流程一
查看>>
Netty源码—4.客户端接入流程二
查看>>
Netty源码—5.Pipeline和Handler一
查看>>
Netty源码—5.Pipeline和Handler二
查看>>