1.一种基于GAT-GPR的外卖订单需求预测方法,其特征在于,包括如下步骤:步骤1、获取各种数据集,对获得的历史订单数据集进行预处理;
步骤2、将经过步骤1预处理后的历史订单数据进行DPC聚类,将一城市中某个区域内的餐饮店商家划分为n个虚拟站点,并定义虚拟站点网络为一个无指向的图;将历史订单数据集按照指定的时间间隔进行时间切片,将一个区域的点餐量或取餐量定义为在固定的时间间隔内在虚拟站点点餐或取餐的次数,并对历史订单数据集中的订单数据进行标准化处理,将处理后的数据集划分为训练集、验证集和测试集;具体包括如下步骤:步骤21、将步骤1中预处理后的历史订单数据利用密度峰值聚类方法,首先确定外卖历史订单数据集的聚类中心,对每一个历史数据样本点计算两个变量:历史数据样本点xd
历史数据样本点x
计算出任意两个样本点间的欧氏距离后确定截断距离d
步骤22、定义虚拟站点网络为一个无指向的图,表示为G=(V,E,A),其中V代表图的一系列节点|V|=N,是步骤21中聚类出来的虚拟站点,E是一系列边,表示节点间的连接;A∈Rdist=dist(p
其中dist表示从p
步骤23、使用二元组(τ,p)定义时空坐标,其中τ代表时间,p代表站点,将任意的一个订单行程的点餐与取餐分别定义为:d=(τ步骤24、对历史订单数据集中的订单数据进行标准化处理,具体为:采用Z-score标准化方法,通过去除均值和按单位方差缩放来标准化点餐量和取餐量,具体实现公式如下:σ=std(x) (7)x代表点餐量或取餐量,σ表示x的标准差,x
步骤25、将标准化后的历史订单数据进行划分,得到训练集、验证集、测试集;
步骤3、构建基于图注意力网络和高斯过程回归混合模型的订单需求混合预测模型;使用步骤2的训练集训练模型,对得到的训练后的模型利用步骤2得到的测试集进行测试,根据测试的结果选择出表现最优的预测模型;具体包括如下步骤:步骤31、输入层是由经步骤25标准化后包含邻近、日周期和周周期时间的订单需求数据与步骤1中得到的外部数据进行融合构成的,所述邻近表示预测时刻的前几个小时,日周期表示每日相对时间间隔,周周期表示每周相对时间间隔;
步骤32、在注意力层,对于每个节点,使用注意力机制,为每个邻居站点分配一个注意力权重,反映其对当前站点的重要性;根据注意力权重加权聚合邻居站点的特征,这一步骤将邻居站点的信息考虑进当前站点的更新中,注意力权重决定了不同邻居站点对当前站点的贡献;
步骤33、节点更新层会根据注意力聚合的结果和当前站点的特征,进行节点的更新,引入softmax对注意力系数进行归一化来更新站点的特征表示;
步骤34、对步骤33经图注意力层输出得到的特征向量进行高斯过程建模,使用核函数描述样本之间的相似性,利用核函数计算训练数据集中样本之间的协方差矩阵,进而构建高斯过程模型;通过最大似然估计方法,估计核函数中的参数;通过计算输入样本与已观测数据之间的协方差矩阵,结合先验分布和训练数据的目标值,得到预测的输出值及其不确定性;
步骤35、使用步骤(2)中划分好的历史订单数据训练集训练步骤31~步骤34构建的基于图注意力网络和高斯过程回归的外卖订单需求混合预测模型,最终得到经过训练后的预测模型;
步骤36、对于训练后的预测模型,将步骤(2)的验证集输入其中进行验证,当损失函数达到一个新的最小值时,认为此时模型的表现最好;
步骤37、在验证集进行验证的过程中,模型会根据验证计算的最小RMSE,提前停止模型的训练算法:当验证的epochs最大达到N个时,还无法再次取得一个新的最小RMSE时,模型就会提前停止训练,将最小RMSE对应的模型保存为表现最优的预测模型;
步骤4、使用步骤3得到的最优预测模型对步骤2的测试集进行预测,得到模型的输出结果,对输出结果进行反标准化获得预测的点餐量或取餐量,取其中的点餐量为最终预测出的订单需求量。
2.如权利要求1所述的基于GAT-GPR的外卖订单需求预测方法,其特征在于,步骤1中,获取各种数据集,对获得的历史订单数据集进行预处理具体包括如下步骤:步骤11、获得美团、饿了么两大外卖平台的原始历史订单数据;
步骤12、基于百度公司提供的地图API,对步骤11原始历史订单数据中的上车点位置和下车点位置进行搜索,从而获得点餐与取餐地点的POI数据特征;
步骤13、利用程序在历史天气网中获取订单所在地区的历史天气数据,包含天气特征和温度数据;
步骤14、对属于周末和节假日的历史订单信息数据进行搜索查询与标记;
步骤15、对步骤11中得到的历史订单数据进行数据清洗预处理工作。
3.如权利要求2所述的基于GAT-GPR的外卖订单需求预测方法,其特征在于,步骤11中,原始历史订单数据包括用户ID、点餐下单地点经纬度、取餐点经纬度、点餐下单时间、取餐时间、配送里程、配送费用。
4.如权利要求2所述的基于GAT-GPR的外卖订单需求预测方法,其特征在于,步骤15中,对步骤11中得到的历史订单数据进行数据清洗预处理工作具体包括如下步骤:步骤151、当历史订单数据存在空值或者缺失数据时,清除该订单数据;
步骤152、当历史订单数据中的点餐位置或取餐位置超出该城市所在的经纬度范围时,认为该订单数据异常,删除该订单数据;
步骤153、当历史订单数据中的点餐时间和取餐时间之间的时间间隔过长,超过一定的阈值后,认为该订单数据异常,删除该订单数据;
步骤154、清除历史订单数据中不需要的信息,每一条订单数据只保留其点餐与取餐点的位置和时间。
5.如权利要求1所述的基于GAT-GPR的外卖订单需求预测方法,其特征在于,步骤32中,注意力层的注意力权重加权计算过程具体为;将步骤31融合后的每一个节点的一系列特征数据序列用式中W∈R
6.如权利要求1所述的基于GAT-GPR的外卖订单需求预测方法,其特征在于,步骤33中,引入softmax对注意力系数进行归一化过程具体如下:为了使注意力系数在不同的节点便于比较,引入了softmax对注意力系数进行归一化,具体公式表示如下:式中N
将上述计算获得的归一化后的不同节点之间的注意力系数相应的应用于每一个节点,然后经过激活函数,得到每个节点的输出特征;
式中,
7.如权利要求1所述的基于GAT-GPR的外卖订单需求预测方法,其特征在于,步骤34中,高斯过程建模具体如下:将上述步骤33得到的节点特征用X表示,即:
m(X)=E[f(X)] (14)k(X,X′)=E{[f(X)-m(X)][f(X′)-m(X′)式中,f(X)是目标输出,X是d维的n个输入向量,对应的高斯过程表达式如下:f(X)~GP[m(X),k(X,X′)] (16)均值函数设置为零,协方差函数使用周期指数函数SE,其具体形式为:式中,信号方差
Y=f(X)+ε (18)式中,ε~N(0,σ
式中,I
协方差矩阵中,超参数Θ=[σ
观测值Y和预测值Y
根据Y的联合先验分布,计算出后验分布p(Y
式中,预测平均值
此时将预测平均值
8.如权利要求1所述的基于GAT-GPR的外卖订单需求预测方法,其特征在于,步骤36和步骤37的训练和验证过程中,损失函数使用均方根误差,其定义如下:其中n为所有样本的总数,