我正在尝试使用Python3.0中的networkx
库以以下格式给定train.csv文件,从而预测一个图形网络。 train.csv文件包含250123个人员上落车站和时间条目。利用以下信息,我需要预测所有站点之间的图形网络。
我知道我应该使用BoardingTime
和AlightingTime
之间的时间差来预测图网络。
例如,对于第一个条目,其中BoardingStation
是旺角,而AlightingStation
是 Lai King ,BoardingTime和AlightingTime之间的时差为14
分钟。
此时间与所有其他条目一起将用于“猜测” 旺角和荔景之间的站数和站数。我认为可以包括的一个假设是,所有节点的两个相邻节点之间的距离相同。
然后,我们可以形成一个大型图网络预测所有站点的节点链接。在此示例中,火车系统为香港地铁火车系统,因此预测的图看起来应该与实际的在线香港地铁地图相似。
输出应类似于以下image,但节点名称为站点名称,网络更大
ID BoardingStation BoardingTime AlightingStation AlightingTime
1 Mongkok 10:01:07 Lai King 10:15:13
2 Tsuen Wan 09:31:45 Mei Foo 09:44:32
3 Disneyland Resort 12:41:37 Prince Edward 13:02:18
4 Tsim Sha Tsui 12:53:30 Mongkok 13:00:09
5 Disneyland Resort 15:11:46 Kowloon Tong 15:39:48
. ... ... ... ...
. ... ... ... ...
. ... ... ... ...
250123 Long Ping 10:52:55 Nam Cheong 11:08:11
答案 0 :(得分:2)
我认为您可以采用的最简单的解决方案是,为每个站点(节点)找到它的所有邻居(与一条边相连)
您可以通过找到包括该站在内的所有行程的最小行程持续时间来轻松完成此操作,BoardingStation
或AlightingStation
一旦有了所有的边和节点,使用networkx
或任何其他lib
此解决方案假定每个相邻对之间的db中存在跳闸
并且只需要一小部分数据,尽管您可以使用其他数据通过将预期(基于模型)行程的持续时间与实际行程进行比较来验证您的解决方案