CN113807900A - 一种基于贝叶斯优化的rf订单需求预测方法 - Google Patents
一种基于贝叶斯优化的rf订单需求预测方法 Download PDFInfo
- Publication number
- CN113807900A CN113807900A CN202111198993.4A CN202111198993A CN113807900A CN 113807900 A CN113807900 A CN 113807900A CN 202111198993 A CN202111198993 A CN 202111198993A CN 113807900 A CN113807900 A CN 113807900A
- Authority
- CN
- China
- Prior art keywords
- data
- model
- order
- bayesian optimization
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0201—Market modelling; Market analysis; Collecting market data
- G06Q30/0202—Market predictions or forecasting for commercial activities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/243—Classification techniques relating to the number of classes
- G06F18/24323—Tree-organised classifiers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic networks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Data Mining & Analysis (AREA)
- Strategic Management (AREA)
- Finance (AREA)
- Development Economics (AREA)
- Accounting & Taxation (AREA)
- Evolutionary Computation (AREA)
- Entrepreneurship & Innovation (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Computational Mathematics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Algebra (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Game Theory and Decision Science (AREA)
- Economics (AREA)
- Marketing (AREA)
- General Business, Economics & Management (AREA)
- Life Sciences & Earth Sciences (AREA)
Abstract
本发明涉及一种基于贝叶斯优化的RF订单需求预测方法,用以实现同时对多种商品的未来需求或销量进行预测,包括以下步骤:1)对历史订单销量数据集进行数据预处理,并划分训练数据集和测试数据集作为基于随机森林的订单需求预测模型的输入量和输出量;2)通过贝叶斯优化方法获取订单需求预测模型的最优超参数,得到最优的订单需求预测模型;3)基于优化后的订单需求预测模型对订单商品未来的销量进行预测。与现有技术相比,本发明具有预测准确性高、快速寻优、多种时间序列预测等优点。
Description
技术领域
本发明涉及市场需求预测领域,尤其是涉及一种基于贝叶斯优化的RF订单需 求预测方法。
背景技术
随着互联网的发展以及经济全球化脚步的进一步加快,市场的竞争变得更加 的激烈,未来市场和客户的需求也会变得更加个性化、多样化。现有的生产与经营 模式不能对快速变化的市场进行预测,并对市场需求做出主动且迅速的响应,如何 利用科学可靠的方法对订单需求进行准确的预测,让公司或企业摆脱被动地响应市 场的困境,去适应未来市场的变化成为目前面临的一个挑战。
根据需求驱动理论可以得知,需求预测是供应链中各个环节的基点,包括原 材料的采购、企业的生产计划、库存计划、物流计划等。不准确的需求预测会造成 生产计划和实际需求量之间产生偏差,这样的偏差在传递过程中不断放大,让整条 供应链的成本都增加,给企业带来很大的损失,所以对需求进行准确的预测尤为重 要。需求预测能够迅速响应市场的需求波动,满足用户不同需求,让企业提前做好 生产计划、采购计划、销售计划、人员和设备配备等,企业以需求预测为根据,可 以充分利用企业的资源,减少企业的生产成本,提高企业的经营水平和企业在市场 中的竞争力。
订单需求预测是通过时间序列分析方法进行建模和预测的,使用时间序列进 行预测的前提是事物历史的一个发展状态可以一直延续到未来,数据的变化是循序 渐进的而不是跳跃性的。时间序列预测也可以依据预测的步长不同分为单步预测和 多步预测。目前现有的时间序列分析法和基于机器学习的时间序列分析法已在订单 需求预测方面得到广泛应用,但是,现有的时间序列分析的方法存在一定的局限性。 使用这种方法需要存在一定的前提假设条件,其次,现有的方法对非线性的数据拟 合能力是有限的,预测精度往往达不到人们的期望。机器学习模型准确率高,对非 线性数据具有较好的拟合和泛化能力,所以随着机器学习理论的发展和不断成熟, 使用机器学习的方法对时间序列数据进行预测也成为一种主流。通过分析历史数据 来构造特征作为模型的输入,构建损失函数让模型不断迭代训练学习逼近目标是使 用机器学习的方法进行时序预测的基本思路。在实际的应用背景下,机器学习的模 型被广泛的认可,机器学习模型特征的选择和构造决定了机器学习模型的精度,但 是,机器学习模型的输入特征往往是人工构造的,过于依赖人工构造的特征成为机 器模型的缺点之一。
随着大数据时代的到来、商品种类的不断增多以及计算机人工智能的不断发 展,将基于深度学习的时间分析方法应用于订单需求预测也的背景下成为学者们研 究的热门,而目前很多研究都是对订单中某一种产品的销量进行预测,随着订单中 商品数量的增多,能够使用一个模型同时实现对多种商品的预测成为实际应用中难 题。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种基于贝叶斯 优化的RF订单需求预测方法。
本发明的目的可以通过以下技术方案来实现:
一种基于贝叶斯优化的RF订单需求预测方法,用以实现同时对多种商品的未 来需求或销量进行预测,包括以下步骤:
1)对历史订单销量数据集进行数据预处理,并划分训练数据集和测试数据集 作为基于随机森林的订单需求预测模型的输入量和输出量;
2)通过贝叶斯优化方法获取订单需求预测模型的最优超参数,得到最优的订 单需求预测模型;
3)基于优化后的订单需求预测模型对订单商品未来的销量进行预测。
所述的步骤1)中,数据预处理具体包括以下步骤:
11)采集历史订单销量数据并对数据进行清洗,去除重复数据和缺失数据,再 将数据集划分为划分训练数据集和测试数据集;
12)对数据集进行归一化处理,用以加快梯度下降求解最优值的速度和提高模 型准确率;
13)对特征进行构造,选择步长t为滑动窗口的长度,通过前t-1个月的历史 销量数据预测下一个月的订单需求,并对每一行数据通过滑动窗口进行划分;
14)将产品的SKU值即产品的编号作为唯一区别不同产品的类别标识,并对 订单中产品SKU值进行独热编码,作为额外的特征输入。
所述的步骤12)中,采用min-max标准化的方法将原始的历史订单销量数据 通过线性变换使得取值范围在[0,1]之间。
所述的步骤2)中,基于贝叶斯优化的订单需求预测模型的建模具体包括以下 步骤:
201)以均方差平均值MSE最小或R2_score平均值最大作为优化目标:
202)建立贝叶斯对象,设定参数的优化范围,利用贝叶斯优化方法对订单需 求预测模型进行优化;
203)获取均方误差负值最大或R2_score得分最大的位置以及对应超参数的值;
204)将贝叶斯优化得到的最优超参数带入模型中,并使用该模型对测试数据 进行预测,并使用对模型做出评估。
所述的步骤2)中,订单需求预测模型的训练方法具体包括以下步骤:
211)根据数据构造特征值,将数据集划分训练样本和测试样本;
212)选取M棵决策树作为弱分类器,使用bootstrap sample采样的方法从训 练样本中采样M次作为M棵决策树的训练集{D1,D2,...DM},对应决策树 {T1(θ),T2(θ),...TM(θ)};
213)对于每棵决策树,在分裂节点时选择不放回的抽取n维特征,遍历每个 特征的均方差值并选取最小均方差对应的特征作为最佳分裂特征;
214)当决策树到终止条件即设置树的最大深度max-depth或者均方差值达到 设置的阈值,停止分裂完成训练。
所述的步骤213)中,节点分裂具体为:
每棵决策树选择使用CART回归树进行回归预测,采用最小化均方误差准则 决定节点是否分裂。
所述的最小化均方误差m的表达式为:
其中,s为当前节点的样本集,A为样本集s中抽取的特征子集,D1、D2分别 为根据特征集中不同的特征划分得到的子集,yi为每个样本真实的输出值,c1、c2分 别为样本子集D1、D2样本输出均值。
所述的步骤213)中,遍历特征子集A中的特征,得到最小均方误差对应的特 征作为划分该节点的最佳特征,不断重复并最终得到一个CART树模型,预测值 即为CART树叶子结点均值,RF最终预测值为全部的树预测结果的加权平均值。
所述的步骤204)的贝叶斯优化方法中,贝叶斯优化的学习模型具体为:
其中,x表示超参数,X为超参数搜索空间空间,f(x)为目标函数,x*为最 优超参数;
贝叶斯优化方法中的高斯过程具体为:
假设目标函数f(x)服从高斯分布,且高斯过程中任意有限个随机变量均满足 联合概率分布,存在满足正态分布的观测噪声,根据似然函数得到边际似然并根据 高斯过程得到未知函数集合预测的均值和方差;
贝叶斯优化方法中的采集函数具体为:
采用置信区间策略选择采集函数。
所述的步骤3)中还包括构建基于贝叶斯优化的RF订单需求预测系统,该系 统包括:
前端页面:使用Bootstrap框架和jQuery语言实现,包括用户管理、订单数据 管理、模型选择和模型训练模块和历史建模记录四个功能块;
后端接口:使用python实现后端实现包括数据读取与保存、数据处理和分析、 建立数学模型以及处理业务逻辑,数据读取和存储用用以实现操作数据库中的数据, 包括读取和操作订单历史数据、用户数据,读取和保存模型训练过程中产生的过程 文件,数据处理和分析以及建立数学模型主要使用python中的扩展库,根据需求 调用相关API实现数据处理和预测模型建立;
数据库:在系统开发阶段使用SQLite数据库,用以保存使用系统的用户的相 关信息、订单数据、订单备份数据以及在数据处理,模型训练与预测过程中产生的 新的数据和图表的过程文件,建立后端与数据库之间的连接,使用SQLAlchemy 中的Model建立数据表,管理数据库。
与现有技术相比,本发明具有以下优点:
本发明能满足同时对订单中多种商品未来的需求进行预测,优化后的RF模型 提高了预测的准确性,贝叶斯优化提高了巡游的速度,同时,能够利用订单需求预 测系统对不同订单中的商品进行预测,即使不是专业的人员也可以根据系统界面提 示进行操作,完成订单预测工作,该系统使得订单预测的工作更加数字化和智能化。
附图说明
图1为基于贝叶斯优化的RF订单需求预测模型建模流程示意图。
图2为订单需求预测建模系统总体设计图。
图3为特征构造示意图。
图4为随机森林模型算法流程图。
图5为贝叶斯优化过程示意图。
图6为k折交叉验证示意图。
图7为贝叶斯优化寻优过程。
图8为贝叶斯优化与网格搜索预测效果对比图。
图9为订单需求预测建模系统界面示意图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。
本发明提供一种基于贝叶斯优化的RF订单需求预测系统,该系统包括:
订单数据集预处理模块:对采集到的数据进行预处理,去除重复数据和确实数据,将数据集划分为训练数据和测试数据,对数据集进行特征构造,并对产品的 SKU进行one-hot编码,使用预处理好的数据作为模型的输入量和输出量;
基于贝叶斯优优化的RF订单需求预测模型:对RF参数较多的决策树模型采 用贝叶斯优化对模型进行优化,从而找到一组最好的超参数,然后把这些超参数带 入模型中,对测试集数据进行预测并对模型进行评估;
订单需求预测模块:基于贝叶斯优化后的RF模型,对订单建模进行需求分析, 包括实现用户管理、订单数据管理,历史记录跟踪以及最基本的算法模型的训练和 订单需求预测的功能,最后完成系统总体设计并开发该系统,实现其需求分析中的 功能。
基于上述系统,本发明还提供了一种基于贝叶斯优化的RF订单需求预测方法, 该方法包括以下步骤:
1)数据预处理,具体包括以下步骤:
11)对数据进行清洗和叠加:
查看数据集中是否有重复值和缺失值,对重复数据和缺失数据进行丢弃,表1 为原始数据集的示意图,若对产品的月销量需求进行预测,需要对每个月相同SKU 下的销量进行叠加得到每个月的总销量。
表1 原始数据集描述
ID | Year | Month | Amount | SKU |
1 | 1 | 1 | 0.0 | 1235 |
2 | 1 | 2 | 0.23 | 1236 |
3 | 1 | 1 | 0.25 | 1235 |
12)数据集的标准化:
数据集标准化最常用的方法包括“最小-最大标准化”(min-max)和“Z-score 标准化”,min-max标准化将原始数据通过线性变换让其取值范围在[0,1]之间, min-max的转化函数如下:
Z-score则是利用原始数据的均值μ和方差σ,对其进行标准化,该方法适合在 不知道特征或属性值的最大值和最小值的情况下使用,转换函数如下:
归一化处理后的数据利于加快梯度下降求解最优值的速度和提高模型的准确率,因此本发明采用min-max标准化的方法对Amount的值进行归一化,使得销量 的取值范围落在[0,1]之间。
13)特征的构造:
选择步长m为滑动窗口的长度,即time_step=m,如对月销量进行预测,使用 前m-1个月的历史销量来预测下一个月的订单需求,对每一行数据利用滑动窗口 进行划分,假设一行有n组数据,时间步长为m,那么每一行可以得到n-m+1条 数据,图3是通过滑动窗口构造训练样本的过程。
2)基于数据预处理后的数据集,建立基于贝叶斯优化的RF订单需求预测模 型,具体包括以下步骤:
21)如图4所示,随机森林算法训练过程具体为:
211)根据数据构造特征值,将数据集划分训练样本和测试样本;
212)选取M课树为弱分类器的数量,使用bootstrap sample采样的方法从训 练样本中采样M次作为M棵决策树的训练集分别为{D1,D2,...DM},对应决策树 {T1(θ),T2(θ),...TM(θ)}
213)对于每棵决策树,在分裂节点时选择不放回的抽取n维特征,并遍历每 个特征的均方差值选取最小均方差对应的特征作为最佳分裂特征,则有:
214)当决策树到终止条件即设置树的最大深度max-depth或者均方差m值达 到设置的阈值m0时,停止分裂;
215)将训练好的模型用于预测,并对模型进行评估,使用均方误差(meanabsolute error,MAE)、平均绝对误差(mean squared errore,MSE)、R2_score和explained_variance_score对模型进行评估,各评估参数的表达式如下:
(3)通过贝叶斯优化获取RF订单需求预测模型的最优超参数。图5为贝叶 斯优化找到最优超参数的过程,该优化方法的核心过程是高斯过程和提取函数,高 斯过程是通过前t-1次样本点更新概率代理模型,从而计算超参数样本集内每个样 本点对应的均值和方差,采集函数是根据前一步均值和方差采集得到第t次新的评 估点,若满足设置的目标值或迭代次数则找到全局最优的超参数值,若不满足目标 值则继续高斯过程,具体过程表述如下:
(a)贝叶斯优化的学习模型:
其中,x表示超参数,X是超参数搜索空间空间,f(x)是目标函数。
(b)高斯过程:
高斯过程假设f(x)服从高斯分布,则有:
m(x)=E(f(x))
k(x,x')=E[(f(x)-m(x))(f(x'-m(x'))] (9)
其中,k(x,x')是协方差函数,m(x)是均值函数,高斯过程中任意有限个随机 变量都满足以下的联合概率分布:
p(f|X,θ)=N(0,∑) (10)
其中,X是训练集,θ是超参数,∑为k(x,x')构成的协方差矩阵。假设存在观 测噪声ε,使得观测值y=f+ε,且噪声满足p(ε)=N(0,σ),能够得到似然函数:
p(y|f)=N(f,σ2I) (11)
从而算得边际似然:
p(y|X,θ)=N(f,∑+σ2I) (12)
根据高斯过程:
(c)采集函数
采集函数是从候选集中选择一个新的评估点,这里选用置信区间策略 (GP-UCB)进行选择:
采集函数考量了评估点均值和方差的比例。均值越大,代表在最可能出现全局 最优的区域采样,开发高;方差越大,代表在未探索的区域进行采样,探索高,βt是平衡均值和方差的常数。
(4)基于贝叶斯优化的RF订单需求预测模型的建立。如图1所示是使用贝 叶斯优化的方法对RF模型进行优化找到最优超参数的过程,具体包括以下步骤:
41)建立优化目标:对单个模型进行10次交叉验证,以回归模型10次交叉验 证的均方差平均值最小或者R2_score平均值最大作为优化目标,K折交叉验证过 程如图6所示,可以使用sklearn.model_selection中引入的cross_val_score进行交 叉验证。
42)建立贝叶斯对象,设定参数的优化范围。对模型进行贝叶斯寻优需要安装 第三方包bayes_opt,并从中引入BayesianOptimization建立贝叶斯对象;
43)利用训练数据和贝叶斯对RF模型进行训练得到模型最优超参数;
44)返回均方误差负值最大或R2_score得分最大的位置所在和超参数的值;
45)将贝叶斯优化得到的最优超参数带入RF模型中,并使用该模型对测试数 据进行预测。
5)订单需求预测建模系统的设计和实现。如图2所示是订单需求预测建模系 统的总体设计图。系统总体实现使用的是Flask框架。前端使用的是Bootstrap框 架和jQuery语言来实现。图2中展示了前端页面主要的4大功能块,分别是用户 管理模块,订单数据管理模块,模型选择和模型训练模块以及历史建模记录模块。 后端开发的语言使用的python语言,前后端交互需要使用AJAX技术。图2也展 示了后端主要实现的一些任务,包括数据读取与保存,数据处理和分析,建立数学 模型和处理一些业务逻辑。数据读取和存储用来实现操作数据库中的数据,例如读 取和操作订单历史数据、用户数据,读取和保存一些模型训练过程中产生的过程文 件等。数据处理和分析以及建立数学模型主要使用到python中的numpy、scripy、 matplotlib、pandas、sklearn、pytorch、keras等多个扩展库,可以根据需求,调用 相关API来实现数据处理和预测模型建立。数据库在系统开发阶段使用了SQLite数据库,保存了使用系统的用户的相关信息、订单数据、订单备份数据以及在数据 处理,模型训练与预测过程中产生的新的数据和图表等一些过程文件。安装 flask-sqlalchemy建立后端与数据库之间的连接,使用SQLAlchemy中的Model建 立数据表,管理数据库。最后系统的开发工具选择的是具有语法提示,易于调试代 码和进行项目管理等优点的python集成开发环境Pycharm。
实施例:
本发明通过对基于贝叶斯优化的RF订单需求预测进行建模仿真实验来验证上 文阐述的一种基于贝叶斯优化的RF需求预测模型能够实现对多种商品销量的预测 以及提高了订单需求预测的准确性。
1、数据集介绍和数据预处理
1.1、数据集的介绍
本例中使用的数据集来自某制造企业订单的销量,如表2是原始数据集的格式 的示意图。数据集包括订单的ID、订单产生的年份和月份、商品的销量、SKU(产 品的编号),该数据集记录了12个月119种产品的销量。由于产品类型不同,客户 对产品的需求也不同。有的产品的需求是比较稳定的,每个月的销量都稳定在一定 的范围之内波动,有的产品的需求是间歇性的又或者是随机性的,有的产品根据季 节的不同客户的需求也不同。这几百种相似时间序列之间有着复杂的关系,使用传 统的常用的ARIMA或者灰色模型算法进行建模不切实际,为了探寻这几百种时间 序列之间存在规律即相关时间序列之间的复杂的关系,先考虑使用机器学习的方法 建立预测模型,预测这几百种商品下一个月或几个月之后的销量。
表2 原始数据集示意图
ID | Year | Month | Amount | SKU |
1 | 1 | 1 | 0.0 | 1235 |
2 | 1 | 2 | 0.23 | 1236 |
3 | 1 | 1 | 0.25 | 1235 |
1.2数据预处理
1.2.1数据的采集和数据集划分
使用python中的df.duplicated来查看数据的重复值,该数据集重复的数据为0。如果数据集存在重复值,则删除多余的数据。查看数据集是否存在缺失值,如果缺 失值是Amount列的数据则使用0补齐,如果缺失的是其它列的数据则丢弃该行数 据。由于需要对企业产品的月销量进行预测,所以首先需要对每个月相同SKU下 的销量进行叠加得到每个月的总销量。表3展示了数据叠加之后的结果。叠加得到 12个月每个月的总销量,每一行代表每个SKU对应的12个月的销量。我们需要 把数据集划分成训练数据和验证数据,对月销量进行单步预测时,选择使用前11 个月的订单销量作为训练集,最后一个月的数据作为测试集。
表3 数据清洗和采集之后的示意图
Amount_1 | Amount_2 | Amount_3 | Amount_4 | Amount_5 | … | Amount_12 | SKU | |
0 | 0.25 | 0.28 | 0.29 | 0.36 | 0.60 | … | 0.50 | 1235 |
1 | 0.30 | 0.35 | 0.38 | 0.32 | 0.33 | … | 0.36 | 1236 |
2 | 0.05 | 0.07 | 0.08 | 0.06 | 0.02 | … | 0.09 | 1237 |
1.2.2数据集的标准化
数据集标准化最常用的方法包括“最小-最大标准化”(min-max)和“Z-score 标准化”,本例采用min-max标准化将原始数据通过线性变换让其取值范围在[0,1] 之间。
1.2.3特征的构造
选择步长为m为滑动窗口的长度,即time_step=m。使用前m-1个月的历史销 量去预测下一个月的订单需求。对每一行数据利用滑动窗口对数据进行划分,假设 一行有n组数据,时间步长为m,那么每一行可以得到n-m+1条数据。图3是通 过滑动窗口构造训练样本的过程。
SKU是类别数据,用来作为唯一区别不同产品的类别标识,每种SKU销量数 据的变化规律可能不同,选择独热编码(one-hot)对这种类别数据进行编码,假设存 在3种SKU,表4为对每一种的SKU进行one-hot编码的示意图。
表4 对SKU进行one-hot编码
序号 | SKU | SKU_1 | SKU_2 | SKU_3 | Amount_1 |
0 | 1 | 1 | 0 | 0 | 0.25 |
1 | 2 | 0 | 1 | 0 | 0.06 |
2 | 3 | 0 | 0 | 1 | 0.5 |
2、实验结果和分析
本例使用sklearn.ensemble包中引入的RandomForestRegressor建立随机森林回归模型,随机森林涉及的参数比较多,以下是随机森林涉及到以及需要调整的的参 数说明:
n_estimators:森林中子树的数量,n_estimators越大,弱学习器迭代次数越多,计算量越大,也容易过拟合。
oob_score:随机森林中未参与训练的剩余样本的得分,反映模型泛化能力。
criterion:特征的评价标准,默认是基尼系数,还可以使用信息增益。
max_depth:决策树最大深度,限制子树的深度,默认为None,常用的取值是 10-100。
min_samples_split:限制子决策树继续划分时需要的最小样本数。
min_samples_leaf:叶子节点最小样本数,1是默认值。
max_features:RF节点划分时最多考虑了多少个特征,auto是默认值。
在进行预测模型进行参数设置之前,利用单棵决策树模型和随机森林模型对训练集进行10折交叉验证。验证基于bagging集成思想的随机森林的预测效果比单 棵决策树的预测准确率要高且模型具备较好的稳定性。
RF需求预测模型经过贝叶斯优化后能够找到模型最优的一组超参数。图7是 RF模型贝叶斯优化的寻优过程,第28次找到最优的结果。在仿真实验中将贝叶斯 优化的方法与网格搜索的方法做了对比。表2中是随机森林模型贝叶斯优化和网格 寻优参数的取值范围和寻优之后得到的超参数设置,表5为基于网格搜索和贝叶斯 优化的随机森林模型的评价指标,图8是寻优之后的RF模型预测结果与真实值对 比结果。从表6的模型评估标准可以看出寻优之后的随机森林模型对预测数据有着 较好的拟合能力。因为随机森林的参数较多,使用网格搜索是同时对几种参数进行 寻优对计算机的硬件要求很高,同时寻优的时间很长,而贝叶斯优化寻优速度很快。 通过仿真实验得到:贝叶斯优化寻优的时间为91s,网格搜索算法寻找n_estimators 一个参数就需要500s,对比评价指标和参数寻优的时间,贝叶斯优化比网格寻优 有着速度快,搜索能力强的特点。图8中也可以看到预测数据和真实数据接近且相 对于网格搜索方法,基于贝叶斯优优化的RF模型拟合能力更强。实验证明使用贝 叶斯优化寻找参数提高了RF模型的预测的速度和预测的准确率。
表5 基于网格搜索和贝叶斯优化的RF模型的超参数设置
表6 基于网格搜索和贝叶斯优化的RF模型的评价指标
如图9所示,可以通过选择数据集和参数对模型进行训练,模型训练完后可点 击“保存”对该次模型进行保存,也可以继续修改参数对模型进行调整。可点击“查 看”按钮对预测结果进行查看。
Claims (10)
1.一种基于贝叶斯优化的RF订单需求预测方法,用以实现同时对多种商品的未来需求或销量进行预测,其特征在于,包括以下步骤:
1)对历史订单销量数据集进行数据预处理,并划分训练数据集和测试数据集作为基于随机森林的订单需求预测模型的输入量和输出量;
2)通过贝叶斯优化方法获取订单需求预测模型的最优超参数,得到最优的订单需求预测模型;
3)基于优化后的订单需求预测模型对订单商品未来的销量进行预测。
2.根据权利要求1所述的一种基于贝叶斯优化的RF订单需求预测方法,其特征在于,所述的步骤1)中,数据预处理具体包括以下步骤:
11)采集历史订单销量数据并对数据进行清洗,去除重复数据和缺失数据,再将数据集划分为划分训练数据集和测试数据集;
12)对数据集进行归一化处理,用以加快梯度下降求解最优值的速度和提高模型准确率;
13)对特征进行构造,选择步长t为滑动窗口的长度,通过前t-1个月的历史销量数据预测下一个月的订单需求,并对每一行数据通过滑动窗口进行划分;
14)将产品的SKU值即产品的编号作为唯一区别不同产品的类别标识,并对订单中产品SKU值进行独热编码,作为额外的特征输入。
3.根据权利要求2所述的一种基于贝叶斯优化的RF订单需求预测方法,其特征在于,所述的步骤12)中,采用min-max标准化的方法将原始的历史订单销量数据通过线性变换使得取值范围在[0,1]之间。
4.根据权利要求1所述的一种基于贝叶斯优化的RF订单需求预测方法,其特征在于,所述的步骤2)中,基于贝叶斯优化的订单需求预测模型的建模具体包括以下步骤:
201)以均方差平均值MSE最小或R2_score平均值最大作为优化目标:
202)建立贝叶斯对象,设定参数的优化范围,利用贝叶斯优化方法对订单需求预测模型进行优化;
203)获取均方误差负值最大或R2_score得分最大的位置以及对应超参数的值;
204)将贝叶斯优化得到的最优超参数带入模型中,并使用该模型对测试数据进行预测,并使用对模型做出评估。
5.根据权利要求1所述的一种基于贝叶斯优化的RF订单需求预测方法,其特征在于,所述的步骤2)中,订单需求预测模型的训练方法具体包括以下步骤:
211)根据数据构造特征值,将数据集划分训练样本和测试样本;
212)选取M棵决策树作为弱分类器,使用bootstrap sample采样的方法从训练样本中采样M次作为M棵决策树的训练集{D1,D2,...DM},对应决策树{T1(θ),T2(θ),...TM(θ)};
213)对于每棵决策树,在分裂节点时选择不放回的抽取n维特征,遍历每个特征的均方差值并选取最小均方差对应的特征作为最佳分裂特征;
214)当决策树到终止条件即设置树的最大深度max-depth或者均方差值达到设置的阈值,停止分裂完成训练。
6.根据权利要求5所述的一种基于贝叶斯优化的RF订单需求预测方法,其特征在于,所述的步骤213)中,节点分裂具体为:
每棵决策树选择使用CART回归树进行回归预测,采用最小化均方误差准则决定节点是否分裂。
8.根据权利要求7所述的一种基于贝叶斯优化的RF订单需求预测方法,其特征在于,所述的步骤213)中,遍历特征子集A中的特征,得到最小均方误差对应的特征作为划分该节点的最佳特征,不断重复并最终得到一个CART树模型,预测值即为CART树叶子结点均值,RF最终预测值为全部的树预测结果的加权平均值。
10.根据权利要求1所述的一种基于贝叶斯优化的RF订单需求预测方法,其特征在于,所述的步骤3)中还包括构建基于贝叶斯优化的RF订单需求预测系统,该系统包括:
前端页面:使用Bootstrap框架和jQuery语言实现,包括用户管理、订单数据管理、模型选择和模型训练模块和历史建模记录四个功能块;
后端接口:使用python实现后端实现包括数据读取与保存、数据处理和分析、建立数学模型以及处理业务逻辑,数据读取和存储用用以实现操作数据库中的数据,包括读取和操作订单历史数据、用户数据,读取和保存模型训练过程中产生的过程文件,数据处理和分析以及建立数学模型主要使用python中的扩展库,根据需求调用相关API实现数据处理和预测模型建立;
数据库:在系统开发阶段使用SQLite数据库,用以保存使用系统的用户的相关信息、订单数据、订单备份数据以及在数据处理,模型训练与预测过程中产生的新的数据和图表的过程文件,建立后端与数据库之间的连接,使用SQLAlchemy中的Model建立数据表,管理数据库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111198993.4A CN113807900A (zh) | 2021-10-14 | 2021-10-14 | 一种基于贝叶斯优化的rf订单需求预测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111198993.4A CN113807900A (zh) | 2021-10-14 | 2021-10-14 | 一种基于贝叶斯优化的rf订单需求预测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113807900A true CN113807900A (zh) | 2021-12-17 |
Family
ID=78937618
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111198993.4A Pending CN113807900A (zh) | 2021-10-14 | 2021-10-14 | 一种基于贝叶斯优化的rf订单需求预测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113807900A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114462820A (zh) * | 2022-01-14 | 2022-05-10 | 西安交通大学 | 一种轴承状态监测与健康管理系统性能测试及优化方法和系统 |
CN115641177A (zh) * | 2022-10-20 | 2023-01-24 | 北京力尊信通科技股份有限公司 | 一种基于机器学习的防秒杀预判系统 |
CN115660565A (zh) * | 2022-12-27 | 2023-01-31 | 北京京东乾石科技有限公司 | 出库数量确定方法、装置、电子设备和计算机可读介质 |
CN116452243A (zh) * | 2023-05-11 | 2023-07-18 | 长沙麦可思信息科技有限公司 | 一种基于大数据的企业订单预测方法、系统及介质 |
CN117057848A (zh) * | 2023-08-28 | 2023-11-14 | 淮阴工学院 | 一种基于gat-gpr的外卖订单需求预测方法 |
CN117894481A (zh) * | 2024-03-15 | 2024-04-16 | 长春大学 | 基于贝叶斯超参数优化梯度提升树心脏病预测方法及装置 |
CN118429004A (zh) * | 2024-07-05 | 2024-08-02 | 北京航空航天大学 | 供应链网络中商品订单预测方法和相关产品 |
-
2021
- 2021-10-14 CN CN202111198993.4A patent/CN113807900A/zh active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114462820A (zh) * | 2022-01-14 | 2022-05-10 | 西安交通大学 | 一种轴承状态监测与健康管理系统性能测试及优化方法和系统 |
CN115641177A (zh) * | 2022-10-20 | 2023-01-24 | 北京力尊信通科技股份有限公司 | 一种基于机器学习的防秒杀预判系统 |
CN115641177B (zh) * | 2022-10-20 | 2023-05-30 | 北京力尊信通科技股份有限公司 | 一种基于机器学习的防秒杀预判系统 |
CN115660565A (zh) * | 2022-12-27 | 2023-01-31 | 北京京东乾石科技有限公司 | 出库数量确定方法、装置、电子设备和计算机可读介质 |
CN116452243A (zh) * | 2023-05-11 | 2023-07-18 | 长沙麦可思信息科技有限公司 | 一种基于大数据的企业订单预测方法、系统及介质 |
CN116452243B (zh) * | 2023-05-11 | 2023-08-29 | 长沙麦可思信息科技有限公司 | 一种基于大数据的企业订单预测方法、系统及介质 |
CN117057848A (zh) * | 2023-08-28 | 2023-11-14 | 淮阴工学院 | 一种基于gat-gpr的外卖订单需求预测方法 |
CN117057848B (zh) * | 2023-08-28 | 2024-05-31 | 淮阴工学院 | 一种基于gat-gpr的外卖订单需求预测方法 |
CN117894481A (zh) * | 2024-03-15 | 2024-04-16 | 长春大学 | 基于贝叶斯超参数优化梯度提升树心脏病预测方法及装置 |
CN118429004A (zh) * | 2024-07-05 | 2024-08-02 | 北京航空航天大学 | 供应链网络中商品订单预测方法和相关产品 |
CN118429004B (zh) * | 2024-07-05 | 2024-10-01 | 北京航空航天大学 | 供应链网络中商品订单预测方法和相关产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113807900A (zh) | 一种基于贝叶斯优化的rf订单需求预测方法 | |
CN110597735B (zh) | 一种面向开源软件缺陷特征深度学习的软件缺陷预测方法 | |
CN108320171B (zh) | 热销商品预测方法、系统及装置 | |
Thangavel et al. | Student placement analyzer: A recommendation system using machine learning | |
CN111563706A (zh) | 一种基于lstm网络的多变量物流货运量预测方法 | |
US20210158227A1 (en) | Systems and methods for generating model output explanation information | |
CN110046943B (zh) | 一种网络消费者细分的优化方法及优化系统 | |
CN116596582A (zh) | 一种基于大数据的销售信息预测方法及装置 | |
CN111309577B (zh) | 一种面向Spark的批处理应用执行时间预测模型构建方法 | |
CN118012402A (zh) | 一种基于推荐算法的低代码开发方法、设备及介质 | |
Hamdan et al. | Predicting customer loyalty using machine learning for hotel industry | |
US20230385664A1 (en) | A computer-implemented method for deriving a data processing and inference pipeline | |
Arifin et al. | Comparative analysis on educational data mining algorithm to predict academic performance | |
Nagaraju et al. | Methodologies used for customer churn detection in customer relationship management | |
Winarti et al. | Data Mining Modeling Feasibility Patterns of Graduates Ability With Stakeholder Needs Using Apriori Algorithm | |
CN115187312A (zh) | 基于深度学习的客户流失预测方法及系统 | |
Orozova et al. | How to follow modern trends in courses in “databases”-introduction of data mining techniques by example | |
Nagashima et al. | Data Imputation Method based on Programming by Example: APREP-S | |
Khandelwal et al. | Financial Data Time Series Forecasting Using Neural Networks and a Comparative Study | |
Soto de la Cruz et al. | Isodata-Based Method for Clustering Surveys Responses with Mixed Data: The 2021 StackOverflow Developer Survey | |
Ramezani et al. | A review of methods for estimating coefficients of objective functions and constraints in mathematical programming models | |
Karpukhin et al. | HoTPP Benchmark: Are We Good at the Long Horizon Events Forecasting? | |
CN117093935B (zh) | 一种业务系统的分类方法及系统 | |
Prihanto et al. | Atrition Analysis using XG Boost and Support Vector Machine Algorithm | |
CN117609731A (zh) | 一种基于因果推断的本科生毕业去向预测方法与可视分析系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |