应用场景


关联分析应用在不多的情况下,从整体数据中挖掘潜在关联。具体应用场景可分为如下几个:

  1. 产品推荐与引导。关联分析做推荐时,主要用于个性化不强的场景。比如根据购买记录,通过关联分析发现群体购买习惯的内在共性,指导超市产品摆放。对于偏个性化场景,比如给目标用户推荐产品,可以先找出购买习惯与目标用户相似的人群,对此特定人群的购买记录进行关联分析,然后将分析出的规则与目标用户的购买记录结合,进行推荐。

  2. 发掘潜在客户,精准营销。当通过关联分析,发现许多购买A的用户还会购买B,即有规则A—>B,可通过有购买B产品行为的用户,找到A产品的潜在意向用户,进行精准营销。

  3. 特征筛选。在特征工程中,需要对特征进行筛选。对特征筛选包括:保留与目标变量关联大的特征,删除高度相关的特征。在一般使用的相关性系数方法中,只能判断两个变量间的相关性,而通过关联分析得到的规则,可以判断多个变量之间的关系。比如针对规则{x1,x2}—>{x3},则可能存在x3不能与{x1,x2}同时放入模型中的可能性;针对规则{x4,x5}—>{y1},则可能x4,x5同时放入模型时,会有较好的结果。

      基本概念


关联分析中,涉及到一些基本概念。假设有如下数据,则每行表示一个事务,每列表示一个,包含k个项的集合称为k项集

关联分析(1):概念及应用_java

关联规则。关联规则是形如X->Y的表达式,如:{crime = y, immigration = no} -> {Democrat}。X称为前件,Y称为后件,X和Y不包含相同的项。

支持度(support)。支持度指X,Y中的项,同时出现的事务数占总事务数的比例。由于同时出现{crime = y, immigration = no}和{Democrat}的事务数为1,总事务数为4,所以规则的支持度为1/4=0.25。

置信度(confidence)。置信度指Y在包含X的事务中,出现占比。{crime = y, immigration = no}出现的事务数为2,因此规则的置信度为1/2=0.5。

支持度用来删除无意义的规则,置信度越高,表示Y在包含X的事务中出现的可能性越大。关联规则表示X,Y较容易同时出现,但是不代表有必然的因果关系。

关联规则挖掘。给定支持度阈值minsup,和置信度阈值minconf,关联规则挖掘指找到支持度>minsup,置信度>minconf的规则。

      规则产生思路


规则产生的原始方法是计算每个可能规则的支持度和置信度。但是当项数增多时,可能的规则总数会以指数增长,带来巨大开销,且因阈值的限制,会导致很多开销是无用的,因此需要对规则产生思路进行优化。

通常采用的策略为拆分支持度和置信度要求。先找到满足支持度>minsup的所有项集,即频繁项集,再从频繁项集中找到满足置信度>minconf的规则。进行这样的任务分解,可以满足规则发现的原因在于,对于规则:

{crime = y, immigration = no} -> {Democrat}

{Democrat} -> {crime = y, immigration = no} 

{Democrat, immigration = no} -> {crime = y}

{crime = y} -> {Democrat, immigration = no}

{Democrat, crime = y} -> {immigration = no}

{immigration = no} -> {Democrat, crime = y}

他们的支持度仅依赖于项集{Democrat, crime = y, immigration = n},如果此项集是非频繁的,则由此项集可以产生的上述6条规则,都将不满足minsup要求,因此不必再计算他们的置信度。