WFSPM算法

204 阅读3分钟

写在前面:偶然翻到一篇关于权重频度挖掘的文献,之前研究的效用挖掘其实也是权重度量的一种表现,但在这种情况下很少会与支持度结合起来(也有对结合的研究),这次正好借着这篇文献了解一下权重还有哪些表现形式

Weighted frequent sequential pattern mining

定义

  • 因为是序列挖掘,所以默认规则是 同一个时间点上 发生的事件之间是没有排序关系,而在不同时间点上发生的事件之间是有排序关系

  • 将权重(weight)进行具象化有三种方式:

    • 效用值计算:利润越高的商品权重越大
    • 忽略现实中pattern的意义,自定义权重:重要的客户购买低利润的商品
    • 异常值:网络安全中的异常检测,很少但权重值很高(本文研究方向)
  • 支持度权重(weighted support):类似于以往的效用值,项集的支持度权重计算公式为

    Weightis(itemset)=itemitemsetWeight(item)itemsetWeight_{is}(itemset) = \frac{\sum_{item \in itemset}Weight(item)}{\mid itemset \mid},

    需要注意的是 itemset\mid itemset \mid 不是项集的长度,而是项集内包含不同项的个数;同理,(子)序列的支持度权重计算公式为

    Weightseq(P)=itemsetPWeightis(itemset)length(P)Weight_{seq}(P) = \frac{\sum_{itemset \in P}Weight_{is}(itemset)}{length(P)},

    其中 P\mid P \mid 是指该(子)序列中包含多少个项集

  • 数据集中最大权重值(total sequence maximum weight):使用最大权重值作为一个平衡量,避免因为支持度和项集大小的变化失衡,计算公式为

    tsmw(D)=SIDDLMaxW(SID)tsmw(D) = \sum_{SID \in D}LMaxW(SID),

    其中 LMaxW(SID)LMaxW(SID) 表示在当前标号为 SIDSID 序列包含的所有项中最大的那个权重值

  • 相对支持度权重(relative weighted support):对于(子)序列计算相对支持度权重能够使得阈值设置更加合理,得到的结果可信度更高,计算公式为

    WSUP(P,D)=Weightseq(p)×support(P)tsmw(D).WSUP(P, D) = \frac{Weight_{seq}(p) \times support(P)}{tsmw(D)}.
  • 项集首次出现位置(last itemset index of the first occurrence):用作记录对应项集在每条序列中首次出现的位置,为了节省空间,只记录出现情况

  • 可扩展列表:对于标号为SIDSID的序列,(子)序列 PP 的可扩展项用 LeftItemSet(P,SID)LeftItemSet(P, SID) 记录,且用 LeftVec(P)LeftVec(P) 记录这些在不同序列中可扩展项的数量

  • 潜在出现列表(probable occurrence list):指的是那些可以作为当前序列的扩展项组成的多个列表(不同序列上有不同扩展项),记为 POL+n(P)POL_{+n}(P)nn 表示当前允许扩展多少个项(LeftVec(P)\mid LeftVec(P) \mid

  • 支持度权重上边界(possible weighted support):该值的作用和之前的上边界值WSpanCondIUACond是一样的,但表现会更紧凑,对于(子)序列 PP 的单个扩展的预估值计算公式为

    Contrib(P,SID,n)=length(P)×Weightseq(P)+n×LMaxW(SID)length(P)+nContrib(P, SID, n) = \frac{length(P) \times Weight_{seq}(P) + n \times LMaxW(SID)}{length(P) + n},

    所以,支持度权重上边界 PWS+n(P)PWS_{+n}(P)=SIDPOL+n(P)Contrib(P,SID,n)\sum_{\forall_{SID \in POL_{+n}(P)}} Contrib(P, SID, n) 的计算公式为

    SIDPOL+n(P)length(P)×Weightseq(P)+n×LMaxW(SID)length(P)+n.\forall_{SID \in POL_{+n}(P)}\sum\frac{length(P) \times Weight_{seq}(P) + n \times LMaxW(SID)}{length(P) + n}.

策略

Maximum possible weighted support pruning strategy

根据定义中给出的 possible weighted support (PWS) 上边界值,取对于(子)序列 PP 的所有扩展预估值,取最大的记为 MaxPWSabsMaxPWS_{abs},然后为了使结果更加可靠,取相对值 MaxPWSrelMaxPWS_{rel} = MaxPWSabstsmw(D)\frac{MaxPWS_{abs}}{tsmw(D)};当 MaxPWSrel<δMaxPWS_{rel} < \delta 时,我们可以根据反单调性认为 PP 不存在符合条件的超集,证明过程在文献中有详细推理

伪代码

MaxPWS procedure

MaxPWS.png

Ps. 文献后续还讲解了对MaxPWS的优化流程

I- and S-extension procedure

Extension.png