我们首先将记录和时间戳信息转换成一个时间戳矩阵。如下所示。
然后依次比较相应的记录,比较的结果有下面几种情况:如果记录的时间戳的数量不在我们设置的阈值的范围λ1-λ2内(时间戳矩阵的列数),那么是不需要参加分组操作的(例如b,f,g),这一举措主要是为了滤除访问频率较小或者访问频率较大的数据,在满足阈值范围的记录中我们用时间戳信息来进行关联性查找。然后我们在实验中设置了一个很重要的参数Δ,表示时间戳之间的差值,如果两个记录的所有按顺序排列的时间戳的差值都在Δ之内,那么这两个记录是弱相关的,如果在弱相关的基础上有至少一对时间戳的差值是1,那么就是强相关的。数据关联性查找的流程图如图4-4所示。
图4-4数据关联性查找流程图
如下所示,是发现数据对之间的关联性的详细伪代码,主要是以记录的时间戳矩阵T作为输入,关联的数据作为输出。
发现数据对之间的关联性
输入:时间戳矩阵T,时间戳列数范围λ1-λ2,
数据对关联类型assoctype,时间戳差值Δ
输出:关联数据对
1 for i=1 to len(T)-1 do
2 if len(T[i])≤λ1 or len(T[i])≥λ2 then
3 continue
4 assoctype=weak
5 for j=i+1 to len(T) do
6 for k=1 to len(T[i]) do
7 if abs(T[i][k]-T[j][k])>Δ then
8 assoctype=notassociation
9 else
10 if abs(T[i][k]-T[j][k])==1
11 assoctype=strongassociation
12 else assoctype=weakassociation
13 return assoctype
14 if assoctype== weakassociation|| assoctype==strongassociation
15 addAssociation(blocki,blockj)
版权所有:编程辅导网 2021 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。