zoukankan      html  css  js  c++  java
  • 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)这三个重要评价指标之中,提升度是最有可能单独使用而不致产生误导的标准,因为它可以测量关联规则增进预测右边现象的能力。但如果该规则的支持度很低,该规则也可能造成误导。

    除 了以上三个对关联规则的数量标准外,一条关联规则真正可取,还需要具备以下两个条件:一是该规则必须是人们常识之外、意料之外的关联,二是该规则必须具有 潜在的作用,而目前任何技术与算法都无法判断哪些知识属于常识,也无法判断哪些属于可能具有潜在作用的规则,因此关联规则的挖掘离不开人的作用。

  • 相关阅读:
    python基本数据类型(—)
    linux基本命令
    1、认识Mysql
    Flask-SQLAlchemy详解
    sqlalchemy基本增删改查
    pymongo方法详解
    uWSGI+Nginx部署
    uwsgi
    nginx负载均衡配置
    redis-sentinel主从复制高可用(哨兵)
  • 原文地址:https://www.cnblogs.com/likai198981/p/3936621.html
Copyright © 2011-2022 走看看