libcity.data.dataset.dataset_subclass

class libcity.data.dataset.dataset_subclass.ACFMDataset(config)[source]

Bases: libcity.data.dataset.traffic_state_grid_dataset.TrafficStateGridDataset, libcity.data.dataset.traffic_state_cpt_dataset.TrafficStateCPTDataset

_get_external_array(timestamp_list, ext_data=None, previous_ext=False, ext_time=True)[source]

根据时间戳数组,获取对应时间的外部特征

Parameters
  • timestamp_list (list) – 时间戳序列

  • ext_data – 外部数据

  • previous_ext – 是否是用过去时间段的外部数据,因为对于预测的时间段Y, 一般没有真实的外部数据,所以用前一个时刻的数据,多步预测则用提前多步的数据

  • ext_time – 是否加载时间数据,False则只考虑星期,True则加上小时的信息

Returns

External data shape is (len(timestamp_list), ext_dim)

Return type

numpy.ndarray

_load_ext_data(ts_x, ts_y)[source]

加载对应时间的外部数据(.ext)

Parameters
  • ts_x – 输入数据X对应的时间戳,shape: (num_samples, T_c+T_p+T_t)

  • ts_y – 输出数据Y对应的时间戳,shape:(num_samples, )

Returns

tuple contains:

ext_x(numpy.ndarray): 对应时间的外部数据, shape: (num_samples, T_c+T_p+T_t, ext_dim), ext_y(numpy.ndarray): 对应时间的外部数据, shape: (num_samples, ext_dim)

Return type

tuple

get_data_feature()[source]

返回数据集特征,scaler是归一化方法,adj_mx是邻接矩阵,num_nodes是网格的个数, len_row是网格的行数,len_column是网格的列数, feature_dim是输入数据的维度,output_dim是模型输出的维度

Returns

包含数据集的相关特征的字典

Return type

dict

class libcity.data.dataset.dataset_subclass.ASTGCNDataset(config)[source]

Bases: libcity.data.dataset.traffic_state_point_dataset.TrafficStatePointDataset

_generate_input_data(df)[source]

根据全局参数len_closeness/len_period/len_trend切分输入,产生模型需要的输入

Parameters

df (np.ndarray) – 输入数据, shape: (len_time, …, feature_dim)

Returns

tuple contains:

sources(np.ndarray): 模型输入数据, shape: (num_samples, Tw+Td+Th, …, feature_dim)

targets(np.ndarray): 模型输出数据, shape: (num_samples, Tp, …, feature_dim)

Return type

tuple

_get_sample_indices(data_sequence, label_start_idx)[source]

根据全局参数len_closeness/len_period/len_trend找到数据预测目标数据 段: [label_start_idx: label_start_idx+output_window)

Parameters
  • data_sequence (np.ndarray) – 输入数据,shape: (len_time, …, feature_dim)

  • label_start_idx (int) – the first index of predicting target, 预测开始的时间片的索引

Returns

tuple contains:

trend_sample: 输入数据1, (len_trend * self.output_window, …, feature_dim)

period_sample: 输入数据2, (len_period * self.output_window, …, feature_dim)

closeness_sample: 输入数据3, (len_closeness * self.output_window, …, feature_dim)

target: 输出数据, (self.output_window, …, feature_dim)

Return type

tuple

_search_data(sequence_length, label_start_idx, num_for_predict, num_of_depend, units)[source]

根据全局参数len_closeness/len_period/len_trend找到数据索引的位置

Parameters
  • sequence_length (int) – 历史数据的总长度

  • label_start_idx (int) – 预测开始的时间片的索引

  • num_for_predict (int) – 预测的时间片序列长度

  • num_of_depend (int) – len_trend/len_period/len_closeness

  • units (int) – trend/period/closeness的长度(以小时为单位)

Returns

起点-终点区间段的数组,list[(start_idx, end_idx)]

Return type

list

get_data_feature()[source]

