最近琢磨着如何处理MIT Reality数据集以导入The ONE,上午无意中发现已有人做了这部分工作,整理过来,以便交流(研究过程中发现,就数据集本身而言,就有很多可讨论的地方)。
1. 下载数据集
DTN的数据集通常在CRAWDAD下载(下载数据集,需要加入CRAWDAD社区,点这里。收到的邮件包含账号和密码可用于下载),但值得注意的是,上面的数据集有些是错误的,我就遇到这种情况,我在分析Bubble Rap论文中提到的数据集,发现结果与论文相差甚大,有的甚至连数据集描述都不一样,详情可参考文章《Bubble Rap数据集Infocom05, Hong-Kong, Cambrige, Infocom06, Reality》。得到Bubble Rap作者Pan HUI的确认,CRAWDAD上的Infocom06的确有问题。
从CRAWDAD下载的数据集,几乎都要自己写脚本转换成符合The ONE的格式(StandardEventsReader format),关于如果转换格式以及如何使用外部数据集可参考之前博文《导入不含节点位置的数据集》。
2. 可直接使用的数据集
幸运的是,已有人分享了适合The ONE使用的数据集,见Matthew Orlinski的博文《Encounter traces for the ONE simulator》。以下摘抄其主要内容。
- Reality Mining by MIT: 97 devices. Data taken from between 4294800 and 21276000 seconds. See original dataset.
- Haggle 3 - Infocom 5: 41 devices. See original dataset.
- Haggle 4 - Cambridge Imotes: 36 devices. See original dataset.
- Haggle 6 - Infocom 6: 77 mobile devices (20-97), plus static devices. See original dataset.
- LocShare: Note: All connections are for 10 seconds (see below). See original dataset
- NUS Contacts. Devices 10000 to 13000 only. Inferred dataset from lecture timetables. Limited to 3000 devices. See original dataset.
- Sassy: 25 devices. See original dataset.
3. 分析数据集
事实上,就数据集处理上,还是有很多值得讨论的地方。比如Infocom06有50%以上的contacts,其开始时间和结束时间是一样的。这种情况下,是简单丢弃不管呢,还是按连接1秒来算。举例如下:
1 3 51293 51293 1 0
1 3 60603 60603 2 9310
除此之外,从数据集建模contact graph,计算节点的中心度,做社区检测,这些都离不开对数据集的处理。我在这方面做了一些工作,可参考之前博文《数据集Infocom06分析:求所有重叠区间(附源码)》。