Page 452 - 《软件学报》2025年第5期
P. 452

2352                                                       软件学报  2025  年第  36  卷第  5  期


                                                          x
                 定理  1, x 是一个聚簇频繁模式候选项集, 将        ICFPM-list 加入  new-Candidate k 中  (第  11 行). 最后, 将  new-Candidate k
                 复制到   new-Candidates 中  (第  14 行), 算法通过  while 循环重复调用  new-Generate 生成更大项集. 每次调用时, new-
                 Generate 都会组合  k 项集  (k≥1) 来生成  (k+1) 项集, new-Generate 结束后会将满足频繁的项集存储到      new-Candidates
                 中, while 结束条件是|new-Candidates|≤1 (第  15–18  行).
                    算法  4  给出了  new-Generate 算法的具体执行情况, 具体如下所示.

                 算法  4. new-Generate 算法.

                 输入: new-Candidates, minSup, Eps, minPts, maxNR, minCF, bvTimeMap, |TDS|;
                 输出: 长度为   (k+1) 的聚簇频繁模式.

                                 ∅ ; //用于以  ICFPM-list 结构存储所有长度为    (k+1) 聚簇频繁模式候选项集;
                 1. new-Candidate k+1 =
                 2. 将  new-Candidates 中包含的所有  k 项集放入  itemsets 中;
                 3. foreach Px  ∈ itemsets do
                 4.  foreach Py  ∈ itemsets 如果满足  y≻ x 且  Px, Py 有相同长度为  (k–1) 的前缀  P do
                 5.   bitvec Pxy =new-Candidates(Px)∩new-Candidates(Py); //new-Candidates(Px) 和  new-Candidates(Py) 表示  Px, Py
                 对应的位向量;
                        Pxy
                 6.   TS =map(bvTimeMap, bitvec Pxy );
                                  Pxy
                         Pxy
                 7.   if S ⊂Pxy 且|S |=|Pxy|–1, S Pxy   ∈ itemsets then //定理  2
                           Pxy
                                Pxy
                                  /
                 8.    Sup =|TS |   |TDS|;
                            Pxy
                 9.    if Sup ≥minSup then
                                                  Pxy
                                      Pxy
                            Pxy
                                Pxy
                 10.     P =C ∪Noi =DBSCAN(TS , Eps, minPts);
                             Pxy   Pxy  /  Pxy
                 11.     NR =|Noi |   |TS |;
                              Pxy
                                                                               Pxy
                 12.     if NR ≤maxNR then 通过  C Pxy  计算得到  L Pxy  并且输出  Pxy 及对应  L ;
                              Pxy
                 13.     if |C |≥minCF then  将  Pxy, bitvec Px 以 y  ICFPM-list Pxy  形式加入  new-Candidate k+1 ; //定理  1
                 14.    end if
                 15.   end if
                 16.  end foreach
                 17. end foreach
                 18. return new-Candidate k+1
                    new-Generate 以包含一组   k 项集的  ICFPM-list (记为  new-Candidates), minSup, Eps, minPts, maxNR, minCF,
                 bvTimeMap, |TDS|作为输入, 输出长度为     (k+1) 的聚簇频繁模式. 算法首先初始化           new-Candidate k+ 为空, new-
                                                                                               1
                 Candidate k+ 用于存储长度为   (k+1) 的聚簇频繁模式候选项集对应的          ICFPM-list, 并将  new-Candidates 中包含的所
                          1
                 有项集放入    itemsets 中  (第  1、2  行). 接下来, 执行双重循环组合   k 项集对以生成     (k+1) 项集. 如果  2  个  k 项集  Px
                 和  Py 拥有相同长度为     (k–1) 的前缀  P, 且满足  y≻ x, 则将这  2  个项集组合为  (k+1) 项集  Pxy (第  2、3  行). 接下来,
                 将  Px 和  Py 对应的  new-Candidates(Px) 和  new-Candidates(Py) 先取交集后得到  Pxy 对应位向量  bitvec Pxy , 之后对
                                               Pxy
                 bitvec Px 通过  bvTimeMap  映射得到  TS  (第  5, 6  行). 根据定理  2, 检查  Pxy 的所有长度为  k 的子项集是否都是聚
                       y
                 簇频繁模式    (在  itemsets 中), 如果存在子项集不满足, 则    Pxy 及超集都不是聚簇频繁模式         (第  7  行). 否则, 与算法  3
                 类似, 对  Pxy 进行聚簇频繁模式判断       (第  8–12  行). 根据定理  1, 将满足条件的   Pxy 及对应  bitvec Px 先转为  ICFPM-
                                                                                           y
                   Pxy
                 list , 再将  ICFPM-list Pxy  存储到  new-Candidate k+ 中 1  (第  13 行). 最后, 返回  new-Candidate k+1 , 用来下一次调用  new-
                 Generate 时生成  (k+2) 项集  (第  18  行).

                 3.3.2    运行实例
                    考虑表   1  所示  TDS, 给定  minSup=0.3, maxNR=0.3, Eps=2 (天), minPts=3 (天). ICFPM (算法  3) 首先将  TDS  转
   447   448   449   450   451   452   453   454   455   456   457