返回数据集特征,scaler是归一化方法,adj_mx是邻接矩阵,num_nodes是点的个数, feature_dim是输入数据的维度,output_dim是模型输出的维度, len_closeness/len_period/len_trend分别是三段数据的长度

Returns

包含数据集的相关特征的字典

Return type

dict

class libcity.data.dataset.dataset_subclass.CCRNNDataset(config)[source]

Bases: libcity.data.dataset.traffic_state_point_dataset.TrafficStatePointDataset

_generate_data()[source]

加载数据文件(.dyna/.grid/.od/.gridod)和外部数据(.ext),且将二者融合,以X,y的形式返回

Returns

tuple contains:

x(np.ndarray): 模型输入数据,(num_samples, input_length, …, feature_dim)

y(np.ndarray): 模型输出数据,(num_samples, output_length, …, feature_dim)

Return type

tuple

_generate_train_val_test()[source]

加载数据集,并划分训练集、测试集、验证集,并缓存数据集

Returns

tuple contains:

x_train: (num_samples, input_length, …, feature_dim)

y_train: (num_samples, input_length, …, feature_dim)

x_val: (num_samples, input_length, …, feature_dim)

y_val: (num_samples, input_length, …, feature_dim)

x_test: (num_samples, input_length, …, feature_dim)

y_test: (num_samples, input_length, …, feature_dim)

Return type

tuple

_load_cache_train_val_test()[source]

加载之前缓存好的训练集、测试集、验证集

Returns

tuple contains:

x_train: (num_samples, input_length, …, feature_dim)

y_train: (num_samples, input_length, …, feature_dim)

x_val: (num_samples, input_length, …, feature_dim)

y_val: (num_samples, input_length, …, feature_dim)

x_test: (num_samples, input_length, …, feature_dim)

y_test: (num_samples, input_length, …, feature_dim)

Return type

tuple

_load_rel()[source]

根据网格结构构建邻接矩阵,一个格子跟他周围的8个格子邻接

Returns

self.adj_mx, N*N的邻接矩阵

Return type

np.ndarray

_split_train_val_test(x, y, df=None)[source]

划分训练集、测试集、验证集,并缓存数据集

Parameters
  • x (np.ndarray) – 输入数据 (num_samples, input_length, …, feature_dim)

  • y (np.ndarray) – 输出数据 (num_samples, input_length, …, feature_dim)

Returns

tuple contains:

x_train: (num_samples, input_length, …, feature_dim)

y_train: (num_samples, input_length, …, feature_dim)

x_val: (num_samples, input_length, …, feature_dim)

y_val: (num_samples, input_length, …, feature_dim)

x_test: (num_samples, input_length, …, feature_dim)

y_test: (num_samples, input_length, …, feature_dim)

Return type

tuple

class libcity.data.dataset.dataset_subclass.CONVGCNDataset(config)[source]

Bases: libcity.data.dataset.traffic_state_point_dataset.TrafficStatePointDataset

class libcity.data.dataset.dataset_subclass.CRANNDataset(config)[source]

Bases: libcity.data.dataset.traffic_state_point_dataset.TrafficStatePointDataset

get_data()[source]

返回数据的DataLoader,包括训练数据、测试数据、验证数据

Returns

tuple contains:

train_dataloader: Dataloader composed of Batch (class)

eval_dataloader: Dataloader composed of Batch (class)

test_dataloader: Dataloader composed of Batch (class)

Return type

tuple

class libcity.data.dataset.dataset_subclass.CSTNDataset(config)[source]

Bases: libcity.data.dataset.traffic_state_grid_od_dataset.TrafficStateGridOdDataset

_generate_data()[source]

加载数据文件(.gridod)和外部数据(.ext),以X, W, y的形式返回

Returns

tuple contains:

X(np.ndarray): 模型输入数据,(num_samples, input_length, …, feature_dim)

W(np.ndarray): 模型外部数据,(num_samples, input_length, ext_dim) y(np.ndarray): 模型输出数据,(num_samples, output_length, …, feature_dim)

