这段时间使用了Rapidminer进行关联规则的挖掘实验,很多细节问题折腾了好长时间。在网络上也搜不到类似的东西,尤其是中间遇到一个问题折腾了两天。最后是通过研究Rapidminer本身带有的例子才把一些细节给搞清楚,因此把一些需要注意的地方写下来以备下次查询。

前提是有很多的数据,准备做频繁模式以及关联规则分析,也了解过Weka或者Rapidminer这样的工具,也能自己写出代码来完成这个工作。但是,考虑到时间成本以及对算法充分了解的基础上,想要快速得到结果,从而把主要精力放在数据的构造上和挖掘结果的分析上,那就有必要了解下如何使用这些工具软件。

1  简介:

首先介绍下RapidMiner: RapidMiner一款开源数据分析工具。有非常丰富的数据分析算法,通过拖拽方式进行数据挖掘流程的连接,每个节点是一个处理过程(可以包含子过程)。每个节点的操作可以是数据本身的过滤、变换、属性选择等。也支持正则表达式过滤、按权重过滤、丢失补齐等一系列自己想要完成的数据操作。建模的model也包括了常用的分类预测、聚类、关联规则、相关性计算、相似性计算等模型,基本满足了很多的需要。

本文介绍的工作是:有一个用于频繁模式和关联规则分析的数据,通常是一个二维表格,用Rapidminer完成这样一个分析的具体过程。

数据准备:通过要做频繁模式和关联规则分析的数据都有稀疏的特点,当数据量很大的时候,比如有上万维、几十万的条目数据,就有必要考虑使用稀疏存储的方式来导入到Rapidminer中。由于Rapidminer能识别Weka中的arff格式数据,因此,本文采用Weka中稀疏数据的存储格式。下面是一个例子(该例子是以传统购物车的商品来说明,每个商品是一个属性,每个属性的取值是F或者T,当然做关联规则的数据也不一定本身就是二值属性的。):

@relation'basket'
@attribute fruitveg {F, T}
@attribute freshmeat {F, T}
@attribute dairy {F, T}
@attribute cannedveg {F, T}
@attribute cannedmeat {F, T}
@attribute frozenmeal {F, T}
@attribute beer {F, T}
@attribute wine {F, T}
@attribute softdrink {F, T}
@attribute fish {F, T}
@attribute confectionery {F, T}
@data
{1 T, 2 T, 10 T}
{1 T, 10 T}
{3 T, 5 T, 6 T, 9 T}
{2 T, 7 T}
{1 T, 7 T, 9 T}

数据格式说明请见:http://www.tuicool.com/articles/Q3MfEr

2. 软件准备:如果本身有这个软件请跳过此步。

http://softadvice.informer.com/Rapidminer_5.3.html  安装很简单,安装目录下有源码,可以导入eclipse研究,也可以自己下载源码。

3.  打开Rapidminer就可以看到这样的界面了。

3.1导入数据:

使用excel 格式的文件, arff格式等等。本例选用读取arff格式文件,因此拖拽一个Read ARFF 的操作,然后配置读入数据的路径。

流程图为:

配置路径如下:

3.2数据预处理:

首先查看数据如下:这里仅有11个商品(属性),12个购物车(也就是12条数据)。

如果直接使用这个读入的数据进行FPGrowth树的构建,流程图如下:

挖掘结果是:如下图所示,Rapidminer并没有正确得到商品的频繁集,而是商品取反的频繁集,也就是缺失商品的频繁集。

分析原因发现:Rapidminer的FP-Growth算法要求输入的是二值属性(bionominal),但是由于本例中的数据本身就是二值属性,算法本身也没有报错。运行结果和预期结果天壤之别就是由于合理的事情和一厢情愿。笔者甚至开始怀疑开源软件本身有bug,因此还花了两天时间调试代码,最后发现是由于软件本身没有认出来T就是表示”有“,而F表示”没有“的意思。这里要补充一点是,比如对频繁一项集进行计算的时候,针对的是一个属性的不同取值进行统计,这些取值有T有F,甚至是有三个取值或者更多,那么要统计哪一个取值的出现的个数作为结果呢?比如,一般频繁集的格式是:比如统计Age = ”old “ 是频繁集,它的置信度为 count( Age = ”old “)/ count(all ages)。 因此不指定属性的取值就直接给出统计结果是错误的,因此可以说是Rapidminer的一个bug。

我们希望的是它会自动统计取值为T的那些条目。当然,它也不能具备这样的功能能自动识别语义,因为这件事是需要软件使用者来说明的。但是,Rapidminer本身不报告这里可能出现语义理解偏差的问题就显得不太合理了。

因此在真正进行FP-Growth树构建的时候还要进行一步数据预处理,即进行二值化处理,告诉软件T表示true,F表示false。

如下图所示,选择Nominal to Binomial 操作对数据进行二值化,选中该操作的transform binomial 选项。

配置参数为:

该操作结束后的数据如下:可以看到的是属性增加了一倍为22个。即每个属性的取值个数相加在一起为22个。如果原来的数据在每个属性的独立取值个数为3,则结果就是3+3+...3= 33个(因为本数据中有11个属性),以此类推。

经过本步骤操作后,发现属性的个数增加了很多,但是很多属性也就是为取值为0的属性是不需要的,因此需要过滤掉。流程图如下:

配置selectattribute这个操作的参数:

这个参数的意义就是使用正则表达式过滤掉属性中不为T的属性,也就是留下属性取值为T的属性。 可以看到的是,保留的属性取值都是T,也就是保留语义为存在的商品。到这时,这个数据就是Rapidminer认识的数据了,它要计算频繁集就知道统计属性取值为true的个数了。其中,属性的名称变为了 frultveg = T 等。最后结果就是将数据构造为如下图所示的样子:

