赞
踩
关联规则学习是一种基于规则的机器学习方法,用于发现大型数据库中变量之间的有趣关系。它旨在使用一些有趣的度量来识别在数据库中发现的强规则。这种基于规则的方法在分析更多数据时也会生成新规则。假设数据集足够大,最终目标是帮助机器模拟人类大脑的特征提取和新未分类数据的抽象关联能力。
基于强有力规则的概念,Rakesh Agrawal,TomaszImieliński和Arun Swami介绍了关联规则,用于发现超市中销售点(POS)系统记录的大规模交易数据中产品之间的规律性。例如,在超市的销售数据中发现,如果顾客一起购买洋葱和土豆,他们也可能会购买汉堡肉。这些信息可以用作关于营销活动的决策的基础,例如促销定价或产品放置。
除了市场购物篮分析的上述示例之外,目前在许多应用领域中使用关联规则,包括Web使用挖掘,入侵检测,连续生产和生物信息学。与序列挖掘相反,关联规则学习通常不考虑事务内或跨事务的项目顺序。
Apriori、FP-Growth、PrefixSpan、SPADE、AprioriAll、Apriori-Some等。
频繁规律与有效规则:
假如,数据集有1000条事务数据用来显示购买苹果和香蕉的订单记录,其中有600个客户的订单记录中包含了苹果,有800个客户的订单记录中包含了香蕉,而有400个客户同时购买了苹果和香蕉。假如我们产生了一条关联规则,用来表示购买了苹果的客户中还有很多人购买香蕉,那么该规则可以表示为:苹果→香蕉。
支持度:support = 400/1000= 40%
置信度:confidence = 400/600=67%
如果只是看支持度和置信度,这个规则似乎非常显著的说明了苹果和香蕉之间的频繁关系,买了苹果的客户中有67%的人也会一起购买香蕉。但是,如果忽略购买苹果的事实,只购买香蕉的客户比例会高达是80%(800/1000)!这显示了购买苹果这种条件不会对购买香蕉产生积极的促进作用,反而会阻碍其销售,苹果和香蕉之间是一种负相关的关系。因此,只看支持度和置信度将无法完整体现规则的有效性,这里我们使用提升度来有效应对该问题。
提升度(Lift)指的是应用关联规则和不应用产生结果的比例。在本示例中,Lift=(400)/(400)=1(有关联规则的前提下只有400个客户会购买香蕉,没有关联规则的前提下会有400个购买香蕉)。当提升度为1时,说明应用关联规则和不应用关联规则产生相同的结果;当提升度大于1时,说明应用关联规则比不应用关联规则能产生更好的结果;当提升度小于1时,关联规则具有负相关的作用,该规则是无效规则。
做关联规则评估时,需要综合考虑支持度、置信度和提升度三个指标,支持度和置信度的值越大越好。
提升度低的负相关关联其实也是一种关联模式,也是可以通过避免的方式利用这种关联:不将互斥商品放在一个组合中,不将互斥广告投放整合投放,不将互斥关键字提供个客户,不将互斥信息流展现给客户。
apriori模块:
# -*- coding: utf-8 -*- from numpy import * import re def createData(fileName): mat = [] req = re.compile(r',') fr = open(fileName) content = fr.readlines() for line in content: tem = line.replace('\n','').split(',') mat.append(tem) return mat def loadDataSet(): return [[1, 3, 4], [2, 3, 5], [1, 2, 3, 5], [2, 5]] # C1 是大小为1的所有候选项集的集合 def createC1(dataSet): C1 = [] for transaction in dataSet: for item in transaction: if not [item] in C1: C1.append([item]) #store all the item unrepeatly C1.sort() #return map(frozenset, C1)#frozen set, user can't change it. return list(map(frozenset, C1))
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。