一种基于相对熵的周期获取方法与流程

文档序号:17130810发布日期:2019-03-16 01:11阅读:241来源:国知局
一种基于相对熵的周期获取方法与流程

本发明涉及周期发现技术领域,特别是涉及一种基于相对熵的周期获取方法。



背景技术:

周期行为是人类社会最为普遍的一种行为,比如工作日往返于办公室和住所的通勤行为;周末定期举行的家庭聚会或各种娱乐等活动;每月定期的个人所得税上报行为;每年的生日或结婚纪念日的庆祝活动等。随着基于位置服务的流行,以及iot设备的发展,获得了海量的时空数据,记录了大量的人类行为。因此,时空数据中记录了相当可观的人类周期行为。挖掘和分析人类的周期行为有着广泛的应用,包括公共安全,犯罪预防,隐私保护,以及人群移动预测等。

人类周期行为挖掘指发现在固定时间间隔会发生的人类行为。周期发现是周期行为挖掘中最为重要的任务。过去的十几年,出现许多周期获取方法,比如:快速傅立叶变换(fft)和自相关算法。然而,时空数据包含的单个用户历史记录往往是稀疏的,观测不完全,采样不均匀,且包含噪声。其次,因为人类行为是复杂性,所以周期行为不是严格在某个固定的时间点发生,而是在一个时间范围内波动。这些算法的对象是稠密,观测完全,采样均匀的物理的信号系统,因此无法直接应用在时空数据中周期行为的挖掘中。近些年,研究者也提出了多种针对时空数据的周期发现技术,比如warp、lomb-scargle图谱、自相关和fft相结合的技术。但是这些技术都存在假设太强烈、精度不高或者算法时间复杂度过高的问题。

因此,希望有一种技术方案来克服或至少减轻现有技术的上述缺陷中的至少一个。



技术实现要素:

本发明的目的在于提供一种基于相对熵的周期获取方法来克服或至少减轻现有技术的上述缺陷中的至少一个。

为实现上述目的,本发明提供一种基于相对熵的周期获取方法,所述基于相对熵的周期获取方法包括:

步骤1,获取时空数据库中待研究用户在预设时间段内的观测序列;

步骤2,根据步骤1的观测序列,确定两个或两个以上的候选周期t;

步骤3,计算步骤2中的每一个候选周期t的相对熵,并将相对熵中的最大值对应的候选周期t作为真实周期。

进一步地,步骤3具体包括:

步骤31,将按照步骤2确定好的候选周期t,将步骤1提供的观测序列切分成片段;

步骤32,将步骤31切分好的片段在对应的候选周期t内进行叠加;

步骤33,获取长度为t的时间段内的每个离散时间点上观测到的事件si(t);

步骤34,根据步骤33获得的事件si(t),获取观测序列经过候选周期t切分后叠加的落在i位置处的分布pi(t);

步骤35,根据步骤34获得的pi(t),获取候选周期t的熵h(t);

步骤36,根据步骤34获得的熵h(t),获取候选周期t的相对熵;kl*(pi(t)||qi(t))

步骤37,返回步骤31,获取每一个候选周期t对应的相对熵kl*(pi(t)||qi(t)),并选取数值最小的相对熵kl*(pi(t)||qi(t))对应的候选周期t作为真实周期。

进一步地,步骤33中,利用式(1)表示长度为t的时间段内每个离散时间点上观测到的事件:

si(t)={t|mod(t,t)=i∧i(t)=1},t=0,1,...,n-1;i=0,1,...,t-1(1)

式(1)中:

si(t)表示在长度为t的时间段上第i个时刻的观测到的事件;

mod()表示求余函数;

i(t)=1表示t时刻观测到事件发生,i(t)=0表示t时刻没有观测到事件发生;

t是待检测的候选周期;

t表示序列时间,其取值从0到n-1,n是观测序列的长度;

i表示序列时间t除以t的余数,其取值从0到t-1。

进一步地,步骤34中,利用式(2)计算观测序列经过候选周期t切分后叠加的分布:

式(2)中:

pi(t)表示观测的事件在候选周期t中落在i位置处的概率;

sj(t)表示在长度为t的时间段上第j个时刻的观测到的事件。

进一步地,步骤35中,利用式(3)计算候选周期t的熵:

式(3)中,h(t)表示候选周期t的熵。

进一步地,步骤36中,利用式(4)计算候选周期t的相对熵:

