深度学习之洞察数据实践: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,以上便是本篇分享。点赞关注评论,为好文助力👍

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

相关推荐
清汤饺子8 小时前
OpenClaw 本地部署教程 - 从 0 到 1 跑通你的第一只龙虾
前端·javascript·vibecoding
yiyu07169 小时前
3分钟搞懂深度学习AI:实操篇:池化层
人工智能·深度学习
亚马逊云开发者9 小时前
5 分钟用 Amazon Bedrock 搭一个 AI Agent:从零到能干活
人工智能·agent·amazon
哈里谢顿9 小时前
0305乒乓xx agent运维开发岗面试记录
面试
哈里谢顿9 小时前
0309面试二总结
面试
小兵张健9 小时前
白嫖党的至暗时期
人工智能·chatgpt·aigc
哈里谢顿9 小时前
0309面试一记录
面试
哈里谢顿9 小时前
0310面试二记录
面试
哈里谢顿10 小时前
0310面试记录一
面试