Return type

tuple

get_data()[source]

返回数据的DataLoader,包括训练数据、测试数据、验证数据

Returns

tuple contains:

train_dataloader: Dataloader composed of Batch (class)

eval_dataloader: Dataloader composed of Batch (class)

test_dataloader: Dataloader composed of Batch (class)

Return type

tuple

get_data_feature()[source]

返回数据集特征,scaler是归一化方法,adj_mx是邻接矩阵,num_nodes是网格的个数, len_row是网格的行数,len_column是网格的列数, feature_dim是输入数据的维度,output_dim是模型输出的维度

Returns

包含数据集的相关特征的字典

Return type

dict

class libcity.data.dataset.dataset_subclass.ChebConvDataset(config)[source]

Bases: libcity.data.dataset.abstract_dataset.AbstractDataset

_get_scalar(scaler_type, data)[source]

根据全局参数`scaler_type`选择数据归一化方法

Parameters

data – 训练数据X

Returns

归一化对象

Return type

Scaler

_load_cache_train_val_test()[source]

加载之前缓存好的训练集、测试集、验证集

_load_geo()[source]

加载.geo文件,格式[geo_id, type, coordinates, properties(若干列)]

_load_rel()[source]

加载.rel文件,格式[rel_id, type, origin_id, destination_id, properties(若干列)], 生成N*N的矩阵,默认.rel存在的边表示为1,不存在的边表示为0

Returns

self.adj_mx, N*N的邻接矩阵

Return type

np.ndarray

get_data()[source]

返回数据的DataLoader,包括训练数据、测试数据、验证数据

Returns

dict

Return type

batch_data

get_data_feature()[source]

返回一个 dict,包含数据集的相关特征

Returns

包含数据集的相关特征的字典

Return type

dict

class libcity.data.dataset.dataset_subclass.DMVSTNetDataset(config)[source]

Bases: libcity.data.dataset.traffic_state_grid_dataset.TrafficStateGridDataset

get_data_feature()[source]

返回数据集特征,scaler是归一化方法,adj_mx是邻接矩阵,num_nodes是点的个数, feature_dim是输入数据的维度,output_dim是模型输出的维度

Returns

包含数据集的相关特征的字典

Return type

dict

get_dtw_grpah()[source]
class libcity.data.dataset.dataset_subclass.GMANDataset(config)[source]

Bases: libcity.data.dataset.traffic_state_point_dataset.TrafficStatePointDataset

get_data_feature()[source]

返回数据集特征,scaler是归一化方法,adj_mx是邻接矩阵,num_nodes是点的个数, feature_dim是输入数据的维度,output_dim是模型输出的维度

Returns

包含数据集的相关特征的字典

Return type

dict

class libcity.data.dataset.dataset_subclass.GSNetDataset(config)[source]

Bases: libcity.data.dataset.traffic_state_cpt_dataset.TrafficStateCPTDataset

get_data_feature()[source]

由于此类的数据输入包含len_closeness/len_period/len_trend的数据,但都融合到X中, 因此,继承此类的子类此函数应该返回这三段数据的具体长度(不一定等于上述的三个参数的值)

Returns

包含数据集的相关特征的字典

Return type

dict

class libcity.data.dataset.dataset_subclass.GTSDataset(config)[source]

Bases: libcity.data.dataset.traffic_state_point_dataset.TrafficStatePointDataset

get_data_feature()[source]

返回数据集特征,scaler是归一化方法,adj_mx是邻接矩阵,num_nodes是点的个数, feature_dim是输入数据的维度,output_dim是模型输出的维度

Returns

包含数据集的相关特征的字典

Return type

dict

class libcity.data.dataset.dataset_subclass.GeoSANDataset(config)[source]

Bases: libcity.data.dataset.abstract_dataset.AbstractDataset

add_location(loc, coordinate)[source]
build_vocab(min_freq=10)[source]
static collect_fn_quadkey(batch, data_source, sampler, region_processer, loc2quadkey=None, k=5, with_trg_quadkey=True)[source]
get_data()[source]