3.3完成频繁集和关联规则挖掘

最后使用FP-Growth 模型和Create Association  Rules 进行连接,得出结果。

结果为:

关联规则如下图:

4 总结:

本实验采取的weka的arff数据,该数据格式支持稀疏存储的方式,对关联规则挖掘尤其适用。Rapidminer适用于小样本数据的挖掘,如果数量大很大,则要考虑适用更优秀的算法或者并行处理方式。MapReduce的编程模型对这种可以并行的任务十分方便。一般数量的挖掘,我的实验是在5万维,30万条数据进行的,利用16G内存进行实验,还是比较轻松。

使用数据挖掘软件Rapidminer进行关联规则分析相关推荐

  1. 如何免费使用数据挖掘软件RapidMiner - 申请学生许可证

    如果你是一名在校学生,有校园邮箱,是可以免费使用RapidMiner的全部功能的,方法如下: -首先登录官网 https://rapidminer.com,注册账户,Account Type 需要选择 ...

  2. SPSS Modeler18.0数据挖掘软件教程(四):分类分析-决策树

    教程传送门: SPSS Modeler18.0数据挖掘软件教程(一):背景及软件简介 SPSS Modeler18.0数据挖掘软件教程(二):数据描述性统计与可视化 SPSS Modeler18.0数 ...

  3. 基于.NET实现数据挖掘--关联规则分析算法

    本篇继续我们的微软挖掘算法系列总结,前几篇我们分别介绍了:Microsoft决策树分析算法.Microsoft聚类分析算法.Microsoft Naive Bayes 算法.Microsoft 时序算 ...

  4. 数据挖掘之关联规则分析

    关联规则分析也称为购物篮分析,最早是为了发现超市销售数据库中不同的商品之间的关联关系. 用于寻找数据集中各项之间的关联关系.根据所挖掘的关联关系,可以从一个属性的信息来推断另一个属性的信息.当置信度达 ...

  5. 【某航】关联规则分析CatalogCrossSell数据集——数据挖掘导论

    代码链接:github代码 1.任务目标 针对所提供的CatalogCrossSell.xls数据集,要求对该数据及进行关联规则分析,并且解释生成的结果,评价指标包括lift,ratio, confi ...

  6. 基于微软案例数据挖掘之Microsoft 关联规则分析算法

    此篇的Microsoft关联规则算法就是用来挖掘关联关系的典型算法,闲言少叙,我们直接进入正题. 应用场景介绍 关联规则算法是在大量数据事例中挖掘项集之间的关联或相关联系,它典型的应用就是购物篮分析, ...

  7. 好用的数据挖掘软件介绍

    好用的数据挖掘软件介绍 WEKA 下载地址: Orange 下载地址: RapidMiner 下载地址: 八爪鱼 下载地址: WEKA WEKA的全名是怀卡托智能分析环境(Waikato Enviro ...

  8. [Data]数据挖掘软件的分类

    目前市场上发布的数据挖掘软件大致分为三类:通用工具类:综合工具类:面向特定应用工具类.其中: 1. 通用工具类占有较大和成熟的一块市场.从定义上说.它们是非面向特定应用的.从本质上说,它们的范围是水平 ...

  9. 有影响力的数据挖掘软件列表

    以下介绍分别按:公司.数据挖掘工具及其特点.应用行业案例 三个方面. 1.ANGOSS软件公司 http://www.angoss.com/ KnowledgeSTUDIO 平台:NT , Windo ...

最新文章

  1. Debian手动修改ip地址
  2. 剑指offer:和为S的连续正数序列
  3. 汉文博士 0.5.6 正式版发布
  4. oracle 游标(学校)
  5. 原生 js 模拟 alert 弹窗
  6. python爬虫开发环境中几个爬虫库的主要用途_分分钟了解Python爬虫
  7. Android Animation学习(四) ApiDemos解析:多属性动画
  8. 用js数组实现最原始的图片轮播实现
  9. 男人想要成功--必须明白的22个道理
  10. 动态IP或无公网IP时外网访问内网固定端口管家婆等应用
  11. 使用Bus Hound抓USB转串口数据包,助力问题分析
  12. 使用xftp怎么向服务器传输文件,如何使用文件传输软件Xftp
  13. 刑事实务办案中疑难问题
  14. java添加java_home环境变量_如何正确设置jdk环境变量JAVA_HOME?
  15. 计算机管理器鼠标不见了怎么办,电脑的鼠标光标消失了怎么回事?
  16. 红外图像盲元检测matlab,红外焦平面阵列盲元类型与判别.pdf
  17. 数学基础知识(公式)不用学太深,了解基本公式即可,遇到问题再查吧。
  18. 清北学堂 2017-10-06
  19. 计算机网络技术基础 阚宝明,计算机网络技术基础阚宝明答案
  20. 【节能、绿色、高效】数据中心发展正迈入“高算力”时代

热门文章

  1. 学习笔记 | c++中的smart pointer四个智能指针 shared_ptr、unique_ptr、weak_ptr、auto_ptr
  2. Chess Game Dataset (国际象棋游戏数据集)
  3. 美国密歇根大学指数不及预期,欧元低位反弹
  4. 汽车倒车雷达系统的设计与实现(一)
  5. Algebraic Multigrid
  6. 【软考中级】多媒体应用设计师复习笔记第三章
  7. 信息孤岛影响_国内企业的痛点,“企业信息孤岛”怎么破?
  8. 留学生在海外——Nina的幸福澳洲生活
  9. CpG ODN——艾美捷ODN 1826 (TLRGRADE)说明书
  10. 软件测试入职一年多薪资正常应该有多少?