kl*(pi(t)||qi(t))=logt-h(t)(4)

式(4)中:

kl*(pi(t)||qi(t))表示候选周期t的相对熵;

qi(t)表示候选周期t中,均匀分布在中第i个位置上的概率,其表达式为:qi(t)=1/t。

进一步地,步骤2中,将观测序列从t=2开始,选取两个或两个以上的候选周期。

本发明利用分割后区间上观测的叠加分布来发现真实的周期,使用相对熵衡量序列切分后叠加的分布与候选周期上的均匀分布之间的差异,并作为判断是否真实周期的标准。本发明方法尤其适用于挖掘时空数据中人类的周期行为的周期。

附图说明

图1是本发明所提供的周期序列在不同候选周期下的分布示意图;

图2是图1所示的周期片段叠加后的状态示意图;

图3至图8是不同参数下的周期获取方法性能对比的示意图。

具体实施方式

在附图中,使用相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面结合附图对本发明的实施例进行详细说明。

本实施例提供的基于相对熵的周期获取方法包括如下步骤:

步骤1,获取时空数据库中待研究用户在预设时间段的观测序列。该步骤中,可以使用网络爬虫、商业合作、个性化定制等方式获取“时空数据库中待研究用户在预设时间段的观测序列”。

步骤2,根据步骤1的观测序列,确定两个或两个以上的候选周期t。优选地,将观测序列从t=2开始,选取两个或两个以上的候选周期。

步骤3,计算步骤2中的每一个候选周期t的相对熵,并将相对熵中的最大值对应的候选周期t作为真实周期。

在一个具体实施例中,步骤3具体包括:

步骤31,按照步骤2确定好的候选周期t,将步骤1提供的观测序列切分成片段。比如图1中,观测序列为一周,第一候选周期t1=168,第二候选周期t2=192,切分方式如图1中示出地,若按第一候选周期进行t1=168切分,那么一周被切分成8个片段。若按第二候选周期t2=192进行切分,那么一周被切分成7个片段。

步骤32,将步骤31切分好的片段在对应的候选周期t内进行叠加。比如:观测序列为时间长度为500,可能观察到的数据有10或20个等等。候选周期选为50,那么,将得到10个长度为50的片段。此处的“叠加”实际上可以理解为是将10个长度为50的片段都放到0-49(50)这样一个区间中。这样,所有的观测数据,本来是在0-499这样一个区间的,通过切割后,都转换成0-49这个区间。从图2左侧所展示的,可以看到多数观察都落在t1=168中时间点114(对应于一周中周四晚6点)附近。但该观测序列被不正确的t2=192切分成片段,然后叠加,如图2右侧所示,可以发现被观察到的事件在候选周期形成的长为192的区间上,落点几乎覆盖了整个区间。这个结果说明:如果某个观测序列由真实周期t0切分成片段,那么叠加后所有观测到的事件会落在一个紧密的区间[t0-δ,t0+δ],其中t0表示观测在一个区间内的时间戳,δ表示相对t0很小的值。当观测序列被不正确的候选周期t切分成片段,那么叠加后观测到的事件将会落在比区间[t0-δ,t0+δ]更大的区间中。从叠加后观测到的事件分布的角度看,如果观测序列被真实周期t0切分后叠加,被观测的事件在t0上的分布更集中;而被不正确的候选周期t切分后叠加,被观测的事件在t上的分布更分散。

步骤33,获取长度为t的时间段内的每个离散时间点上观测到的事件si(t),具体地,利用式(1)表示长度为t的时间段内每个离散时间点上观测到的事件si(t):

si(t)={t|mod(t,t)=i∧i(t)=1},t=0,1,...,n-1;i=0,1,...,t-1(1)

式(1)中:

si(t)表示在长度为t的时间段上第i个时刻的观测到的事件;

mod()表示求余函数;

i(t)=1表示t时刻存在观测;

t是待检测的候选周期;

t表示序列时间,其取值从0到n-1,n是观测序列的长度;

i表示序列时间t除以t的余数,其取值从0到t-1。

步骤34,根据步骤33获得的事件si(t),获取观测序列经过候选周期t切分后叠加的落在i位置处的分布pi(t),具体地,利用式(2)计算观测序列经过候选周期t切分后叠加的分布pi(t):

式(2)中:

pi(t)表示观测在候选周期t中落在i位置处的概率;