返回数据的DataLoader,包括训练数据、测试数据(事实上不提供)、验证数据

Returns

tuple contains:

train_dataloader: Dataloader composed of Batch (class)

eval_dataloader: None(no valid step)

test_dataloader: Dataloader composed of Batch (class)

Return type

tuple

get_data_feature()[source]

返回一个 dict,包含数据集的相关特征

Returns

包含数据集的相关特征的字典

Return type

dict

get_visited_locs()[source]
processing(min_freq=20)[source]
region_stats()[source]

统计并打印数据集的一些基本信息

split(max_len=100)[source]
class libcity.data.dataset.dataset_subclass.HGCNDataset(config)[source]

Bases: libcity.data.dataset.traffic_state_point_dataset.TrafficStatePointDataset

calculate_adj_mx_cluster()[source]
Returns

#聚类结果[cluster_num][] 聚类标识[cluster_num][]

get_cluster()[source]
Returns

聚类后的中心向量矩阵,区域[节点]

get_data_feature()[source]

返回数据集特征,scaler是归一化方法,adj_mx是邻接矩阵,num_nodes是点的个数, feature_dim是输入数据的维度,output_dim是模型输出的维度 :returns: 包含数据集的相关特征的字典 :rtype: dict

class libcity.data.dataset.dataset_subclass.LINEDataset(config)[source]

Bases: libcity.data.dataset.abstract_dataset.AbstractDataset

_generate_data()[source]

LINE 采用的是按类似于 Skip-Gram 的训练方式,类似于 Word2Vec(Skip-Gram),将单词对类比成图中的一条边, LINE 同时采用了两个优化,一个是对边按照正比于边权重的概率进行采样,另一个是类似于 Word2Vec 当中的负采样方法, 在采样一条边时,同时产生该边起始点到目标点(按正比于度^0.75的概率采样获得)的多个”负采样”边。 最后,为了通过 Python 的均匀分布随机数产生符合目标分布的采样,使用 O(1) 的 alias 采样方法

_load_cache()[source]

加载之前缓存好的训练集、测试集、验证集

_load_geo()[source]

加载.geo文件,格式[geo_id, type, coordinates, properties(若干列)]

_load_rel()[source]

加载.rel文件,格式[rel_id, type, origin_id, destination_id, properties(若干列)], 生成N*N的矩阵,默认.rel存在的边表示为1,不存在的边表示为0

Returns

self.adj_mx, N*N的邻接矩阵

Return type

np.ndarray

get_data()[source]

返回数据的DataLoader,包括训练数据、测试数据、验证数据

Returns

dict

Return type

batch_data

get_data_feature()[source]

返回一个 dict,包含数据集的相关特征

Returns

包含数据集的相关特征的字典

Return type

dict

class libcity.data.dataset.dataset_subclass.MultiSTGCnetDataset(config)[source]

Bases: libcity.data.dataset.traffic_state_point_dataset.TrafficStatePointDataset, libcity.data.dataset.traffic_state_cpt_dataset.TrafficStateCPTDataset

get_data_feature()[source]

返回数据集特征,scaler是归一化方法,adj_mx是邻接矩阵,num_nodes是点的个数, feature_dim是输入数据的维度,output_dim是模型输出的维度, len_closeness/len_period/len_trend分别是三段数据的长度

Returns

包含数据集的相关特征的字典

Return type

dict

class libcity.data.dataset.dataset_subclass.PBSTrajectoryDataset(config)[source]

Bases: libcity.data.dataset.abstract_dataset.AbstractDataset

popularity based negative sampling weighted random sampling based on np.random.choice

