原文链接:关联分析(1):概念及应用
微信公众号:机器学习养成记 搜索添加微信公众号:chenchenwings
关联分析(Association Analysis)是一种常用的挖掘算法,用来挖掘数据之间的内在关联。逻辑简单,但是功能强大,可以在诸多领域进行使用。本篇为关联分析系列的第一篇,主要介绍关联分析的应用场景,和了解关联分析必须知道的基本概念及思路。
应用场景
关联分析应用在项不多的情况下,从整体数据中挖掘潜在关联。具体应用场景可分为如下几个:
产品推荐与引导。关联分析做推荐时,主要用于个性化不强的场景。比如根据购买记录,通过关联分析发现群体购买习惯的内在共性,指导超市产品摆放。对于偏个性化场景,比如给目标用户推荐产品,可以先找出购买习惯与目标用户相似的人群,对此特定人群的购买记录进行关联分析,然后将分析出的规则与目标用户的购买记录结合,进行推荐。
发掘潜在客户,精准营销。当通过关联分析,发现许多购买A的用户还会购买B,即有规则A—>B,可通过有购买B产品行为的用户,找到A产品的潜在意向用户,进行精准营销。
特征筛选。在特征工程中,需要对特征进行筛选。对特征筛选包括:保留与目标变量关联大的特征,删除高度相关的特征。在一般使用的相关性系数方法中,只能判断两个变量间的相关性,而通过关联分析得到的规则,可以判断多个变量之间的关系。比如针对规则{x1,x2}—>{x3},则可能存在x3不能与{x1,x2}同时放入模型中的可能性;针对规则{x4,x5}—>{y1},则可能x4,x5同时放入模型时,会有较好的结果。
基本概念
关联分析中,涉及到一些基本概念。假设有如下数据,则每行表示一个事务,每列表示一个项,包含k个项的集合称为k项集。
关联规则。关联规则是形如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要求,因此不必再计算他们的置信度。
推荐文章
扫描二维码,关注我们。
如需转载,请在开篇显著位置注明作者和出处,并在文末放置机器学习养成记二维码和添加原文链接。
快来关注我们吧!
网友评论