基于LSTM的销售预测系统的设计与实现

2020-04-01 20:05胡雨阳张承郑明夏定纯
计算机与网络 2020年23期
关键词:系统设计

胡雨阳 张承 郑明 夏定纯

摘要:针对大型商场后台服务器管理系统规模越来越大,结构越来越复杂及服务器负载量过大的问题,选用Java和SSM框架构建中台服务器,承担部分管理功能,缓解大后台服务器压力。同时为增强中台的综合管理水平,适应当前AI技术的迅猛发展,构建LSTM销售预测模型和模型应用接口,为中台提供智能化的预测分析功能。

关键词:销售预测;长短期记忆神经网络;SSM;系统设计

中图分类号:TP311文献标志码:A文章编号:1008-1739(2020)23-65-3

0引言

在商场终端设备和大后台服务器之间,增加一个中台服务器,可以有效减少大后台服务器的压力,同时在后台服务器出现故障时,可以保证商场数据的安全。此中台服务器主要负责商品信息管理、订单管理及支付等功能,商场管理系统的其他功能仍然由商场大后台服务器负责。此外,原有后台服务器采取的仍是传统数据统计分析方法,对商场销售大数据利用率和挖掘程度低。为此,本文采用LSTM神经网络进行销售预测建模分析,并设计与模型相对应的中台系统调用接口,完成可视化销售预测分析,为商场营销决策提供参考[1]。

1基于LSTM的预测模型

1.1 LSTM算法

神经网络主要应用在商业智能领域[2],LSTM是递归神经网络(RNNs)的一种,解决反向传播过程中存在梯度消失和梯度爆炸现象。通过引入门机制,解决了RNN模型不具备的长记忆性问题[3]。LSTM模型的一个神经元包含1个细胞状态和3个门机制,具体结构如图1所示。

遗忘门:控制上一时刻记忆细胞中的信息是否积累到当前记忆细胞中,记为。

输入门:控制记忆细胞中信息的加入,记为。

输出门:控制当前时刻记忆细胞中的信息是否输出为当前隐藏状态,记为。

1.2 LSTM銷售预测模型的构建

销售预测可分为有参数销售预测和无参数销售预测[4]。有参数预测模型是指根据销售地区、季节、天气、价格等因素来预测未来的销售状况。无参数预测模型是指使用预测目标作为单变量进行预测。本文采用的是无参数预测模型。预测模型构建过程如下:

(1)读取并定义原始销售量时间序列数据,本文模型训练的数据集来自某商城金装奶粉某一年的月销售量数据。

(2)为消除指标间数量级影响,采用min-max标准化公式对原始销售数据进行归一化处理。对应的归一化和反归一化公式分别为:

(3)根据经验,搭建具有2层LSTM隐藏层的神经网络模型,设置时间步长为2。

(4)将标准化的数据划分为训练集和验证集,并转化为可供模型使用的3维数组。

(5)损失函数选择均方误差。

(6)优化器选择AdamOptimizer,实现了Adam算法,优化目标是使均方误差最小。

(7)训练模型,调整超参数,优化拟合效果。

(8)确定超参数,保存为pb格式的模型文件并命名为milkpowder24,同时指定保存会话对象sess,其标签设为mytag。

模型误差曲线图如图2所示,为设计模型调用接口需要,还需将模型中的输入占位符的name属性命名为input_x,模型的预测值pred的name属性命名为predict。

2系统设计

2.1系统功能设计

系统主要面向商场内部工作人员,主要功能模块为:用户登录子模块、员工管理子模块、商品管理子模块、功能接口子模块、订单管理子模块和统计分析子模块。由于系统面向商场内部使用,所以没有注册功能模块,不同的模块对应不同的功能。系统功能结构如图3所示。

用户登录子模块:采用shiro安全框架,将用户登录信息封装为Token令牌并与数据库中的用户信息校验,简化实现用户登录系统验证。

员工管理子模块:商场管理人员根据商场员工的新增或者员工信息的变动,对员工信息实现增删改查功能。

商品管理子模块:调整商品编码、价格等信息,实现对商品信息的增删改查。

功能接口子模块:为POS收银提供系统登录验证、商品查询及订单支付等功能。

订单管理子模块:负责对已支付订单信息的管理。

