Page 182 - 《软件学报》2021年第12期
P. 182

3846                                Journal of Software  软件学报 Vol.32, No.12, December 2021

         连接网络以获取区域 i 的最终需求预测值 ˆ y           t+ i  1  .最终预测函数如下:
                                              i
                                             ˆ y t+ 1  =  σ (W y +  f  i t  b f  )           (10)
                                                   i
         其中,W f 与 b f 都为可学习的参数.因为真实的需求值 y          t+ 1  经过标准化处理,所以σ(⋅)为 Sigmoid 函数使最终输出的
         区间为[0,1],目的为使整个模型更快收敛.模型使用的损失函数定义为
                                           ⎡            ⎛  y i  −  ˆ y i  ⎞  2 ⎤
                                     L =  i ∑ n  1 ⎢ ⎢ ⎣ (y i t+ =  1  −  y ˆ ) +  t+  i  1  2  γ ⎜  ⎝  t+  1 y t+ i  1  t+  1  ⎟  ⎠  ⎥ ⎥ ⎦  (11)

         其中,γ为超参数.上述损失函数实际由均方误差和平均绝对百分误差两部分组成.因为均方误差易受极端值影
         响,为了避免训练被大值样本支配,所以引入平均绝对百分误差.

         3    实验与结果分析

         3.1   数据集处理
             本文使用快车平台真实的订单轨迹数据 CD2Data 与 XA2Data 来验证模型的有效性,数据集来自滴滴出行
         “盖亚”数据开放计划.
             •   CD2Date:数据为 2016 年 10 月和 11 月成都市二环部分区域快车平台订单数据;
             •   XA2Date:数据为 2016 年 10 月和 11 月西安市二环部分区域快车平台订单数据.
             本文将两个数据集中 2016 年 10 月 8 日至 2016 年 11 月 23 日(共 47 天)的数据作为训练集,2016 年 11 月
         24 日至 2016 年 11 月 30 日(共 7 天)的数据作为测试集.数据集中,2016 年国庆假期期间的数据因为较平时相比
         波动过大所以舍弃.处理数据时,本文将两个数据集所对应的区域进行网格化处理,划分成 20×20 个小区域.并且
         仅将早 6 点到晚 21 点之间的数据作为观测数据,每个时间片的时间跨度设为半小时.进而提取出每块区域每个
         时间片的需求数量.值得注意的是:因为本文主要分析的问题为乘车需求预测,所以订单的位置以乘客的初始位
                                                                                     L
         置为准.最后将单位需求数据进行标准化处理,进而得到所有区域单个时间片的需求数据集合 D .DCSN 模型
                                                                                     T
         除了应用到了乘车的轨迹数据,还应用了外部数据以及城市的 POI 数据.本文将天气等外部离散数据转化为
         One-Hot 向量嵌入到模型中;POI 数据则使用百度地图信息检索功能获取,同样将其进行网格划分,进而统计每
         块区域的 POI 种类及数量.
             当测试预测结果时,本文使用待预测时间片的前 8 个时间片(即前 4 小时)来对该区域接下来的乘车需求进
         行预测.并且在实验过程中,本文过滤掉了区域需求小于 5 的样本,这是工业中常用的做法.因为在现实生活的应
         用程序中,人们并不关心这种低需求场景.
         3.2   实验参数设置

             本文基于 Tensorflow 和 Keras 框架实现 DCSN 模型.在空间特征提取时,控制输入特征图大小的 s 取 11,即
         对目标及其周围 11×11 的区域进行空间特征提取.在 DCN 模型中,本文将卷积层数 K 设为 3,滤波器大小设为
         3×3,滤波器数量设为 64.经过多次对比实验后,本文将 LSTM 模型中时间步长 h 设为 8.在 DCSN 模型中,除了作
         为最终预测组件的全连接层,其中的激活函数为 Sigmoid 函数,其余全连接层中的激活函数皆为 ReLU 函数.模型
         的损失函数已在第 2.4 节中具体说明,模型使用的优化算法为 Adam.
             本文使用平均绝对百分比误差(MAPE)和均方误差(RMSE)作为评价指标,其具体计算公式下:
                                                 1
                                         MAPE = ∑   X  | y t+  i  1  −  ˆ y i t+  1  |       (12)
                                                X   i= 1  y t+ i  1
                                                 1  X
                                                            i
                                        RMSE =      i ∑  (y i  1  −  y ˆ ) 2                 (13)
                                                             1
                                                            t+
                                                 X   1  t+ =
         其中, ˆ y i t+ 1 与 y i t+ 1 分别为预测值与真实值,X 为样本数量.
   177   178   179   180   181   182   183   184   185   186   187