在数据挖掘中,Apriori算法是一种应用十分广泛的关联规则挖掘算法。Apriori算法又分为单最小支持度算法和多最小支持度算法,实际上可以把单最小支持度算法看作是多最小支持度算法的一个特例。在实际应用中多最小支持度算法的使用频率相对较高。在不少介绍数据挖掘的书中都给出了MS-Apriori算法的比较详细的伪代码,在该算法中我们仅仅记录了每个频繁项目集的支持度计数,然而在用于生成关联规则的过程中,仅仅依靠频繁项目集的支持计数还不够。这就产生所谓的头项目问题。先给出一个简单的例子来引出这个问题:
eg:MIS(面包)=2%,MIS(衣服)=0.2%,MIS(鞋子)=0.1%。项目集{衣服,面包}真实支持度为0.15%,{衣服,鞋子,面包}真实支持度为0.12%。依据MS-Apriori算法可知{衣服,面包}不是频繁项目集,{衣服,鞋子,面包}是一个频繁项目集,所以前者的支持计数没有保存,后者的支持计数得以保存。
{衣服、面包-->鞋子}这条规则的置信度我们没法计算,同理{衣服-->鞋子、面包}、{面包-->衣服、鞋子}也可能无法计算,因为{衣服}、{面包}可能不是频繁项目集。
我们给出头项目问题(Head-Item Problem)的