我正在研究小鼠社交互动模型。我有鼠标和盒子以及一个模拟,它输出哪个鼠标在哪个时间段内停留在哪个盒子中(这是随机选择鼠标来更改盒子的结果)。问题是如何最终并由此获得两只老鼠在同一时间段内在同一个盒子里的会面。我需要这个来查看会议持续时间的 CDF、每天建立一个社交网络等。
现在我有一个 MySQL 数据库,其中模拟直接插入每个逗留结果。然后另一个用 Scala 编写的工具,只检索所有的停留结果,以几百个的部分为单位,循环遍历它们,并为每个询问数据库哪些停留与它重叠,并将每一对插入数据库,如下所示:
box, id1, res_id1, id2, res_id2, from, to, dt,typ
这意味着小鼠 id1 和 id2 在“from”和“to”之间的间隔中的“box”框中,持续时间为“dt”,并且会议类型为“typ”。可能有四种会议类型,具体取决于每只鼠标何时在框中(例如,当一个鼠标相对于另一个鼠标进入和退出时)。“res_id1”和“res_id2”告诉我们使用了哪些逗留结果来生成会议结果。
显然,这是非常低效的。有什么更好的方法呢?我不受限于使用 RDMS,但我认为这将是最简单的,因为我正在阅读并进一步分析 R 中的数据。将停留输出到文本文件中然后使用 Hadoop 以某种方式生成会议是否有意义?还是别的什么?
在大约四分之一的模拟试验期间,我产生了大约 150 万个住宿结果。