我如何区分两个不同的用户,比如两个不同的邻居,他们住在同一个地址,去同一个办公室,但他们的驾驶方式不同,办公时间也不同。我想找出两个人的行为或多或少完全准确的概率。根据地图的分辨率,我想弄清楚它们在哪里,它们出现的频率。我可以为每个驱动程序创建一个模式'到一些签名中,在那里可以追踪他们的身份。
1 回答
顺便说一句,我假设您还没有任何合理的想法。因此,我将做出一个纯粹基于您可能想尝试的想法的答案。
我最初想提出一些关于单词相似度指标的建议,但因为顺序在这里并不一定很重要,也许值得尝试一些更简单的开始。事实上,如果我发现自己在开发模型时考虑了一些复杂的事情,我会后退一步并尝试简化。编码速度更快,而且你不会那么执着于死胡同。
那么,直方图呢?如果将时间和空间划分为更大的块,则可以在每个时间间隔的相关位置增加一个值。你会得到一个人位置的二维直方图。您可以使用基本的抗锯齿来使直方图更具代表性。
从那里开始,就可以进行直方图比较了。您可以仅使用 1D 条带实现一些真正的基本功能。您知道,就像对每个垂直和水平条带的相似性度量求和一样。线性直方图比较非常简单,只需几行像 C 这样的语言的代码。对于概念证明来说已经足够了。如果感觉你走在正确的轨道上,那就开始寻找更棘手的想法......
接下来我要做的是进一步分层我的数据,使用一周中的几天和法定假日......甚至可能使用季节性变量进一步分层。我发现它对于预测电力负荷非常有效,这与社会模式和天气一样重要。当您分离一个影响变量时,趋势变得更加明显。
所以,在分层之后,你会得到一堆 2D 的“切片”,你的签名就变成了一种 3D 体积。我认为将整个星球表示为网格并没有错。无论您的方格代表 100m 还是 1km。很容易将其稀疏存储并删除超出一定数量标准偏差的任何内容。您可能只选择当天最重要的活动,并最终选择几个地点。
然后,您可以专注于比较指标。也许是某种基于图像的梯度或聚类分析。我敢肯定那里有很多很棒的东西。这只是我做的那种起点,没有做任何研究。
如果您需要添加一些时间信息来引入生活非常相似的人之间的分离,您可以在系统中构建一些滞后......例如“他们一小时前在哪里”。在那个时候(或者可能之前),你可能想要从我过度简化的平均一个人的日常活动的方法中切换,而是使用分类树之类的东西。使用 MATLAB 或 R 之类的工具开发这种东西非常容易和快速。