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

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

相关推荐
Hello--_--World5 小时前
节流 VS 防抖 相关知识点与面试题
前端·javascript
We་ct5 小时前
AI辅助开发术语体系深度剖析
开发语言·前端·人工智能·ai·ai编程
code_pgf5 小时前
Llama 3 / Qwen / Mistral / DeepSeek 对比详解
人工智能·知识图谱·llama
去伪存真5 小时前
Superpowers 从“调教提示词”转向“构建工程规范”
前端·agent
AI先驱体验官5 小时前
BotCash:Nvidia企业级Agent生态,智能体平台战争的新变量
大数据·人工智能·深度学习·重构·aigc
发现一只大呆瓜5 小时前
深度起底 Vite:从打包流程到插件钩子执行时序的全链路解析
前端·vite
nap-joker5 小时前
优化的局部定向韦伯图样与更快的区域卷积神经网络的集成,以增强医学图像检索和分类能力
人工智能·神经网络·cnn
jr-create(•̀⌄•́)5 小时前
Deep Learning入门---神经网络概念
人工智能·深度学习·神经网络
jserTang5 小时前
Claude Code 源码深度解析 - 前言
前端·javascript·后端
AI先驱体验官5 小时前
臻灵:数字人+大模型,实时交互的技术临界点在哪里
大数据·人工智能·深度学习·microsoft·重构·开源·交互