标准赛道¶
在交通大数据领域,长期存在数据集评价标准不一致,评估指标不一致和数据集预处理过程不一致等现象,导致了不同模型的可比性较差。因此,为了解决上述问题,本项目为每个任务实现了一套标准的pipeline(track)。
在标准赛道上,项目提供的原始数据集,标准数据模块(Data module)和标准评估模块(Evaluator module)通过使用相同的数据输入与评估指标来限制不同的模型,以提高评估结果的可比性。
不同任务的标准数据输入格式和评估输入格式解释如下:
交通状态预测¶
根据交通数据空间结构的不同,交通状态数据一般可以用以下格式的张量表示:
一个形如
(N,T,F)
的三维tensor,T
是时间长度 ,F
是特征维度,N
传感器数量。一个形如为
(T,F,I,J)
的四维tensor,T
是时间长度 ,F
是特征维度,I,J
表示网格数据的行和列索引。一个形如
(T,F,S,T)
的四维tensor,T
是时间长度 ,F
是特征维度,S,T
表示od
数据的出发地id和目的地id。一个形如
(T,F,SI,SJ,TI,TJ)
的六维tensor,T
是时间长度 ,F
是特征维度,SI,SJ,TI,TJ
表示grid-od
数据出发地和目的地的行索引和列索引。
标准数据输入格式类字典的Batch对象实例,对象的key名如下:
X
:模型输入的多维度tensor,shape = (batch_size, T_in, space_dim, feature_dim)
, 每个维度表示batch中的样本总数,输入时间窗口的宽度,空间维度和数据特征维度。尤其是,空间维度可以是如上所述的N
orI, J
orS, T
orSI, SJ, TI, TJ
。y
:模型期望输出的多维度tensor,shape = (batch_size, T_out, space_dim, feature_dim)
, 每个维度表示batch中的样本总数,输出时间窗口的宽度,空间维度和数据特征维度。在这些中,空间维度可以是如上所述的N
orI, J
orS, T
orSI, SJ, TI, TJ
。X_ext
: 可选的外部数据,shape = (batch_size, T_in, ext_dim)
,每个维度表示batch中的样本总数,输入时间窗口的宽度,空间维度和外部数据特征维度。尤其是,一些模型可能直接将X_ext
合并入X
作为模型的输入。y_ext
:可选的外部数据O,shape = (batch_size, T_out, ext_dim)
,每个维度表示batch中的样本总数,输出时间窗口的宽度,空间维度和外部数据特征维度。
标准评价输入格式是一个字典对象,并且这个字典有下列key名:
y_true
:真实值,格式与输入的y
相同。y_pred
:预测值,格式与输入的y
相同。
轨迹位置预测¶
标准数据输入格式是类字典的Batch对象实例。该对象的key名如下:
history_loc
:历史轨迹位置信息,shape = (batch_size, history_len)
,history_len
是历史轨迹的长度。history_tim
:历史轨迹时间信息,shape = (batch_size, history_len)
。current_loc
:当前轨迹位置信息,shape = (batch_size, current_len)
,current_len
是当前轨迹长度。current_tim
:当前轨迹时间信息,shape = (batch_size, current_len)
。uid
:每个轨迹的用户的id,shape = (batch_size)
。target
:期望下一跳的位置,shape = (batch_size)
。
标准评价输入格式是类字典对象,字典的key名如下:
uid
: 每个轨迹使用者的id,shape = (batch_size)
。loc_true
:预期下一跳的位置,shape = (batch_size)
。loc_pred
:模型预测输出,shape = (batch_size, output_dim)
。
路网匹配¶
标准的数据输入格式是一个字典。这个对象的key名如下:
trajectory
:trajectory
的格式可以写作{"usr_id":{"traj_id":{numpy.ndarray}}}
。也就是说,trajectory
的key是usr_id
。每一个usr_id
对应一个key为traj_id
的字典。每个traj_id
对应一个numpy.ndarray
,表示从连续运动的对象上采样得到的按时间顺序排列的空间点序列,其列名为columns=(index,longitude,latitude,time)
或者columns=(index,longitude,latitude)
。轨迹的长度记为num_sample
。rd_nwk
: 一个具有类型networkx.classes.digraph.DiGraph
的路网数据。route
:route
的格式可以写作{"usr_id":{"traj_id":{numpy.ndarray}}}
。这和trajectory
类似。route
的value
是一个由geo_id
组成的numpy.ndarray
对象,shape=(num_road,)
,代表真实路径。num_road
是真实路径的长度。
标准的评价输入格式是一个字典。这个对象的key名如下:
result
:result
的格式几乎和route
的格式相同。result
的值是一个由geo_id
组成的numpy.ndarray
对象,shape=(num_sample,)
,代表匹配的结果。num_sample
是轨迹数据中GPS采样点的数量。route
:见标准的数据输入格式中的描述。rd_nwk
:见标准的数据输入格式中的描述。
到达时间估计¶
标准数据输入格式是类字典的Batch对象实例。该对象的key名如下:
current_loc/(current_longi,current_lati)
:轨迹位置信息,shape = (batch_size, traj_len)
,traj_len
是轨迹的长度。uid
:每个轨迹的用户的id,shape = (batch_size)
。timeid(weekid)
:轨迹开始的时间信息,shape = (batch_size)
。dist
:轨迹总长度,shape = (batch_size)
。其他信息,例如
current_dis
(从起点到当前位置的距离,shape = (batch_size, traj_len)
)、current_state
(是否载客,shape = (batch_size, traj_len)
)等。(可选的)
标准评价输入格式是一个字典对象,并且这个字典有下列key名:
y_true
:起点到终点的真实时间,shape = (batch_size)
。y_pred
:起点到终点的预测时间,shape = (batch_size)
。