sj(t)表示在长度为t的时间段上第j个时刻的观测到的事件。

步骤35,根据步骤34获得的pi(t),获取候选周期t的熵h(t),具体地,利用式(3)计算候选周期t的熵h(t):

式(3)中,h(t)表示候选周期t的熵。

步骤36,根据步骤34获得的h(t),获取候选周期t的相对熵kl*(pi(t)||qi(t)),具体地,利用式(4)计算候选周期t的相对熵:

kl*(pi(t)||qi(t))=logt-h(t)(4)

式(4)中:

kl*(pi(t)||qi(t))表示候选周期t的相对熵;

qi(t)表示均匀分布在中第i个位置上的概率,其表达式为:qi(t)=1/t。

在一个实施例中,步骤36中的相对熵kl*(pi(t)||qi(t))可以用来衡量两个分布pi(t)和qi(t)的差异。离散分布的相对熵定义为:

候选周期t上的均匀分布为:qi(t)=1/t,则上面的式子可以写成:kl(pi(t)||qi(t))=loge[logt-h(t)]

上面式子中的loge是常数,对周期分析没有影响,可以忽略,所以候选周期t上的相对熵可表述成上述的式(4)。

与传统的周期获取方法相比,采用基于相对熵的周期获取方法,考虑了观测序列的稀疏性、观测不完全、采样不均匀且包含噪声的特性,特别是考虑了人类周期行为会在某个范围内波动的特点,提出了一种新的基于相对熵的周期获取方法。该算法具有更好的预测精度,计算量小,提高了运算效率与总体处理速度。

本实施例提供一个采用本发明方法的用于周期发现的实例。

本实施例中,数据采用的是模拟数据。用下面的四个步骤生成合成数据。

给定固定大小的周期t0,比如t0=24。生成一个周期片段sqefra,周期片段sqefr是一长度为t0的子序列。在该子序列中,有且仅有一个元素的值为1,表示长度为t0的时间段中某个时刻观测到周期行为。该子序列中的其余元素均为0。值为1的元素出现在ti的概率满足一元高斯分布,其中均值为t0,方差为σ2

将步骤1重复做n次,组合在一起形成完成的观测序列sqec。

对sqec进行采样,采样率为δ。在sqec中的每个周期片段中,每个值为1的元素以概率δ保留,以概率1-δ的概率被修改为0,最终得到采样后的序列sqeb。

加入随机噪声。在中以sqeb概率为γ的方式加入随机噪声。在sqeb中的每个周期片段中,从所有为0的元素中随机选择一个元素,以γ概率将其修改为1.最终得到合成的序列。

如图3至图8所示,本发明给出的实例中,上面步骤中所有参数的默认值为:

t0=24,t0=12,σ2=1,n=120,δ=0.2,γ=0.1

在使用中选取了三种方法用于对比:fft、eperiodicity和pred。图3至图8给出了多种参数条件下,本实施例与其它周期获取方法精度的对比图。其中曲线mipd表示的是本发明方法的位置预测精度。另外三条条曲线曲线fft、曲线eperiodicity和曲线pred是目前流行的三种发现方法的实验结果曲线。从图3至图8中可以看出在相同的条件下,本发明的方法要优于另外三种周期获取方法。

显然对于某个候选周期而言,如果切分后叠加是均匀分布,这观测会在所有时间戳上等概率出现,则显然不能形成周期行为,所以其不是真正的周期。如果切分后叠加,分布越陡峭,则越接近真实周期。如果序列经过某个候选周期t的切分叠加后,所有观测接近落在长度为t的区间上的一点,此时分布最陡峭,则t为真实周期,此时的分布与t的均匀分布差异最大。而所有观测的事件接近落在长度为t的区间上的所有点上,且接近均匀分布,显然候选周期t与产生观测的周期行为在真正周期上的分布相差最小,不是真实周期。因此,序列切分叠加后的分布与候选周期t上的均匀分布越接近,则越不是真实周期;与t上的均匀分布差异越大,则有可能是真实周期。利用这种与均匀分布的差异可以对不同候选字后期上的分布进行比较。

本发明使用相对熵衡量序列切分后叠加的分布与候选周期上的均匀分布之间的差异,并作为判断是否真实周期的标准。

最后需要指出的是:以上实施例仅用以说明本发明的技术方案,而非对其限制。本领域的普通技术人员应当理解:可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1