深度学习之洞察数据实践:PyTorch 预测书店销售趋势

P1

让我们先来设一个场景:

你拥有一个书店,现在你要统计书店每天卖了多少本书,你可能写一个简单的列表来记录:

csharp 复制代码
[45、55、30]

过了一段时间后,你还想分类记录每天不同类型的书销量如何,你可能记录如下:

小说 科学 艺术
第一天 10 20 30
第二天 15 25 35
第三天 5 10 15

又过了一段时间, 除了销量外,你还想进一步记录每天各阶段每个类型书的访客数、以及带来的收,这样表格记录就变得更加复杂了:

时间\数据 销量 访客数 收入
小说 科学 艺术 小说 科学 艺术 小说 科学 艺术
早上 10 20 30 15 25 35 100 200 300
中午 12 22 32 18 28 38 120 220 320
晚上 8 18 28 13 23 33 80 180 280

基于第一种场景,我们可以通过销量来预测未来门店书籍的销量;

基于第二种场景,我们可以根据不同书籍的销量对比,来对不同类型书籍作库存的管理和需求设计;

基于第三种场景,我们则能构建更多、更复杂的预测模型,比如:

  • 预测未来特定时间段某类型书的销售量/访客数/收入;
  • 分析不同类型的书是如何影响整体销售指标的;
  • 识别不同消费群体的购买习惯;
  • 根据销售数据向消费者推荐书籍;

是否还有更复杂的"表"、更复杂的统计场景呢??

当然,还能增加额外的维度:不同地区的书店、再细化书的类别、细化时间维度等等。

信息量太大了,以至于一般的计算可能无法满足了,这时,就需要用到 "深度学习"!!

其中,用来计算这些信息量的深度框架就是本篇的主角 ------ PyTorch ~

P2

直接上手,不多BB ~~

查一下之前装的:Python,没问题,通过 pip 安装 torchvision

运行:

python 复制代码
from __future__ import print_function
import torch
x= torch.rand(5,3)
print(x)

上述代码先导入PyTorch库,然后创建了一个5行3列的张量(或者称作矩阵)。

基于上述书店卖书的例子,举一个实践示例:

假设我们有过去五天每种书籍(小说、科学、艺术)的销售收入数据,现在将尝试预测第六天的总收入。

ini 复制代码
import torch
import torch.nn as nn
import torch.optim as optim

# 假设的历史销售数据(每天的收入:小说,科学,艺术)
past_sales_data = torch.tensor([
    [100, 200, 300],
    [110, 210, 310],
    [120, 220, 320],
    [130, 230, 330],
    [140, 240, 340],
], dtype=torch.float32)

# 标准化输入数据
mean = past_sales_data.mean(dim=0)
std = past_sales_data.std(dim=0)
normalized_sales_data = (past_sales_data - mean) / std

# 总收入(每天的总和)
total_income = past_sales_data.sum(axis=1)

# 标准化输出数据
mean_total_income = total_income.mean()
std_total_income = total_income.std()
normalized_total_income = (total_income - mean_total_income) / std_total_income

# 构建一个简单的线性模型
model = nn.Linear(3, 1)

# 损失函数和优化器
criterion = nn.MSELoss()
optimizer = optim.SGD(model.parameters(), lr=0.01)

# 训练模型
epochs = 1000
for epoch in range(epochs):
    # 预测
    predictions = model(normalized_sales_data)

    # 计算损失
    loss = criterion(predictions, normalized_total_income.view(-1, 1))

    # 反向传播和优化
    optimizer.zero_grad()
    loss.backward()
    optimizer.step()

# 使用模型进行预测
# 假设第六天的销售数据
day_6_sales = torch.tensor([150, 250, 350], dtype=torch.float32)
predicted_income = model(day_6_sales).item()
print(f"预测的第六天总收入: {predicted_income:.2f}元")

运行结果:预测的第六天总收入: 173.81元

如果报错:Error "Import Error: No module named numpy" on Windows,就是没装 numpy,安装即可。

P3

除此之外建议:

为了更好的处理Python版本问题、以及第三方包安装问题,这里推荐下载:

------ 先下载 Anaconda,地址:Anaconda3-5.1.0-Windows-x86_64.exe

一直 next ,然后下载完成。

配置环境变量:

然后就妥了,打开:Anaconda Navigator

OK,以上便是本篇分享。点赞关注评论,为好文助力👍

我是掘金安东尼,安东尼陪你一起度过漫长编程岁月 🌏

相关推荐
web守墓人41 分钟前
【前端】ikun-markdown: 纯js实现markdown到富文本html的转换库
前端·javascript·html
Savior`L1 小时前
CSS知识复习5
前端·css
许白掰1 小时前
Linux入门篇学习——Linux 工具之 make 工具和 makefile 文件
linux·运维·服务器·前端·学习·编辑器
杨小扩5 小时前
第4章:实战项目一 打造你的第一个AI知识库问答机器人 (RAG)
人工智能·机器人
whaosoft-1435 小时前
51c~目标检测~合集4
人工智能
雪兽软件5 小时前
2025 年网络安全与人工智能发展趋势
人工智能·安全·web安全
中微子5 小时前
🔥 React Context 面试必考!从源码到实战的完整攻略 | 99%的人都不知道的性能陷阱
前端·react.js
元宇宙时间6 小时前
全球发展币GDEV:从中国出发,走向全球的数字发展合作蓝图
大数据·人工智能·去中心化·区块链
小黄人20256 小时前
自动驾驶安全技术的演进与NVIDIA的创新实践
人工智能·安全·自动驾驶
中微子6 小时前
React 状态管理 源码深度解析
前端·react.js