地铁系统在线时空OD分布及进出站流预测

实话说,文章看的比较痛苦,解决的是交通问题,可好多交通的术语啥的写的云里雾里,看着比较难受。一言难尽~

1、文章信息

《Online Spatio-temporal Crowd Flow Distribution Prediction for Complex Metro System》。

2020年发在计算机领域IEEE Transactions on Knowledge and Data Engineering上的一篇文章。

2、摘要

人流预测作为现代交通管理的一项重要任务,在智能交通服务的诸多任务中发挥着重要作用。然而,现有的技术大多只关注于预测地铁站出入口流量,不能为交通管理提供足够有用的知识。在实际应用中,管理者迫切希望通过潜在的乘客分布来帮助当局改善交通服务,这被称为人群流分布(CFD)预测(OD预测)。因此,为了提高交通运输服务质量,我们提出了三种时空模型来有效地解决基于在线潜在空间策略online latent space (OLS) strategy的全网络CFD预测问题。我们的模型考虑了各种趋势模式和气候影响,以及不同站点之间的固有相似性,从而能够精确地预测CFD和进出口流量。在我们的在线系统中,使用一系列CFD快照作为训练数据。从以往的变化趋势中,可以了解不同地铁站的潜在属性演化,并根据过渡模式进行下一步的预测。所有的实证结果表明,在三个大规模的真实数据集上,三种开发的模型优于所有其他先进的方法。

3、简介

目前,已经有许多成功且适用的人群流量预测方法被提出,以改善公交部门的运营。不幸的是,据我们所知,大多数现有的地铁客流预测方法都是非网络化的,经常应用于单独的车站或几条地铁线路上,(这样描述有点不太合适了)这些方法都不能直接应用于CFD预测中。

但是,需要指出的是,仅仅关注出入口流量是不够的,管理人员还迫切希望解决获得潜在乘客分布的问题,即预测人群流动分布,本文称之为CFD预测。一旦可以得到整个交通网络的客流,预测的CFD信息将大大有助于分析一个站点如何影响其他站点,这对于城市交通发展至关重要,例如,乘客路线规划和列车调度。例如,图1(a)显示了一个预测的快照。该模型预测,在下午4点45分到5点之间,有272名乘客从中央车站出发。其中,124名乘客将分别抵达Bondi Junction, 88名到达Redfern, 60名到达Stanmore。通过获得各地铁站之间的CFD预报,交通管理者可以及时预测不规律的流型,并制定全球规则,维持列车的正常运行,并对人群疏散进行预警。图1(b)说明当中央车站入口出现不规则流量时,交通拥塞警告会传送至所有可能受影响的车站(Redfern及Bondi交界处)。

到目前为止,有限的技术可以直接用于解决网络范围的CFD预测问题。尽管深度神经网络能够解决网络范围的人群流预测问题,但它们对参数和不完整的输入很敏感,并且需要大量的训练数据。综上所述,我们的CFD预测问题面临着三个内在的挑战:

较高的计算复杂度。具体的CFD预测问题需要得到整个地铁站的所有潜在流量,同时计算出入口流量和CFD。即使是在几条地铁线路上,大多数先进的模型也比较耗费计算资源。同时,他们需要重复的大型离线训练过程,难以应用于在线系统和网络范围的问题。

动态复杂性。人流会受到复杂因素例如时间、站点相似性和气候条件的影响而发生动态变化。

延迟的实时数据采集。考虑到在线系统,当我们关注入口CFD预测时,一个乘客进入一个站点和离开另一个站点之间存在一个旅行时差。由于有大量乘客仍在旅途中,这些时间差导致在线系统无法收集完整的数据。在这种情况下,既有的大多数城市交通流预测方法在训练和测试过程中都需要完整的数据,无法解决我们的问题。

基于这些挑战,我们提出了三种用于复杂地铁网络CFD预测的在线潜在空间学习模型,能够精确地预测CFD和出入口流量。最近,在线潜在空间策略被应用于交通流预测任务中,被认为是解决时空网络问题的一种先进方法。这些模型首先利用基于矩阵分解的方法将网络范围内的数据嵌入到潜在空间中。在此基础上,利用时间信息捕获潜在属性,并检测随时间变化的动态模式。

本文利用非负矩阵分解(NMF)策略,将每个时间戳的CFD网络嵌入到两个潜在空间中,有效地推断出不同站点间的时空潜在属性;第一个潜在空间表示所有入口地铁站的属性,第二个潜在空间表示所有出口地铁站的属性。本文的第一个贡献是提出了一种CFD预测模型,称为OLS-AO (online potential space model with average optimization),该模型能够在给定的时间窗内利用时间戳中的average optimization strategy来学习平滑趋势。

