aprioir算法_DW-DM实验(李向东)Clementine7(关联规则9章).doc

news/2025/2/26 4:35:16

Clementine 关联规则

【流9(9.2).str】

9.2.3 Apriori算法的应用示例

这里,利用Clementine提供的超市顾客个人信息和他们的一次购买商品数据,讲解Aprioir算法的具体操作。

数据文件名为BASKETS.txt,为文本格式文件。数据包括两大部分的内容,第一部分是顾客的个人信息,主要变量有会员卡号(cardid)、消费金额(value)、支付方式(pmethod)、性别(sex)、是否户主(homeown)、年龄(age)、收入(income);第二部分是顾客的一次购买商品的信息,主要变量有果蔬(fruitveg)、鲜肉(freshmeat)、奶制品(dairy)、罐头蔬菜(cannedveg)、罐头肉(cannedmeat)、冷冻食品(frozenmeal)、啤酒(beer)、葡萄酒(wine)、软饮料(softdrink)、鱼(fish)、糖果(confectionery),均为二分类型变量,取值T表示购买,F表示未购买,是一种事实表的数据组织格式。分析目标是哪些商品最有可能同时购买。

通过可变文件(Var.File)节点读入数据,选择建模(Modeling)卡中的Apriori节点并将其连接到数据流的恰当位置上,右击鼠标,选择弹出菜单中的编辑(Edit)选项进行参数设置,显示的窗口如图9-3(a)所示。

(a)参数设置窗口 (b) 模型(Model)选项卡

图9-3 Apriori的参数设置窗口及其模型(Model)选项卡

图9-3 (a)中的具体参数设置如下。

●使用类型节点设置(Use type node settings)表示采用数据流中类型(Type)节点 所指定的变量角色建立模型。本例没有设置类型(Type)节点,所以选择使用定制设置(Use Custom settings)选项,表示自行指定建模变量。分别在后项(Consequents)和前项(Antecedents)框中选择关联规则的后项和前项变量。这里要分析连带销售商品,因此所有商品均被选入后项和前项。

●使用事务处理格式(Use transactional format)选项表示,如果数据是按照事务表 格式组织的,则应选择该选项。

图9-3 (b)中的具体参数设置如下。

●最低条件支持度(%)[ Minimum antecedents support(%) ]框:指定前项最小支持 度,默认为10%;最小规则置信度(%)[ Minimum rule confidence(%)]框:指定规则的最小置信度,默认为80%;最大前项数(Maximum number of antecedents)框:为防止关联规则过于复杂,可指定前项中包含的最大项目数,默认为5。

●仅包含标志变量的真值(Only true values for flags)选项:表示只显示项目(要观察的商品)出现时的规则,而不显示项目不出现时的规则。这里,关心的是商品的连带购买,选择该选项。

图9-4 (a)中的具体参数设置如下。

(b)Expert)选项卡 (d)分析结果

●评估测量(Evaluation measure)选项:选择评价关联规则的测度指标,指标含义见后面说明。这里,选择规则置信度。同时,还应在评估尺度下限( Evaluation measure lower bound)框中给定相应的最小值。

●允许没有前项的规则(Allow rules without antecedents)选项:表示允许关联规 则没有前项,意味着只输出频繁项集。

------------------------------

●规则提升度。

规则提升度(Lift)是置信度与后项支持度的比,其数学表示为

(9.4)

事实上,后项支持度是没有模型时研究项(后项)的先验概率。规则提升度反应了项目X的出现对Y的出现有促进作用。规则提升度越大越好。

●置信差(Confidence Difference)。

与规则提升度类似,置信差也利用了后项支持度,是规则提升度与后项支持度的绝对差,数学表示为

(9.5)

例如,在没有任何模型的条件下,后项支持度是80%,即80%的顾客购买牛奶,如果规则置信度是82%,即通过学习知道买面包的顾客购买牛奶的概率是82%,那么置信差是2%,应该说该学习所获得的关联规则提供的信息量并不高,只有2%,其相应的提升度


http://www.niftyadmin.cn/n/4390353.html

相关文章

java script和java有什么区别_Java和JavaScript有什么区别?

程序员和用户经常在Java和JavaScript之间感到困惑。认为Java和JavaScript相同。如果从表面看,它们可能看起来一样。 由于Java和JavaScript均指相同的OOP语言,并且共享相同的控制结构和运算符。但是,当您单独学习它们时,您将了解它…

k8s mysql 持久化_K8s——MySQL实现数据持久化

1、搭建nfs存储[rootdocker-k8s01 ~]# yum -y install nfs-utils[rootdocker-k8s01 ~]# mkdir /nfsdata/mysql -p[rootdocker-k8s01 ~]# cat /etc/exports/nfsdata *(rw,sync,no_root_squash)[rootdocker-k8s01 ~]# systemctl restart nfs-server[rootdocker-k8s01 ~]# systemc…

java导出csv文件_【干货分享】DM数据库使用UTL_FILE读写文件方法

UTL_FILE包可以用来读写操作系统上的文件,提供了在客户端操作服务器端文件的功能。它提供一套严格的使用标准操作系统文件I/O方式:OPEN、 PUT、 GET和 CLOSE操作;其中,GET方法用于读文件,PUT方法用于写文件。当用户读取…

第一章:Xamarin.Forms如何适应?(5)

安装在编写Xamarin.Forms的应用程序之前,您需要在Mac,PC或两者上安装Xamarin平台(如果您正在使用该设置)。 请参阅Xamarin网站上的文章:https://developer.xamarin.com/guides/cross-platform/getting_started/install…

linux qt界面开发_前沿资讯!使用Qt和Simulink开发基于模型的人机界面

“在传统的设计过程中,设计信息的传递和处理通常是以文本文档的形式进行的,这些文档很难理解,容易产生解释偏差。工程师从基于文本文档中手动创建嵌入式代码和数据,这导致了一个耗时且容易出错的过程。也几乎没有范围来确保更改是…

单个java类及在多个java类中对于类的成员使用的区别_干货 | 名企高频考点之谈谈你所理解的 Java 反射...

点击蓝字关注我哦以下是本期干货视频视频后还附有文字版本哦▼《名企高频考点-谈谈你所理解的 Java 反射》▼ps:请在WiFi环境下打开,如果有钱任性请随意概述Java的反射(reflection)机制是在运行状态中,对于任意一个类,都能够知道这…

mysql group by 替代_mysql中group by和order by同时使用无效的替代方案

前言最近一年由于工作需要大部分使用的都是NoSql数据库,对关系型数据库感觉越来越陌生,一个由group by和order by 引发的血案由此而生。在此做个记录,以备不时之需。需求首先,看一下整体的表结构。现在查找每个barCode中最新的数据…

c语言编译没问题 但运行之后没反应,这段代码编译联接都成功,可是运行时没反应...

这段代码编译连接都成功,可是运行时没反应啊用C语言编程实现单链表的基本操作。有必要的类型说明,并完成下述函数功能:(1)CreateList( ):逆序建立一个(带有头结点的)单链表,在键盘上按顺序输入26个大写英文字母A……Z&…