前言
本篇博客出于学习交流目的,主要是用来记录自己学习后的理解,过程中遇到的问题和心路历程,方便之后回顾。过程中可能引用其他大牛的博客,文末会给出相应链接,侵删!
REMARK:本人菜鸟一枚,如有理解错误还望大家能够指出,相互交流。也是第一次以博客的形式记录,文笔烂到自己都看不下去,哈哈哈
这篇学习笔记关于一种高效Top-k的频繁效用项集挖掘算法。
参考文献:Efficient Algorithms for Mining Top-K High Utility Itemsets
本博客介绍一些高效用频繁模式挖掘以及传统高效用top-k挖掘的基本概念,具体算法在Top-k高效用项集挖掘学习笔记(二) TKU,Top-k高效用项集挖掘学习笔记(三) TKO 中详细记录,请手动跳转。
正文
Top-k挖掘算法研究意义:解决传统高效用模式频繁项集挖掘需要人为设置阈值的问题,太大或太小的阈值都不好,而重复计算不同阈值结果又造成多次无用重复执行。
一些可能会涉及到的定义:
高效用项集 (HUI):high utility itemset ,如果一个项集不小于用户自定义的最小效用阈值;
有价值的交易效用 (TWU):transaction-weighted utilization,一种高效用频繁挖掘模型,也作项集的效用值上界值;
高价值的交易效用项集 (HTWUI):high transaction-weighted utilization itemset ,TWU中效用值大于阈值的项集,由于TWU是效用值上界,所以HTWUI一定包含HUI;
传统基于TWU的模型,包含两个步骤,phase I :获得所有HTWUI集合(由于TWU是效用值上界,所以HTWUI一定包含HUI);phase II:再基于HTWUI集合具体计算获得HUI;
Top-k高效用项集挖掘即在考虑效用值场景下进行Top-k挖掘。
Top-k高效用项集挖掘面临的主要挑战:
1)高效用项集不具有单调性或反单调性,所以剪枝是很有难度的;
2)怎么结合现有TWU算法和top-k概念。因为在phase I 时候如果确保所有HTWUI一定包含HUI,起始设置最小阈值为0,但这可能会带来一个很大的搜索空间;
3)没有给定的阈值,随着算法的进行不断更新边界阈值,
(border minimum utility threshold),
最初为0,如果不能高效的更新将面临巨大的计算时间和存储开销;
4)如何在不丢失Top-k HUIs 的情况下高效的增大阈值
论文中提出了两种算法:
(1)TKU (mining Top-K Utility itemsets) ;在Top-k高效用项集挖掘_学习笔记(二) TKU会介绍,其中还包括五种优化策略:PE、NU、MD、MC、SE
(2)TKO (mining Top-K utility itemsets in One phase) ;Top-k高效用项集挖掘_学习笔记(三) TKO 中介绍,还包括三个剪枝策略:RUC、RUZ、EPB;请手动跳转。
在开始正式算法之前,还是先看一堆枯燥的定义,我也很绝望,不过后面一直要用到,所以必须认真理解!!!大部分是我按自己的理解解释的,英语原版看原始论文。
高效用项集基本定义
总项集(distinct items)
;事务数据集(transactional database)
;交易记录
是
的子集,
是
;并且对于每个
都有一个内部效用值
,同时对于每个
都有一个外部效用值
;一个项集
共有
个不同的项,
也称作项集
的长度;
表示项集长度为
。
Definition 1. 项的绝对效用值(Absolute utility of an item):
Definition 2. 一条交易中某个项集的绝对效用值(Absolute utility of an itemset in a transaction):
Definition 3. 项集在整个数据集中的绝对效用值(Absolute utility of an itemset in a database):
Definition 4. 交易效用值和总效用值(Transaction utility and total utility):
and
Definition 5. 项集在整个数据集中的相对效用(Utility of an itemset in a database):
Definition 6. 高效用项集(High utility itemset):
项集
被称为高效用项集,当且仅当
,或
,
。
Definition 7. 高效用项集挖掘(High utility itemset mining):
设置参数
为最小效用阈值,数据集
中完整集合
用
表示。HUI挖掘的目标就是挖掘
。
看下面这个例子
表1和表2分别给出了交易数据集和项对应的外部效值,根据上诉的定义,如果这设置
,我们能够计算得到HUIs完整集合为:
由于考虑效用值后,项集与其超集之间不存在直接的单调性或反单调性,所以只能通过不断缩小搜索空间来剪枝。 (TWDC property) 这个策略基于以下的定义可以实现,对!又是定义!
Definition 8. 有价值的交易效用值(Transaction-weighted utilization):
Definition 9. TWU值高的项 (High TWU itemset):
如果项
满足
,则
是TWU值高的项。
Property 1 (TWDC property): ,如果项 不是高TWU值得项,那么 对应的所有超集的效用值都低。
这个挺好理解的,原文给出了数学证明,有兴趣可以看,只要思想就是包含超集的项一定包含 ,所以超集的TWU肯定不大于 的TWU,而超集EU值又不大于TWU值,所以超级的EU肯定也小于阈值。
Definition 10. Top-k高效用项集(Top-k high utility itemset):
项
是Top-k高效用项集,当且仅当存在少于K个项集的效用值大于
在过程
中。
Property 2:设 中的完整 集合为 , 可能包含项集小于k个,当 ,也有可能大于k个项集,因为可能有些项集具有同样的效用值。
Definition 11. 优化的最小效用阈值(Optimal minimum utility threshold):
参数
成为优化的最小效用阈值,当且仅当不存在阈值
使得
;或者也可以认为
。也就是当前KH中
最小的效用值。
Problem Statement:
给定一个交易数据库
和想要挖掘出
的数目
,等价于发现那些在
中拥有效用值大于
的项集集合。
相关工作
高效用项集挖掘
创建的有两类,一类是two-phase:包括两个步骤,第一步获取候选项集,第二步计算实际高效用项集。常见算法有
(这个目前最优,并且在第一阶段有四个优化策略,DGU、DGN、DLU、DLN,本篇TKU的基础);另一类是one-phase:不生成候选项集,直接生成最终高效用序列。常见的算法有
(用了
结构本篇TKO的基础)。
Top-k项集挖掘
这个就是传统的了,但是都没有考虑效用值。
Top-k高效用项集挖掘
最先提出这个概念的是Chan,但是没有考虑定量的项,和这篇论文的概念有些不一样;Zihayat提出T-HUDS用于挖掘流数据的top-k HUIs;还有一些人的工作,对理解本篇论文没什么用,就不介绍了。