标准赛道¶
在交通大数据领域,长期存在数据集评价标准不一致,评估指标不一致和数据集预处理过程不一致等现象,导致了不同模型的可比性较差。因此,为了解决上述问题,本项目为每个任务实现了一套标准的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中的样本总数,输入时间窗口的宽度,空间维度和数据特征维度。尤其是,空间维度可以是如上所述的NorI, JorS, TorSI, SJ, TI, TJ。y:模型期望输出的多维度tensor,shape = (batch_size, T_out, space_dim, feature_dim), 每个维度表示batch中的样本总数,输出时间窗口的宽度,空间维度和数据特征维度。在这些中,空间维度可以是如上所述的NorI, JorS, TorSI, 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)。