SAS->关联分析实践
SAS系统被誉为国际上的标准软件系统,本文将详细介绍如何在SAS/EM模块中进行关联规则数据挖掘,使用的软件版本是SAS 9.1.3下的Enterprise Miner 4.3:
从SAS顶端的【解决方案(S)】菜单下调出企业数据挖掘(也可以通过在命令行输入miner):
SAS/EM的初始界面如下:
接下来,将数据挖掘外接程序示例数据集中的Associate表导入SAS逻辑库。先将xlsx文件另存为xls文件,再双击SAS资源管理器中的逻辑库,从【文件(F)】菜单下调出【导入数据】对话框:
点击【Next >】,选择xls文件及相应的工作表:
点击【Next >】,选择相应的SAS逻辑库并命名:
点击【Finish】,完成数据导入操作。回到SAS/EM界面,双击Untitled节点并重命名为Analysis。
鼠标左键按住上方工具栏中的【Input Data Source】节点不放,拖入右边的空白区域之后再放开鼠标,此时SAS/EM界面如下:
双击刚刚拖入的【Input Data Source】节点,选择前面导入的数据集Sasuser.Associate:
切换到【Variables】选项卡,在【Model Role】列【CATEGORY】行处点击右键,选择【Set Model Role】菜单:
分别将【CATEGORY】行设置为target,其他两行设置为rejected:
关闭对话框,询问是否保存变化时,点击【是(Y)】。若关闭SAS后重新打开EM项目时弹出Diagram被锁,则删除emproj文件夹中后缀是.lck的文件即可继续编辑。
鼠标左键按住上方工具栏中的【Association】节点不放,拖入右边的空白区域之后再放开鼠标。将鼠标移向旁边的【SASUSER.ASSOCIATE】节点周围,当变成十字型时,鼠标左键按住不放,拖向【Association】节点,此时SAS/EM界面如下:
双击右边的【Association】节点在SAS中进行数据挖掘之关联规则图标,切换到【General】选项卡的界面如下:
默认的分析模式是【By Context】,它根据输入数据源的结点信息选择合适的分析方法。如果输入数据集包括一个id变量和target变量,该结点自动执行关联分析。下面的选项是设置关联最小支持度、项集最大数目和规则最小置信度。
关闭【Association】对话框,右键【Association】节点图标,在弹出的下拉选项中选择【Run】,得到运行结果如下:
此时在【Rules】选项卡上右键单击,会弹出查看图形菜单:
选择【图形(G)】之后,将窗口拉伸到合适的宽度,有些图例需要拉到更宽才会显示出来,结果界面如下:
前 面结果表中的19条关联规则都体现在这张图里面,此图的信息量比较大。我们以右下方的圆圈为例来解读它的含义:从纵横坐标轴来看,此圆圈对应表中的第11 条关联规则,即{Road Bikes ==> Jerseys};从圆圈标示对应的图例来看,它表示置信度(Confidence)在20.24%到24.13%区间内,从表中可以看出实际值为 20.26%;从圆圈的颜色对应的图例来看,它表示支持度(Support)在3.12%到3.78%区间内,从表中可以看出实际值为3.68%;圆圈的 大小表示提升度(Lift)的大小,从表中可以看出实际值为1.34。
上面提到的置信度(Confidence)、支持度(Support)、提升度(Lift)是关联发现的三个重要评价指标,它们都是怎么计算出来的呢?我们还是以前面提到的第11条关联规则{Road Bikes ==> Jerseys}为例进行说明:
先简单统计一下数据源中相关数据,总共13050个订单,其中有购买Road Bikes订单的2369个,有购买Jerseys的订单1978个,同时购买了Road Bikes和Jerseys的订单480个,计算以下几个概率:
P(Road Bikes) = 2369/13050 = 18.15%
P(Jerseys) = 1978/13050 = 15.16%
P(Road Bikes & Jerseys) = 480/13050 = 3.68%
置 信度Confidence(Road Bikes ==> Jerseys)表示在客户购买Road Bikes的条件下,同时又购买Jerseys的概率,即P(Jerseys|Road Bikes) = P(Road Bikes & Jerseys)/P(Road Bikes) = 3.68%/18.15% = 20.26%。置信度越高,说明相关联的商品被交叉销售的机会越大。
支 持度Support(Road Bikes ==> Jerseys)表示客户同时购买过Road Bikes和Jerseys的概率,即P(Road Bikes & Jerseys) = 3.68%。支持度越高,说明相关联的商品被同时购买的越频繁。
提 升度Lift(Road Bikes ==> Jerseys)表示使用关联规则可以提升的倍数,是置信度与期望置信度的比值,公式为Confidence(Road Bikes ==> Jerseys)/P(Jerseys) = 20.26%/15.16% = 1.34。
在进行关联规则的数据挖掘中,通过指定这三个标准的最小值,三个标准的值都大于临界值的关联规则就被列出。而且以上这三个标准缺一不可,孤立地使用这三个标准中的任意一个,都可能导致错误结果。
当 某种常见现象出现在关联规则右边时,高置信度也会产生误导。比如以下几条规则的置信度都比较高,但几乎是没有作用的规则:“买方便面则买牛奶”、“买牙刷 则买牛奶”、“喜欢野外休闲则会买牛奶”等等。这一类规则的置信度和支持度都会比较高,因为很少有人会不买牛奶。但这一类规则没有任何作用。
在关联规则结果界面是查看表的情况下,还可以在查看菜单下选择【生成表子集(S)...】,通过设定筛选出想要的关联规则出来,例如下图是在【Confidence】选项卡中设定最小置信度为26:
点击【Process】后,结果将筛选出8条关联规则。
在置信度(Confidence)、支持度(Support)、提升度(Lift)这三个重要评价指标之中,提升度是最有可能单独使用而不致产生误导的标准,因为它可以测量关联规则增进预测右边现象的能力。但如果该规则的支持度很低,该规则也可能造成误导。
除 了以上三个对关联规则的数量标准外,一条关联规则真正可取,还需要具备以下两个条件:一是该规则必须是人们常识之外、意料之外的关联,二是该规则必须具有 潜在的作用,而目前任何技术与算法都无法判断哪些知识属于常识,也无法判断哪些属于可能具有潜在作用的规则,因此关联规则的挖掘离不开人的作用。
SAS->关联分析实践的更多相关文章
- 关联分析FPGrowth算法在JavaWeb项目中的应用
关联分析(关联挖掘)是指在交易数据.关系数据或其他信息载体中,查找存在于项目集合或对象集合之间的频繁模式.关联.相关性或因果结构.关联分析的一个典型例子是购物篮分析.通过发现顾客放入购物篮中不同商品之 ...
- 【GWAS文献解读】疟原虫青蒿素抗药性的全基因组关联分析
英文名:Genetic architecture of artemisinin-resistant Plasmodium falciparum 中文名:疟原虫青蒿素抗药性的全基因组关联分析 期刊:Na ...
- Apriori 关联分析算法原理分析与代码实现
前言 想必大家都听过数据挖掘领域那个经典的故事 - "啤酒与尿布" 的故事. 那么,具体是怎么从海量销售信息中挖掘出啤酒和尿布之间的关系呢? 这就是关联分析所要完成的任务了. 本文 ...
- 全基因组关联分析(Genome-Wide Association Study,GWAS)流程
全基因组关联分析流程: 一.准备plink文件 1.准备PED文件 PED文件有六列,六列内容如下: Family ID Individual ID Paternal ID Maternal ID S ...
- 关联分析---Apriori
关联分析是一种在大规模数据集中寻找有趣关系的任务,这些关系有两种形式:频繁项集和关联规则.频繁项集是经常出现在一起的物品的集合,关联规则暗示两种物品之间可能存在的很强的关系. 如何寻找数据集中的频繁或 ...
- 机器学习实战 - 读书笔记(11) - 使用Apriori算法进行关联分析
前言 最近在看Peter Harrington写的"机器学习实战",这是我的学习心得,这次是第11章 - 使用Apriori算法进行关联分析. 基本概念 关联分析(associat ...
- Activity启动模式 及 Intent Flags 与 栈 的关联分析
http://blog.csdn.net/vipzjyno1/article/details/25463457 Android启动模式Flags栈Task 目录(?)[+] 什么是栈 栈 ...
- 使用Apriori算法和FP-growth算法进行关联分析
系列文章:<机器学习实战>学习笔记 最近看了<机器学习实战>中的第11章(使用Apriori算法进行关联分析)和第12章(使用FP-growth算法来高效发现频繁项集).正如章 ...
- 【转】Activity启动模式 及 Intent Flags 与 栈 的关联分析
http://blog.csdn.net/vipzjyno1/article/details/25463457 在学习Android的过程中,Intent是我们最常用Android用于进程内或进 ...
随机推荐
- 18 Customers' Role in Good Customer Service 客户在高质量客服中的作用
Customers' Role in Good Customer Service 客户在高质量客服中的作用 ⑴High-quality customer service is preached by ...
- Linux命令:ps
Linux中的ps命令是Process Status的缩写.ps命令用来列出系统中当前运行的那些进程.ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信 ...
- python操作数据库-安装
首先是下载软件: 链接:http://pan.baidu.com/s/1nvp1imX 密码:6i0x 之后就是一系列设置. 安装教程:自行百度就行.需要注意的是设置my.ini时,需要加上这些东西( ...
- BSD Socket (java)
服务器 import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java ...
- Sublime必用快捷键[私人]
最近一年前端开发都是用sublime这款编辑器, 相对于webStorm强大而启动慢.editplus快启动而功能弱, sublime恰好在两者之间:而且其指令行安装.更新.卸载插件比eclipse之 ...
- 解决火狐浏览器发送jquery的ajax请求无效的问题
今天遇到这样一个问题: 页面在chrome下发送ajax的请求是没有问题的,但是在firfox下无效. 代码大致如下: //前面省略 <form> ..... <button cla ...
- opencpu
前端通过它调用后端的R语言,对R函数进行一个封装. 网址:https://github.com/jeroenooms/opencpu.js 使用的是opencpu-0.5.js,对它进行了修改. 1. ...
- 集体智慧编程-discovering groups
这一章讲的是利用聚集算法对blog进行分类. 首先是构造数据,找到一组blog,每个blog包含一组单词.这样就形成了(blog-name, word*)*的数据结构. 在构造该数据结构的过程中,还需 ...
- .net core 与ELK(4)后台运行els可视化工具和Kibana
which nohup .bash_profile中并source加载 如果没有就安装吧 yum provides */nohup nohup npm run start & nohup ./ ...
- 徒手画个disk不容易啊。。。
static const GLfloat disk_vertex_buffer_data[] = { // quarter 1 0.0f, 0.0f, -1.0f, 0.707f, 0.0f, -0. ...