关联规则评价标准

前面我们讨论的关联规则都是用支持度和自信度来评价的,如果一个规则的自信度高,我们就说它是一条强规则,但是自信度和支持度有时候并不能度量规则的实际意义和业务关注的兴趣点。

一个误导我们的强规则

看这样一个例子,我们分析一个购物篮数据中购买游戏光碟和购买影片光碟之间的关联关系。交易数据集共有10,000条记录,其中购买6000条包含游戏光碟,7500条包含影片光碟,4000条既包含游戏光碟又包含影片光碟。数据集如下表所示:

  买游戏 不买游戏 行总计
买影片 4000 3500 7500
不买影片 2000 500 2500
列总计 6000 4000 10000

假设我们设置得最小支持度为30%,最小自信度为60%。从上面的表中,可以得到:support(买游戏光碟—>买影片光碟)=4000/10000=40%,confidence(买游戏光碟—>买影片光碟)=4000/6000*100%=66%。这条规则的支持度和自信度都满足要求,因此我们很兴奋,我们找到了一条强规则,于是我们建议超市把影片光碟和游戏光碟放在一起,可以提高销量。

可是我们想想,一个喜欢的玩游戏的人会有时间看影片么,这个规则是不是有问题,事实上这条规则误导了我们。在整个数据集中买影片光碟的概率p(买影片)=7500/10000=75%,而买游戏的人也买影片的概率只有66%,66%<75%恰恰说明了买游戏光碟抑制了影片光碟的购买,也就是说买了游戏光碟的人更倾向于不买影片光碟,这才是符合现实的。

从上面的例子我们看到,支持度和自信度并不能过成功滤掉那些我们不感兴趣的规则,因此我们需要一些新的评价标准,下面介绍六中评价标准:相关性系数,卡方指数,全自信度、最大自信度、Kulc、cosine距离。

相关性系数lift

从上面游戏和影片的例子中,我们可以看到游戏和影片不是正相关的,因此用相关性度量关联规则可以过滤这样的规则,对于规则A—>B或者B—>A,lift(A,B)=P(A交B)/(P(A)*P(B)),如果lift(A,B)>1表示A、B呈正相关,lift(A,B)<1表示A、B呈负相关,lift(A,B)=1表示A、B不相关(独立)。实际运用中,正相关和负相关都是我们需要关注的,而独立往往是我们不需要的,两个商品都没有相互影响也就是不是强规则,lift(A,B)等于1的情形也很少,一般只要接近于1我们就认为是独立了。

注意相关系数只能确定相关性,相关不是因果,所以A—>B或者B—>A两个规则的相关系数是一样的,另外lift(A,B)=P(A交B)/(P(A)*P(B))=P(A)*P(B|A)/(P(A)*P(B))=P(B|A)/P(B)=confidence(A—>B)/support(B)=confidence(B—>A)/support(A)。

卡方系数

卡方分布是数理统计中的一个重要分布,利用卡方系数我们可以确定两个变量是否相关。卡方系数的定义:

公式中的observed表示数据的实际值,expected表示期望值,不理解没关系,我们看一个例子就明白了。

  买游戏 不买游戏 行总计
买影片 4000(4500) 3500(3000) 7500
不买影片 2000(1500) 500(1000) 2500
列总计 6000 4000 10000

上面表格的括号中表示的是期望值,(买影片,买游戏)的期望值E=6000*(7500/10000)=4500,总体记录中有75%的人买影片,而买游戏的有6000人,于是我们期望这6000人中有75%(即4500)的人买影片。其他三个值可以类似计算得到。现在我们计算一下,买游戏与买影片的卡方系数:

卡方系数X=(4000-4500)^2/4500+(3500-3000)^2/3000+(2000-1500)^2/1500+(500-1000)^2/1000=555.6。

卡方系数需要查表才能确定值的意义,基于置信水平和自由度(r-1)*(c-1)=(行数-1)*(列数-1)=1,查表得到自信度为(1-0.001)的值为6.63,555.6大于6.63,因此拒绝A、B独立的假设,即认为A、B是相关的,而expected(买影片,买游戏)=4500>4000,因此认为A、B呈负相关。这里需要一定的概率统计知识。如果觉得不好理解,可以用其他的评价标准。

全自信度

全自信度all_confidence的定义如下:all_confidence(A,B)=P(A交B)/max{P(A),P(B)}

=min{P(B|A),P(A|B)}

=min{confidence(A—>B),confidence(B—>A)}

对于前面的例子,all_confidence(买游戏,买影片)=min{confidence(买游戏—>买影片),confidence(买影片—>买游戏)}=min{66%,53.3%}=53.3%。可以看出全自信度不失为一个好的衡量标准。