该模型还采用了图拉普拉斯嵌入方法,将全球各观测点和气候的相似性体现在模型中。但是,当遇到一些不正常的事件或高峰时段时,会出现流量的突然增加/减少。在这种情况下,平均策略可能会阻止OLS-AO获得流量的突然变化,从而误导下一个预测。为了保持我们的方法在实际应用中运行的有效性,我们的第二个贡献是通过对最新CFD趋势的优化进一步设计了另一个变体模型,称为OLS-MR(具有最新趋势的在线潜在空间模型)。实证结果表明,当人群流动发生剧烈变化时,第二种模型OLS-MR的表现优于OLS-AO模型。因此,鉴于每种模型在各种情况下的性能都相对较好,我们的第三个贡献是提出了一种双轨模型,称为OLS-DT,它以并行运行的方式同时利用了OLS-AO和OLS-MR的优点。

Attention

如果你和我一样是轨道交通、道路交通、城市规划相关领域的,可以加微信:Dr_JinleiZhang,备注“进群”,加入交通大数据交流群!希望我们共同进步!

### OD分布预测之平均增长系数法 #### 定义与原理 平均增长系数法是一种用于交通分布预测的方法,属于交通规划四阶段预测模型的一部分。该方法旨在通过历史数据来估计未来的OD(Origin-Destination)量变化趋势。这种方法假设各个区域间的出行增长率保持一致,在此基础上对未来OD矩阵进行估算[^1]。 #### 计算程 为了应用此方法,通常需要以下几个要素: - **初始年份的OD矩阵**:这是作为基础的数据集。 - **各区间的历史增长率**:基于过去一段时间内观测到的增长情况得出。 - **目标年的预计总出行次数**:这通常是根据城市发展规划等因素预估出来的数值。 接着按照下面的方式处理这些输入参数: 1. 对于每一对起讫点(i, j),利用已知的历史数据计算其平均年度增长率r_ij; 2. 使用上述得到的增长率调整现有的OD矩阵元素T0_ij至新的时间周期t后的预期值Tt_ij;公式如下所示: \[ T_{ij}(t)=T_{ij}(0)\times (1+r_{ij})^{t} \] 其中\( r_{ij}\)表示i区到j区之间每年平均增加的比例,而 \( t\) 则代表所考虑的时间跨度长度。 #### Python实现案例 以下是采用Python语言编写的简单版本程序片段,展示了如何运用平均增长系数来进行OD表更新操作: ```python import pandas as pd from typing import Dict def calculate_average_growth_rate(data: Dict[int, float], years: list) -> float: """Calculate the average growth rate over specified periods.""" rates = [] for i in range(len(years)-1): start_year = years[i] end_year = years[i+1] change_ratio = data[end_year]/data[start_year]-1 annualized_growth_rate = pow((change_ratio + 1), 1/(end_year-start_year)) - 1 rates.append(annualized_growth_rate) avg_growth_rate = sum(rates)/len(rates) return avg_growth_rate def predict_future_od_matrix(od_matrix_df: pd.DataFrame, avg_growth_rates_dict: dict, forecast_years=5) -> pd.DataFrame: """ Predict future Origin-Destination matrix based on given average growth rates. Parameters: od_matrix_df : Current year's origin destination dataframe with index and columns representing zones. avg_growth_rates_dict : Dictionary containing zone pairs as keys and their corresponding average growth rates as values. forecast_years : Number of years into the future to make predictions about. Returns: A DataFrame object that represents predicted OD Matrix after applying Average Growth Rate Method. """ result = od_matrix_df.copy() for row_index, col_name in zip(result.index, result.columns): key = f"{row_index}_{col_name}" if key not in avg_growth_rates_dict.keys(): continue current_value = result.loc[row_index][col_name] estimated_future_value = round(current_value * ((1 + avg_growth_rates_dict[key])**forecast_years)) result.at[row_index, col_name] = max(estimated_future_value, 0) return result ``` 这段代码定义了一个`calculate_average_growth_rate()`函数用来获取两个不同时间段内的平均增长率,并提供了一种方式去构建一个名为`predict_future_od_matrix()`的新功能,它接收当前OD表格以及之前已经计算好的各区段间平均增长率字典作为输入,最终返回经过预测调整之后的结果。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

当交通遇上机器学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值