数据挖掘系列(3)--关联规则评价

电影数据集分析 import numpy as np import pandas as pd import matplotlib.pyplot as plt import re import nltk import json import matplotlib.image as mpimg plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axe... 阅读详情

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

一个误导我们的强规则

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

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

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

      可是我们想想,一个喜欢的玩游戏的人会有时间看影片么,这个规则是不是有问题,事实上这条规则误导了我们。在整个数据集中买影片光碟的概率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)。

卡方系数clip_image002[4]

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

clip_image002[8]

公式中的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准则和不平衡因子结合的方法。

参考文献

  [1]:HanJiaWei. Data Mining: concept and  techniques.

数据挖掘 期末超重点习题含答案(必考) 数据挖掘 期末超重点习题(不挂科) 一、 单选题 1. 某超市研究销售纪录数据后发现,买啤酒的人很大概率也会购买尿布,这种属于数据挖掘的哪类问题?(A) A. 关联规则发现 B. 聚类 C. 分类 D. 自然语言处理 2. 以下两种描述分别对应哪两种对分类算法的评价标准? (A) (a)警察抓小偷,描述警察抓的人中有多少个是小偷的标准。 (b)描述有多少比例的小偷给警察抓了的标准。 A. Precision, Recall ... 阅读详情

相关推荐

数据挖掘期末复习【Final】

​技术层面:数据挖掘就是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,提取隐含在其中、人们事先不知道的、但又==潜在有用的信息==的过程。​商业层面:数据挖掘是一种新的商业信息处理技术,其主要特点是对商业业务数热进行抽取、转换、分析和其他模型化处理,从中提取==辅助商业决策==的关键性数据。分类是数据挖掘中的一种主要分析手段分类的任务是对数据集进行学习,并构造一个拥有预测功能的分类模型,用于预测未知样本根据电子邮件的标题和内容检查出垃圾邮件根据核磁共振的结果区分肿瘤是恶性还是良性的。

ddhao09的博客 3631

基于Apriori算法电影推荐----数据挖掘、智能推荐,分析用户的电影喜好,关联规则