最大自信度

最大自信度则与全自信度相反,求的不是最小的支持度而是最大的支持度,max_confidence(A,B)=max{confidence(A—>B),confidence(B—>A)},不过感觉最大自信度不太实用。

Kulc

Kulc系数就是对两个自信度做一个平均处理:kulc(A,B)=(confidence(A—>B)+confidence(B—>A))/2。,kulc系数是一个很好的度量标准,稍后的对比我们会看到。

cosine(A,B)

cosine(A,B)=P(A交B)/sqrt(P(A)*P(B))=sqrt(P(A|B)*P(B|A))=sqrt(confidence(A—>B)*confidence(B—>A))

七个评价准则的比较

这里有这么多的评价标准,究竟哪些好,哪些能够准确反应事实,我们来看一组对比。

  milk milk 行总计
coffee MC MC C
coffee MC MC C
列总计 M M total

上表中,M表示购买了牛奶、C表示购买了咖啡,M表示不购买牛奶,C表示不购买咖啡,下面来看6个不同的数据集,各个度量标准的值


数据
MC MC MC MC total C->M自信度 M->C自信度 卡方 lift all_conf max_conf Kulc cosine
D1 10000 1000 1000 100000 112000 0.91 0.91 90557 9.26 0.91 0.91 0.91 0.91
D2 10000 1000 1000 100 12100 0.91 0.91 0 1.00 0.91 0.91 0.91 0.91
D3 100 1000 1000 100000 102100 0.09 0.09 670 8.44 0.09 0.09 0.09 0.09
D4 1000 1000 1000 100000 103000 0.50 0.50 24740 25.75 0.50 0.50 0.50 0.50
D5 1000 100 10000 100000 111100 0.91 0.09 8173 9.18 0.09 0.91 0.50 0.29
D6 1000 10 100000 100000 201010 0.99 0.01 965 1.97 0.01 0.99 0.50 0.10

  我们先来看前面四个数据集D1-D4,从后面四列可以看出,D1,D2中milk与coffee是正相关的,而D3是负相关,D4中是不相关的,大家可能觉得,D2的lift约等于1应该是不相关的,事实上对比D1你会发现,lift受MC的影响很大,而实际上我们买牛奶和咖啡的相关性不应该取决于不买牛奶和咖啡的交易记录,这正是lift和卡方的劣势,容易受到数据记录大小的影响。而全自信度、最大自信度、Kulc、cosine与MC无关,它们不受数据记录大小影响。卡方和lift还把D3判别为正相关,而实际上他们应该是负相关,M=100+1000=1100,如果这1100中有超过550的购买coffee那么就认为是正相关,而我们看到MC=100<550,可以认为是负相关的。

  上面我们分析了全自信度、最大自信度、Kulc、cosine与空值无关,但这几个中哪一个更好呢?我们看后面四个数据集D4-D6,all_conf与cosine得出相同的结果,即D4中milk与coffee是独立的,D5、D6是负相关的,D5中support(C-->M)=0.91而support(M-->C)=0.09,这样的关系,简单的认为是负相关或者正相关都不妥,Kulc做平均处理倒很好,平滑后认为它们是无关的,我们再引入一个不平衡因子IR(imbalance ratio):

  IR(A,B)=|sup(a)-sup(B)|/(sup(A)-sup(B)-sup(A交B))(注:应为(sup(A)+sup(B)-sup(A交B))

D4总IR(C,M)=0,非常平衡,D5中IR(C,M)=0.89,不平衡,而D6中IR(C,M)=0.99极度不平衡,我们应该看到Kulc值虽然相同但是平衡度不一样,在实际中应该意识到不平衡的可能,根据业务作出判断,因此这里我们认为Kulc结合不平衡因子的是较好的评价方法。

  另外weka中还使用 Conviction和Leverage。Conviction(A,B) = P(A)P(B)/P(AB), Leverage(A,B) = P(A交B)-P(A)P(B),Leverage是不受空值影响,而Conviction是受空值影响的。

总结

  本文介绍了9个关联规则评价的准则,其中全自信度、最大自信度、Kulc、cosine,Leverage是不受空值影响的,这在处理大数据集是优势更加明显,因为大数据中想MC这样的空记录更多,根据分析我们推荐使用kulc准则和不平衡因子结合的方法。

参考链接:http://www.cnblogs.com/fengfenggirl/p/associate_measure.html

原文地址:https://www.cnblogs.com/itbuyixiaogong/p/9077445.html

时间: 2024-10-09 19:51:41

关联规则评价标准的相关文章

企业制度评价标准

建立企业制度的评价标准,必须先搞清楚企业规章制度的主要内容.企业规章制度的主要内容一般包含以下几点: 1.制订本制度的目的 2.本制度的主管部门及责任人 3.本制度的约束对象 4.本制度的行为规范 5.遵守制度的权益与违规责任 6.监管人员的责任 7.本制度的修改说明 8.本制度的生效或废止 清楚了规章制度的主要内容,确定评价标准就容易了. 这里的企业制度,是指单一制度,如安全管理制度.考勤管理制度.薪酬管理制度等,不是对企业制度体系的评价.单一制度的合格标准共九项. 1.编号有序. 为了确保企

关于视觉跟踪中评价标准的相关记录(The Evaluation of Visual Tracking Results on OTB-100 Dataset)

关于视觉跟踪中评价标准的相关记录(The Evaluation of Visual Tracking Results on OTB-100 Dataset) 2018-01-22  21:49:17 Benchmark website:http://cvlab.hanyang.ac.kr/tracker_benchmark/benchmark_v10.html 1. 修改 benchmark 的路径,改为你自己的数据集的路径: 2. 也可以修改 tracker 的设置,仅仅显示自己想要输出的那些

分类算法评价标准

一.引言 分类算法有很多,不同分类算法又用很多不同的变种.不同的分类算法有不同的特定,在不同的数据集上表现的效果也不同,我们需要根据特定的任务进行算法的选择,如何选择分类,如何评价一个分类算法的好坏,前面关于决策树的介绍,我们主要用的正确率(accuracy)来评价分类算法. 正确率确实是一个很好很直观的评价指标,但是有时候正确率高并不能代表一个算法就好.比如某个地区某天地震的预测,假设我们有一堆的特征作为地震分类的属性,类别只有两个:0:不发生地震.1:发生地震.一个不加思考的分类器,对每一个

软件质量的评价标准

定义: 软件质量就是“软件与明确的和隐含的定义的需求相一致的程度”.具体地说,软件质量是软件符合明确叙述的功能和性能需求.文档中明确描述的开发标准.以及所有专业开发的软件都应具有的隐含特征相一致的程度. 影响软件质量的主要因素,这些因素是从管理角度对软件质量的度量.可划分为三组,分别反应用户在使用软件产品时的三种观点.正确性.健壮性.效率.完整性.可用性.风险(产品运行):可理解性.可维修性.灵活性.可测试性(产品修改):可移植性.可再用性.互运行性(产品转移). 1.性能(Performanc

目标检测评价标准

评价训练效果的值——精准度(precision).召回率(recall).准确率(accuracy).交除并(IoU) TP是正样本预测为正样本 FP是负样本预测为正样本 FN是本为正,错误的认为是负样本 TN是本为负,正确的认为是负样本 precision就是在识别出来的图片中(预测为正样本的图片是识别出的图片),TP所占的比值: precision=TP/(TP+FP) recall就是被正确识别出来的正样本个数与测试集中所有正样本的个数的比值: recall=TP/(TP+FN) accu

目标检测的评价标准mAP, Precision, Recall, Accuracy

目录 metrics 评价方法 TP , FP , TN , FN 概念 计算流程 Accuracy , Precision ,Recall Average Precision PR曲线 AP计算 Average Precision mAP 参考资料 metrics 评价方法 注意,在多分类问题中,评价方法是逐个类计算的,不是所有类一起算,是只针对一个类算,每个类别有自己的指标值! TP , FP , TN , FN 概念 TP = 预测为positive 且ground-truth和预测一致

评价标准对模型选择的影响

原文地址:https://www.cnblogs.com/shadow1/p/10602701.html

编程语言评价标准

编程语言需要提供足够简单和丰富的概念来表达我们要描述的世界: 并且执行的效率要足够高 Enough of the small talk, how do we go about comparing these two goliaths? In reality this can’t be a true comparison, as Angular is a framework and React a library; but we will be looking at some of the imp

关联规则FpGrowth算法

Aprori算法利用频繁集的两个特性,过滤了很多无关的集合,效率提高不少,但是我们发现Apriori算法是一个候选消除算法,每一次消除都需要扫描一次所有数据记录,造成整个算法在面临大数据集时显得无能为力.今天我们介绍一个新的算法挖掘频繁项集,效率比Aprori算法高很多. FpGrowth算法通过构造一个树结构来压缩数据记录,使得挖掘频繁项集只需要扫描两次数据记录,而且该算法不需要生成候选集合,所以效率会比较高.我们还是以上一篇中用的数据集为例: TID Items T1 {牛奶,面包} T2