cutter_filter()[source]
切割后的轨迹存储格式: (dict)
{
uid: [
[

checkin_record, checkin_record, …

], [

checkin_record, checkin_record, …

}

divide_data()[source]
Returns

train_data (list) eval_data (list) test_data (list)

encode_traj(data)[source]

encode the cut trajectory

Parameters

data (dict) –

the key is uid, the value is the uid’s trajectories. For example: {

uid: [

trajectory1, trajectory2

]

} trajectory1 = [

dyna_id, dyna_id, …..

]

Returns

For example:
{

data_feature: {…}, pad_item: {…}, encoded_data: {uid: encoded_trajectories}

}

Return type

dict

get_data()[source]

轨迹比较特殊,原子文件中存储的并不是轨迹而是一个一个点,因此需要先对轨迹进行切割

get_data_feature()[source]

返回一个 dict,包含数据集的相关特征

Returns

包含数据集的相关特征的字典

Return type

dict

get_encoder()[source]
class libcity.data.dataset.dataset_subclass.RESLSTMDataset(config)[source]

Bases: libcity.data.dataset.traffic_state_point_dataset.TrafficStatePointDataset

class libcity.data.dataset.dataset_subclass.STAGGCNDataset(config)[source]

Bases: libcity.data.dataset.traffic_state_point_dataset.TrafficStatePointDataset

edge_index_func(matrix)[source]
get_data_feature()[source]

返回数据集特征,scaler是归一化方法,adj_mx是邻接矩阵,num_nodes是点的个数, feature_dim是输入数据的维度,output_dim是模型输出的维度

Returns

包含数据集的相关特征的字典

Return type

dict

get_dtw_edge_index()[source]
get_edge_index()[source]
class libcity.data.dataset.dataset_subclass.STDNDataset(config)[source]

Bases: libcity.data.dataset.traffic_state_datatset.TrafficStateDataset

_generate_train_val_test()[source]

加载数据集,并划分训练集、测试集、验证集,并缓存数据集

_load_cache_train_val_test()[source]

加载之前缓存好的训练集、测试集、验证集

_split_train_val_test_stdn(x, y, flatten_att_nbhd_inputs, flatten_att_flow_inputs, att_lstm_inputs, nbhd_inputs, flow_inputs, lstm_inputs)[source]

划分训练集、测试集、验证集,并缓存数据集

Parameters
  • x (np.ndarray) – 输入数据 (num_samples, input_length, …, feature_dim)

  • y (np.ndarray) – 输出数据 (num_samples, input_length, …, feature_dim)

Returns

tuple contains:

x_train: (num_samples, input_length, …, feature_dim)

y_train: (num_samples, input_length, …, feature_dim)

x_val: (num_samples, input_length, …, feature_dim)

y_val: (num_samples, input_length, …, feature_dim)

x_test: (num_samples, input_length, …, feature_dim)

y_test: (num_samples, input_length, …, feature_dim)

Return type

tuple

get_data()[source]

返回数据的DataLoader,包括训练数据、测试数据、验证数据

Returns

tuple contains:

train_dataloader: Dataloader composed of Batch (class)

eval_dataloader: Dataloader composed of Batch (class)

test_dataloader: Dataloader composed of Batch (class)

Return type

tuple

get_data_feature()[source]

返回数据集特征,子类必须实现这个函数,返回必要的特征

Returns

包含数据集的相关特征的字典

Return type

dict

class libcity.data.dataset.dataset_subclass.STG2SeqDataset(config)[source]

Bases: libcity.data.dataset.traffic_state_point_dataset.TrafficStatePointDataset

_generate_data()[source]

加载数据文件(.dyna/.grid/.od/.gridod)和外部数据(.ext),且将二者融合,以X,y的形式返回

Returns

tuple contains:

x(np.ndarray): 模型输入数据,(num_samples, input_length, …, feature_dim)

y(np.ndarray): 模型输出数据,(num_samples, output_length, …, feature_dim)

Return type

tuple

_generate_train_val_test()[source]

加载数据集,并划分训练集、测试集、验证集,并缓存数据集

Returns

tuple contains:

x_train: (num_samples, input_length, …, feature_dim)

y_train: (num_samples, input_length, …, feature_dim)

x_val: (num_samples, input_length, …, feature_dim)

y_val: (num_samples, input_length, …, feature_dim)

x_test: (num_samples, input_length, …, feature_dim)

y_test: (num_samples, input_length, …, feature_dim)

Return type

tuple

_load_cache_train_val_test()[source]

加载之前缓存好的训练集、测试集、验证集

Returns

tuple contains:

x_train: (num_samples, input_length, …, feature_dim)

y_train: (num_samples, input_length, …, feature_dim)

x_val: (num_samples, input_length, …, feature_dim)

y_val: (num_samples, input_length, …, feature_dim)

x_test: (num_samples, input_length, …, feature_dim)

y_test: (num_samples, input_length, …, feature_dim)

Return type

tuple

_load_rel()[source]

根据网格结构构建邻接矩阵,一个格子跟他周围的8个格子邻接

Returns

self.adj_mx, N*N的邻接矩阵

Return type

np.ndarray

_split_train_val_test(x, y, df=None)[source]

划分训练集、测试集、验证集,并缓存数据集

Parameters
  • x (np.ndarray) – 输入数据 (num_samples, input_length, …, feature_dim)

  • y (np.ndarray) – 输出数据 (num_samples, input_length, …, feature_dim)

Returns

tuple contains:

x_train: (num_samples, input_length, …, feature_dim)

y_train: (num_samples, input_length, …, feature_dim)

x_val: (num_samples, input_length, …, feature_dim)

y_val: (num_samples, input_length, …, feature_dim)

x_test: (num_samples, input_length, …, feature_dim)

y_test: (num_samples, input_length, …, feature_dim)

Return type

tuple

class libcity.data.dataset.dataset_subclass.STResNetDataset(config)[source]

Bases: libcity.data.dataset.traffic_state_grid_dataset.TrafficStateGridDataset, libcity.data.dataset.traffic_state_cpt_dataset.TrafficStateCPTDataset

STResNet外部数据源代码只用了ext_y, 没有用到ext_x!

_get_external_array(timestamp_list, ext_data=None, previous_ext=False, ext_time=True)[source]

根据时间戳数组,获取对应时间的外部特征

Parameters
  • timestamp_list – 时间戳序列

  • ext_data – 外部数据

  • previous_ext – 是否是用过去时间段的外部数据,因为对于预测的时间段Y, 一般没有真实的外部数据,所以用前一个时刻的数据,多步预测则用提前多步的数据

Returns

External data shape is (len(timestamp_list), ext_dim)

Return type

np.ndarray

_load_ext_data(ts_x, ts_y)[source]

加载对应时间的外部数据(.ext)

Parameters
  • ts_x – 输入数据X对应的时间戳,shape: (num_samples, T_c+T_p+T_t)

  • ts_y – 输出数据Y对应的时间戳,shape:(num_samples, )

Returns

tuple contains:

ext_x(np.ndarray): 对应时间的外部数据, shape: (num_samples, T_c+T_p+T_t, ext_dim), ext_y(np.ndarray): 对应时间的外部数据, shape: (num_samples, ext_dim)

Return type

tuple

get_data_feature()[source]

返回数据集特征,scaler是归一化方法,adj_mx是邻接矩阵,num_nodes是网格的个数, len_row是网格的行数,len_column是网格的列数, feature_dim是输入数据的维度,output_dim是模型输出的维度

Returns

包含数据集的相关特征的字典

Return type

dict

class libcity.data.dataset.dataset_subclass.TGCLSTMDataset(config)[source]

Bases: libcity.data.dataset.traffic_state_point_dataset.TrafficStatePointDataset

_load_rel()[source]

加载.rel文件,格式[rel_id, type, origin_id, destination_id, properties(若干列)]

get_data_feature()[source]

返回数据集特征,scaler是归一化方法,adj_mx是邻接矩阵,num_nodes是点的个数, feature_dim是输入数据的维度,output_dim是模型输出的维度, FFR是额外的输入矩阵

Returns

包含数据集的相关特征的字典

Return type

dict