基于Apriori算法电影推荐----数据挖掘、智能推荐 本文是基于Apriori算法分析100721条用户的观影记录,并分析用户的观看喜好,以求精准达到推荐。 1、数据导入 import pandas as pd data = pd.read_excel('电影推荐系统.xlsx') data 2、使用pivot_table(数据透视表)函数进行数据透视分析。行索引是用户。列索引是电影名称。 user_movie = data.pivot_table(index = '用户编号', columns

weixin_39559994的博客 7373

【数据挖掘】期末复习(样卷题目+少量知识点)

数挖知识点

qq_51669241的博客 2万+

数据挖掘系列3:关联规则评价

前面我们讨论的关联规则都是用支持度和自信度来评价的,如果一个规则的自信度高,我们就说它是一条强规则,但是自信度和支持度有时候并不能度量规则的实际意义和业务关注的兴趣点。 一个误导我们的强规则 看这样一个例子,我们分析一个购物篮数据中购买游戏光碟和购买影片光碟之间的关联关系。交易数据集共有10,000条记录,其中购买6000条包含游戏光碟,7500条包含影片光碟,4000条既包含游戏光...

weixin_34130389的博客 135

R语言关联规则及其可视化(Foodmart数据)

R语言关联规则-Foodmart数据数据集描述初步探索关联规则挖掘关联规则可视化商品品类的关联规则如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式 数据集描述 上周数据挖掘学习了关联规则,今天来实操一下。数据集是Foodmart1997年和19...

brilliant_o的博客 6896

数据分析案例-电影数据分析

目录 电影数据集介绍 加载数据 数据探索和清洗 评分最多的电影 评分最高的电影 评分与年龄的关系 不同年龄段对某部电影的评分 电影数据集介绍 用户信息 #u.user #列名称 'user_id','age','gender','occupation','zip_code' #数据 1|24|M|technician|85711 2|53|F|other|94043 3|23|M|writer|32067 4|24|M|technician|43537 5...

m0_64336780的博客 7061

R语言--数据挖掘3---关联规则分析

文章目录关联规则分析数据介绍基本原理介绍基本概念:Apriori算法有意义的关联规则案例分析总结反思学习其他同学的代码参考代码这其实跟前面排序是等价的查看分析结果inspect函数逐条查看关联规则by="lift"指定按提升值降序排列。----------5 关联分析结果可视化对关联规则的支持度、置信度和提升值进行可视化 关联规则分析 本次报告主要包括以下内容: 数据介绍 基本原理介绍 结合理论进行案例分析 最后总结 附录加上参考和代码 数据介绍 本次报告所使用的案例数据为购物篮数据,存储在shop

小果一粒沙的博客 6244

电影数据集关联规则挖掘

关联规则挖掘在生活中有很多使用场景,不仅是商品的捆绑销售,甚至在挑选演员决策上,你也能通过关联规则挖掘看出来某个导演选择演员的倾向。 如何使用Apriori工具包 Apriori虽然是十大算法之一,不过在sklearn工具包中并没有它,也没有FP-Growth算法。这里教你个方法,来选择Python中可以使用的工具包,你可以通过https://pypi.org/ 搜索工具包。 img 这个网站提供的工具包都是Python语言的,你能找到8个Python语言的Apriori工具包,具体选择哪个呢?建议你使用第二个工具包,即efficient-apriori。后面我会讲到为什么推荐这个工具包。

数据挖掘十大算法之分类算法(分类介绍及评价指标)

数据挖掘十大算法之分类算法(分类介绍及评价指标) 接上篇文章,接下来学习挖掘算法中的分类算法: 首先我们应该知道数据挖掘十大算法中可以简单的进行分类,分为分类算法,聚类算法和关联规则三大类 算法分类 连接分析:PageRank 关联分析:Apriori 分类算法:ID3、C4.5,朴素贝叶斯,SVM,KNN,Adaboost,CART 聚类算法:K-Means,EM 这里研究分类算法中的决策算法——ID3算法,有ID3算法的知识背景后分析C4.5算法就会容易很多 1. 分类相关知识 1.1 分类的概念

fengxiandada的博客 1万+

告别手动调参!PSCAD 4.2的Multiple-Run功能,5分钟搞定交流故障批量仿真

本文详细介绍了PSCAD 4.2的Multiple-Run功能如何高效处理交流故障批量仿真,告别传统手动调参的低效模式。通过五步配置法,工程师可在5分钟内完成数百次参数组合的仿真,显著提升电力系统分析效率。文章还包含工业级应用案例和高级调试技巧,助力实现故障仿真的自动化与智能化。

weixin_42552716的博客 276

硬全桥副边钳位管Vds电压凸台揭秘——寄生参数引发的导通异常

本文深入分析了硬全桥副边钳位管Vds电压凸台现象,揭示了寄生参数如何引发导通异常。通过波形分析和工程实践,详细解析了走线电感的蓄能效应和体二极管的接力作用,并提供了PCB布局优化、元件选型和驱动电路调整等解决方案,帮助工程师有效应对这一常见问题。

weixin_30825581的博客 430

数据挖掘|关联规则Apriori算法详解及其在中医医案中的应用

由于本菜鸡所学专业为中医院校的医学信息工程,所以接触较多的是利用多种算法处理中医医案数据。本文简单介绍传统数据挖掘关联规则算法中的Apriori算法,以及在挖掘中医医案辨证规律中的应用。并简单分析传统算法缺点,提出简要的改进思路。 文章目录一、关联规则简介二、Apriori算法简介三、Apriori步骤Step1 找频繁项集Step2 找关联规则四、算法缺点五、中医药数据挖掘的改进方法 一、关联规...

qq_42752651的博客 4653

KUKA机器人与S7-1200 PLC实现Profinet通讯配置步骤详解

在工业自动化产线中,PLC与工业机器人之间的高效数据交换是控制逻辑落地的关键。传统硬接线方案在信号点多时布线复杂、故障排查困难,而现场总线技术通过一根网线即可实现主从设备间的周期通讯。Profinet作为主流工业以太网协议,由S7-1200作为IO Controller主站,KUKA机器人作为IO Device从站,在WorkVisual与TIA Portal中完成设备组态、I/O映射及信号分配,即可替代成捆电缆,稳定传输启停、状态及报警信号。这一方案适用于汽车、3C、物流等行业的自动化产线,尤其适合需要扩

weixin_42519985的博客 251

数据挖掘——关联规则算法之Apriori

数据挖掘——关联规则一、关联规则的基本概念二、强关联规则三、关联规则挖掘算法 一、关联规则的基本概念 设I=i1,i2,...,imI={i_{1},i_{2},...,i_{m}}I=i1​,i2​,...,im​为所有项目的集合,D为事务数据库,事务T是一个项目子集(T⊑IT\sqsubseteq IT⊑I)。每一个事务具有唯一的事务标识TID。设A是一个由项目构成的集合,称为项集。事务T包含...

macan的博客 2023

Android15 修改触摸点上限为40

把MAX_POINTER_ID从默认的31修改为39,这里为什么要从31修改为39,是因为上面说明用BitSet32极限就只能支持32个点,因为从最小的ID是0,所以要支持40个点ID也要对应改为39.最近有个需求,需要修改Android系统的触摸点数,Android系统默认的点数是16个点,因为现在是大屏项目,有客户需要修改为40个点,好吧,客户最大。6.最后进行编译,开机开启触摸点检测,可以使用开发者模式中的显示触摸点功能,再叫上3个人,用双掌触摸屏幕,发现左上角有显示40个触摸点,修改成功。

tzj1058756809的博客 573

DSPy 入门: 再见提示,你好编程

DSPy("Declarative Self-improving Language Programs (in Python)",发音为 "dee-es-pie")[1] 是斯坦福大学 NLP 研究人员开发的 "基础模型编程 "框架。它强调编程而非提示,并将构建基于 LM 的管道从操作提示转向编程。因此,它旨在解决构建基于 LM 应用程序时的脆弱性问题。DSPy 还将程序的信息流与每一步的参数(提示和 LM 权重)分离开来,为构建基于 LM 的应用程序提供了更系统的方法。

具身机器人和通用AI 3486

关联规则算法总结

关联规则算法总结 文章目录一、Apriori、FP Growth算法原理:1.1 Apriori算法原理1.2 FP Growth(Frequent Pattern Growth)算法原理二、Apriori、FP Growth算法的实现三、实际应用 一、Apriori、FP Growth算法原理: 频繁项集的评估标准有: 1.1 Apriori算法原理 频繁项集: 是支持值大于阈值(support)的项集。 关联分析的目的: 发现频繁项集:发现满足最小支持度的所有项集; 发现关联规则:从频繁项集中提

seven的博客 6293

基于FPGA的FIR数字滤波器设计

clear;close all fc=1/4;fs=5/16; %输入给定指标 Rp=3;As=60;Fs=2; f=[fc,fs];m=[1,0]; %计算remezord函数所需参数f,m,dev dev=[(10^(Rp/20)-1)/(10^(Rp/20)+1),10^(-As/20)]; [N,fo,mo,W]=remezord(f,m,dev,Fs); %确定remez函数所需参数 hn=remez(N,fo,mo,W);...

FPGA/MATLAB学习教程/源码/项目合作开发 9454
上一篇: 数据挖掘系列(2)--关联规则FpGrowth算法
下一篇: 数据挖掘系列(4)使用weka做关联规则挖掘
youbo_sun
博客等级 码龄12年 20粉丝 51原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值