统计分析子模块:利用数据库中商品过去一段时间产生的月销售数据作为预测输入,调用在jupyter上离线训练好的销售预测模型进行预测,并通过Echarts可视化分析预测结果。

2.2系统架构设计

由于B/S架构具有客户端零维护、数据实时性较强等特点[5],所以系统采用B/S系统架构。同时为了使系统具有良好的扩展性和跨平臺性[6],采用Java语言编写并使用IntelliJ IDEA 2019来搭建SSM框架,服务器选择tomcat,在数据库方面,采用Mysql数据库存储数据。在SSM框架中,Spring扮演着整个应用大管家的角色。整个应用中所有对象的创建、初始化、销毁以及对象间关联关系的维护,均由Spring来管理。SpringMVC作为View层的实现者,完成用户请求接收功能。SpringMVC的Controller作为整个应用的控制器,完成用户请求的转发及对用户的响应。MyBatis作为DAO层的实现者,完成对数据库的增删改查功能。系统整体架构如图4所示。

3 LSTM销售预测模型在系统中的应用

3.1 LSTM销售预测模型调用接口设计

由于系统没有对模型在线学习的需求,只需要模型离线训练好,部署在线上即可。因此选择Tensorflow的Java版本API实现Java调用模型在线预测。模型调用接口设计步骤如下:

①将之前训练并保存为pb格式的模型文件放入此预测系统项目文件夹中。

②通过maven工程的pom文件导入tensorflow的JAR包。

③创建名为MilkPowderUtils的接口类,由于模型输入要求为三维数组,所以同时创建形参为float类型的三维数组、返回值为float类型数值的静态模型调用方法。

④在静态模型调用方法中实现模型调用预测的功能逻辑。在此阶段,SaveModelBundle类负责Java程序与pb模型文件建立连接。此类通过调用load方法,传入模型文件的绝对地址和模型会话对象保存的mytag标签作为参数加载模型对象。进而通过模型对象获取模型会话对象和name属性为predict的预测操作对象。

⑤将预测操作作为参数,实例化Output类。

⑥形参传入数据通过Tensor类的create方法转化为Tensor类型并赋值给名为input_x的Tensor对象。

⑦最终调用模型会话对象,输入需要的数据,计算预测操作结果并将此预测结果处理后作为方法返回值。

⑧Java程序查询Mysql获取预测需要的数据,归一化处理并封装,调用静态模型调用方法,传入封装数据,获取预测值,反归一化后通过Echarts可视化分析预测结果。

3.2模型应用效果

图5是销售预测可视化分析界面,系统预测可视化分析功能运行正常。将实际值和预测值可视化对比分析,直观地展示了金装奶粉上半年的销售情况。

4结束语

随着商业智能的迅速发展,神经网络预测技术已经成为销售预测系统的关键。本文提出的基于LSTM的销售预测系统的设计,实现了对商品销售信息管理和对商业数据的可视化预测分析,系统运行正常。通过可视化分析,直观、明了地展示了销售情况,为管理者制定营销策略提供重要的参考价值。后期主要的研究工作是改进预测模型,不断完善销售预测系统。

参考文献

[1]闫博,李国和,黎旭.基于ARMA的销售预测方法与系统实现[J].计算机与现代化,2014(5):131-135.

[2]邱俊,张瑞林.基于遗传算法的循环神经网络在销售预测中的应用[J].浙江理工大学学报,2007(3):266-270.

[3]葛娜,孙连英,石晓达,等.Prophet-LSTM组合模型的销售量预测研究[J].计算机科学,2019,46(S1):446-451.

[4]李儒勋,张洪伟.基于BP的CRM系统销售预测的数据挖掘[J].计算机应用,2004(11):100-103.

[5]张式富,姜涛,吴效明.基于B/S的智慧社区健康监护管理系统软件的设计与实现[J].计算机应用与软件,2014,31(3):4-6.

[6]李跃军,桂岚,刘飞.基于B/S结构的交通运输预测系统设计与实现[J].交通与计算机,2002(2):17-20.

猜你喜欢
系统设计
基于FCR的城市地下供水管网应急处置系统设计
基于移动互联技术的通用评价系统的设计
基于UML技术的高校贫困生管理系统建模分析
一种基于SATA硬盘阵列的数据存储与控制系统设计研究
目标特性测量雷达平台建设构想
信息管理服务平台项目应用系统设计探析
基于工程应用能力培养的智能终端课程改革与实践