关联分析从算法到实战的过程,关联算法原理有哪些,关联分析的基本原理及算法思路

  关联分析从算法到实战的过程,关联算法原理有哪些,关联分析的基本原理及算法思路

  基本概念学习一些基本概念。购物篮事务:以下数据的示例通常被称为购物篮交易。一行对应一个交易,它包含一个惟一的标识符和给定客户购买的一组商品;二元表示:该项目由一个二进制变量表示。如果项目出现在事务中,则值为1;否则为0;I:购物篮交易中所有商品的集合;T:所有事务的集合,每个事务ti包含的项集合是I的子集;项集:0个或多个项目的集合。如果一个项集包含k个项,则称为k-项集;支持度计数:包含特定项目集的事务数;关联规则:X-Y形式的蕴涵表达式,其中X和Y是不相交的项集。关联规则的强度可以用支持度和置信度来衡量。支持度:支持确定规则可用于给定数据集的频率

  S(XY)=(XY)/N置信度:置信度决定了Y在包含X的交易中出现的频率。

  c(XY)=(XY)/(X)

  为什么要用支持和信心?

  支持度是一个重要的衡量标准,支持度低的规则可能只是偶尔出现。从商业的角度来看,支持度低的规则大多没有意义,对客户很少购买的产品进行推广也未必有利。所以通常用支持来删除那些无意义的规则。另一方面,置信度在通过规则进行推理时是可靠的。对于给定的规则X-Y,置信度越高,Y包含在X的事务中的可能性就越大,当然,关联规则做出的推断并不一定隐含因果关系,只是表明规则的前件和后件中的项同时明显出现。因果关系需要了解数据中原因和结果的属性,并且通常涉及长期存在的联系。

  关联规则发现:给定事务集t,关联规则发现是指找到所有支持度大于等于minsup,置信度大于等于minconf的规则,其中minsup和minconf是对应的支持度和置信度阈值。频繁项集:满足最小支持度阈值的所有项集规则:从上一步找到的频繁项集中提取所有可信度高的规则。

  apriori算法:先验原理:如果一个项集是频繁的,那么它的所有子集一定是频繁的。相反,如果项集是不频繁的,那么它的所有超集也一定是不频繁的。

  Apriori的频繁项集有两个特点:一是逐层算法,从频繁1-项集到最长频繁项集,一次遍历一层项集格;其次,使用生产测试策略来发现频繁项集。每次迭代后,从上一次迭代中找到的频繁项集生成一个新的候选项集,然后统计每个候选项的支持度,并与最小支持度阈值进行比较。影响apriori计算复杂度的因素:支持度阈值、项目数、事务数和事务平均宽度。

  apriori时间复杂度的影响因素:频繁1-项集的生成,候选项的生成,支持数关联模式的评估

  答:基于统计数据。涉及独立项目或涵盖少量交易的模式被认为是不感兴趣的,可能反映了数据中的错误联系。这些模式可以通过客观的兴趣来衡量,比如支持、信心和相关性。

  b:基于主观的论点。也就是说,模式在主观上被认为是乏味的,除非它们能够揭示意想不到的信息,或者提供导致有益行动的有用信息。一些兴趣度的客观度量:提升度(lift):规则的置信度与规则后面部分的项集支持度之间的比率。

  因为置信度度量值忽略了规则后续部分中出现的项集的支持度,所以具有高置信度的规则可能会产生误导。这时,仰角就派上用场了。当使用lift1时,规则后继者的支持大于规则的置信度。兴趣因子(interest factor): By如果A,B相互独立,那么P(A,B)=P(A)*P(B),那么I(A,B)度量可以解释为,当=1时,A和B是独立的;1正相关;1负相关。相关分析:对于连续变量,用皮尔逊相关系数定义相关性;对于如下二元变量,相关度范围为-1(完全负相关)到1(完全正相关),为0时,两个变量完全独立。限制与事务中项目的同时发生和同事的缺席一样重要。更适合分析对称的二元变量。IS度量:处理非对称二进制变量。余弦(A,B),等价于二进制变量的余弦测度。局限性在于,当两者独立时,即使不相关或负相关,测量值也可能非常大。更多的概念:

  处理属性:二元化后考虑,1。将相关属性值分组以形成几个类别;2.避免生成包含来自同一属性的项目的候选集。

  处理连续属性:离散化。

  概念分层:特定领域中各种实体或概念的多层次组织。可以用有向非交换图来表示。它的优点是层次结构中较低级别的项目可能没有足够的支持,因此它们不会出现在任何频繁项目集中。在概念层次结构的较低层次发现的规则太特殊,可能没有较高层次的规则有趣。

  序列模式:给定序列数据集D和用户指定的最小支持度阈值minsup,在序列模式中发现任务时,将找到所有支持度大于或等于minsup的序列。时间限制约束可以是maxspan、mingap、maxgap和窗口大小约束ws。

  PYTHONapriori - 频繁项集的产生中算法的实现

  Apriori(df,min_support=0.5,use_colnames=False,max_len=None,n_jobs=1)其中df的允许值为0/1或True/False。假设交易数据如下:

  dataset=[牛奶,洋葱,肉豆蔻,芸豆,鸡蛋,酸奶],[莳萝,洋葱,肉豆蔻,芸豆,鸡蛋,酸奶],[牛奶,苹果,肾豆,鸡蛋],[牛奶,独角兽,转角,肾豆,酸奶],[转角,洋葱,洋葱,肾豆,[

  将熊猫作为pdfrom mlxtend .预处理导入TransactionEncoderte=TransactionEncoder()te _ ary=te . fit(dataset)。变换(数据集)df=pd。DataFrame(te_ary,columns=te.columns_)df

  返回minsup设置为0.6的数据集:

  从mlxtend.frequent _ patterns导入aprioriapriori(df,min_support=0.6)

  为了增加可读性,可以设置use_colnames=True,并设置卫生项目名称的整数值:

  apriori(df,min_support=0.6,use_colnames=True)

  同时,我们还可以对结果进行选择和筛选。例如,我们只对长度为2的项目集感兴趣,并且这些项目集的最小和至少为0.8:

  frequent_itemsets=apriori(df,min_support=0.6,use _ colnames=True)frequent _ items ets[ length ]=frequent _ items ets[ items ets ]。应用(lambda x:len(x))frequent _ items集

  筛选如下:

  frequent _ items集[(frequent _ items集[ length ]==2)(frequent _ items集[support]=0.8) ]

  您也可以根据项目集进行选择:

  frequent _ items ets[frequent _ items ets[ items ets ]=={ Onion , Eggs} ]

  值得注意的是,itemsets是一个frozenset,项的顺序无关紧要。您还可以找到{ 鸡蛋,洋葱 }

  association_rules - 关联规则的生成

  Association_rules(df,metric=confidence ,min_threshold=0.8,support_only=False)从频繁项目集生成关联规则:

  从mlx tend。正在预处理来自mlx tend的导入TransactionEncoderfrom。frequency _ patterns导入先验数据集=[ Milk ,洋葱,肉豆蔻,酸奶],[莳萝,洋葱,肉豆蔻,芸豆,鸡蛋],[牛奶,苹果,芸豆,鸡蛋],[牛奶,独角兽,玉米,芸豆,酸奶],[玉米,洋葱,洋葱,芸豆,冰淇淋,鸡蛋]]te=事务编码器()te _ ary=te。拟合(数据集).变换(数据集)df=pd .DataFrame(te_ary,columns=te。columns _)frequent _ items ets=apriori(df,min_support=0.6,use _ colnames=True)来自mlx tend的frequent _ items。频繁模式导入association _ rules association _ rules(frequent _ items ets,metric=confidence ,min_threshold=0.7)

  调整规则的生成标准,如选取lift1.2的:

  rules=association _ rules(frequent _ items ets,metric=lift ,min_threshold=1.2)规则

  如选取规则前件为2,conf0.75,lift1.2:

  rules[ antecedent _ len ]=rules[ antecedents ].应用(x:len(x))规则

  规则[(规则[antecedent_len]=2)(规则[置信度] 0.75)(规则[lift] 1.2) ]

  如选择特性的规则前件:

  规则[规则[先行项]=={ 彩蛋,芸豆 }]

  同样由于是冻结集合类型,查询与项目顺序无关。

  对于规则各个度量指标的解读:以规则A-B为例:

  先行支持:A的支持度计数

  后续支持:B的支持度计数

  杠杆作用:

  信念:

  支架,升举和信心在本文已开始即有描述。

  参考链接:

  拉斯布街http://号。github。io/mlx tend/用户指南/频率模式/先验/

  拉斯布街http://号。github。io/mlx tend/用户指南/频率模式/关联规则/

  本文中提到的其它度量指标需另行实现。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: