1、 做中国领先的科研资源提供商,第七章 常用的数据挖掘软件,总课时:6小时(实验:4小时),大数据处理配套课件,提纲,数据挖掘软件介绍WekaRapidMinerKnime,数据挖掘软件介绍,Weka:名气最大的机器学习和数据挖掘软件高级用户可以通过Java编程和命令行来调用其分析组件为普通用户提供了图形化界面在Weka论坛有大量的扩展包很多其它开源数据挖掘软件也支持调用Weka的分析功能,数据挖掘软件介绍,RapidMiner:耶鲁大学的研究成果免费提供数据挖掘技术和库数据挖掘过程简单,强大和直观多层次的数据视图,确保有效和透明的数据400多个数据挖掘运营商支持强大的可视化引擎耶鲁大学已成功地
2、应用在许多不同的应用领域,包括文本挖掘,多媒体挖掘,功能设计,数据流挖掘,集成开发的方法和分布式数据挖掘,数据挖掘软件介绍,Knime:数据流模式的挖掘软件类似数据流(data flow)的方式来建立分析挖掘流程用户可选择性地运行一些或全部的分析步骤用Java开发的,可以扩展使用Weka中的挖掘算法通过插件的方式,用户可以加入自己的处理模块,并可以集成到其它各种各样的开源项目中,数据挖掘软件介绍,IBM Intelligent Miner:IBM的商业级产品简单易用能处理大数据量的挖掘功能一般,没有数据探索功能与其他软件接口差,只能用DB2,连接DB2以外的数据库时,如Oracle, SAS,
3、 SPSS需要安装DataJoiner作为中间软件,提纲,数据挖掘软件介绍WekaRapidMinerKnime,Weka简介,WEKA的全名是怀卡托智能分析环境(Waikato Environment for Knowledge Analysis),它的源代码可通过http:/www.cs.waikato.ac.nz/ml/weka得到。同时weka也是新西兰的一种鸟名,而WEKA的主要开发者来自新西兰。 WEKA作为一个公开的数据挖掘工作平台,集合了大量能承担数据挖掘任务的机器学习算法,包括对数据进行预处理,分类,回归、聚类、关联规则以及在新的交互式界面上的可视化。 2005年8月,在第1
4、1届ACM SIGKDD国际会议上,怀卡托大学的Weka小组荣获了数据挖掘和知识探索领域的最高服务奖,Weka系统得到了广泛的认可,被誉为数据挖掘和机器学习历史上的里程碑,是现今最完备的数据挖掘工具之一(已有11年的发展历史)。Weka的每月下载次数已超过万次。,Weka的数据格式,WEKA所处理的数据集是一个二维的表格,Weka的数据格式,WEKA存储数据的格式是ARFF(Attribute-Relation File Format)文件,这是一种ASCII文本文件。整个ARFF文件可以分为两个部分。第一部分给出了头信息(Head information),包括了对关系的声明和对属性的声明。
5、第二部分给出了数据信息(Data information),即数据集中给出的数据。从“data”标记开始,后面的就是数据信息了。,Weka的数据格式,关系声明 关系名称在ARFF文件的第一个有效行来定义,格式为 relation 是一个字符串。如果这个字符串包含空格,它必须加上引号(指英文标点的单引号或双引号)。 属性声明 属性声明用一列以“attribute”开头的语句表示。数据集中的每一个属性都有它对应的“attribute”语句,来定义它的属性名称和数据类型。 attribute ,数据准备,使用WEKA作数据挖掘,面临的第一个问题往往是数据不是ARFF格式的。WEKA还提供了对CSV文
6、件的支持,而这种格式是被很多其他软件所支持的。此外,WEKA还提供了通过JDBC访问数据库的功能。,“Explorer”界面,数据属性,例如,bank-data数据各属性的含义如下: id a unique identification number age age of customer in years (numeric) sex MALE / FEMALE region inner_city/rural/suburban/town income income of customer (numeric) married is the customer married (YES/NO) ch
7、ildren number of children (numeric) car does the customer own a car (YES/NO) save_acct does the customer have a saving account (YES/NO) current_acct does the customer have a current account (YES/NO) mortgage does the customer have a mortgage (YES/NO) pep did the customer buy a PEP (Personal Equity P
8、lan) after the last mailing (YES/NO),数据预处理,有些算法,只能处理所有的属性都是分类型的情况。这时候就需要对数值型的属性进行离散化。在这个数据集中有3个变量是数值型的,分别是“age”,“income”和“children”。 其中“children”只有4个取值:0,1,2,3。在UltraEdit中直接修改ARFF文件,把attribute children numeric 改为 attribute children 0,1,2,3,数据预处理,“age”和“income”的离散化需要借助WEKA中名为“Discretize”的Filter来完成 点击
9、“choose”后,出现一颗“Filter树” ,逐级找到“weka.filters.unsupervised.attribute.Discretize”,点击后进行离散化,例如“bins=3”则会将属性分成三段,用Weka进行分类,选择分类器在 classify 页面的顶部是Classifier 栏。这一栏中有一个文本框,给出了分类器的名称和选项。左键点击文本框会打开一个GenericObjectEditor,可以配置当前的分类器。Choose 按钮用来选择 WEKA 中可用的分类器。,用Weka进行分类,测试选项 应用选定的分类器后得到的结果会根据 Test Option 一栏中的选择来进
10、行测试。共有四种测试模式:Using training set. 根据分类器在用来训练的实例上的预测效果来评价它。Supplied test set. 从文件载入的一组实例,根据分类器在这组实例上的预测效果来评价它。点击 Set 按钮将打开一个对话框来选择用来测试的文件。Cross-validation. 使用交叉验证来评价分类器,所用的折数填在Folds 文本框中。Percentage split. 从数据集中按一定百分比取出部分数据放在一边作测试用,根据分类器这些实例上预测效果来评价它。取出的数据量由% 一栏中的值决定。,用Weka进行分类,Class属性设置WEKA 中的分类器被设计成经
11、过训练后可以预测一个 class 属性,也就是预测的目 标。默认的,数据集中的最后一个属性被看作 class 属性。如果想训练一个分类器,让它预测一个不同的属性,点击Test options 栏下方的那一栏,会出现一个属性的下拉列表以供选择。,用Weka进行分类,分类器、测试选项和class属性都设置好后,点击Start 按钮就可以开始学习过程。右边的Classifier output 区域会被填充一些文本,描述训练和测试的结果。输出结果分为几个部分Run information. 给出了学习算法各选项的一个列表。包括了学习过程中涉及到的关系名称,属性,实例和测试模式。Classifier m
12、odel (full training set). 用文本表示的基于整个训练集的分类模型 所选测试模式的结果可以分解为以下几个部分Summary. 一列统计量,描述了在指定测试模式下,分类器预测 class 属性的准确程度。Detailed Accuracy By Class. 更详细地给出了关于每一类的预测准确度的描述Confusion Matrix. 给出了预测结果中每个类的实例数。其中矩阵的行是实际的类,矩阵的列是预测得到的类,矩阵元素就是相应测试样本的个数。,用Weka进行分类,结果列表在训练了若干分类器之后,结果列表中也就包含了若干个条目。左键点击这些条目可以在生成的结果之间进行切换
13、浏览。右键点击某个条目则会弹出一个菜单,包括如下的选项:,View in main window. 在主窗口中显示输出该结果.View in separate window. 打开一个独立的新窗口来显示结果。Save result buffer. 弹出一个对话框,使得输出结果的文本可以保存成一个文本文件。Load model. 从一个二进制文件中载入以前训练得到的模型对象。Save model. 把模型对象保存到一个二进制文件中。对象是以 Java“序列化”的形式保存的Re-evaluate model on current test set. 通过 Supplied test set 选项下
14、的Set 按钮指定一个数据集,已建立的分类模型将在这个数据集上测试它的表现。Visualize classifier errors. 弹出一个可视化窗口,把分类结果做成一个散点图。其中正确分类的结果用叉表示,分错的结果用方框表示。Visualize tree or Visualize graph. 如果可能的话,把分类模型的结构用图形来表示(决策树和贝叶斯网络)。Visualize margin curve. 创建一个散点图来显示预测边际值。这个边际值的定义为:预测为真实值的概率与预测为真实值之外其它某类的最高概率之差。Visualize threshold curve. 生成一个散点图,以演
15、示预测时改变各类之间的阀值后取得的平衡。Visualize cost curve. 生成一个散点图。,用Weka进行分类,分类模型生成结果,提纲,数据挖掘软件介绍WekaRapidMinerKnime,RapidMiner简介,RapidMiner,以前叫YALE (Yet Another Learning Environment) 。RapidMinder提供的实验由大量的算子组成,而这些算子由详细的XML文件记录,并被图形化的用户接口表现出来。RapidMiner是世界领先的数据挖掘解决方案,在一个非常大的程度上有着先进技术。它数据挖掘任务涉及范围广泛,包括各种数据艺术,能简化数据挖掘过程
16、的设计和评价。下载地址:http:/rapid- process)中设置算子相关参数 (parameter)进行算子连接执行流程以得到结果,用RapidMiner进行关联规则挖掘,回顾一下关联规则挖掘中最经典的例子啤酒与尿布的关联。沃尔玛通过对原始交易数据的分析,发现跟尿布一起购买最多的商品竟是啤酒!调查显示,美国的太太们常叮嘱她们的丈夫下班后为小孩买尿布,而丈夫们在买尿布后又随手带回了他们喜欢的啤酒。对于隐藏在啤酒和尿布这类表面上风马牛不相及的商品背后的关联,如果不通过数据挖掘的技术,是没有办法靠拍脑袋的办法想出来的。,用RapidMiner进行关联规则挖掘,例如对软件自带的Transact
17、ions数据进行关联规则挖掘Transactions数据记录了一组人的经济统计数据,我们试图发现一个人是否富有和他的车房特征间的关联,数据表字段解释:CAR:是否有车Appartement:是否住宿舍公寓Villa:是否住别墅Poor:是否是穷人Average:是否是中产阶级Rich:是否是富人,用RapidMiner进行关联规则挖掘,导入原始数据在左侧的Repository Access下面找到Retrieve组件,将其拖到Process区,选中Retrieve结点,在右侧的repository entry处,单击目录图标,选择Transactions数据表后点击OK,用RapidMiner
18、进行关联规则挖掘,对原始数据进行二值化在左侧的Data Transformation下面找到Nominal to Binominal组件,将其拖到Process区,并连接到Retrieve结点后面,用RapidMiner进行关联规则挖掘,按属性过滤在左侧的Data Transformation下面找到Select Attributes组件,将其拖到Process区,并连接到Nominal to Binominal结点后面,然后在右侧选择过滤类型为“regular_expression”,regular expression处填写“.*true.*”,用RapidMiner进行关联规则挖掘,生成
19、频繁子项,为关联规则生成做准备在左侧的Modeling下面找到FP-Growth组件,将其拖到Process区,并连接到Select Attributes结点后面,用RapidMiner进行关联规则挖掘,生成关联规则在左侧的Modeling下面找到Create Association Rules组件,将其拖到Process区,并连接到FP-Growth结点后面,用RapidMiner进行关联规则挖掘,运行工程得到关联规则挖掘结果,如果某人住别墅,可以推断出他有车,如果某人贫穷,可以推断出他在住宿舍或公寓,提纲,数据挖掘软件介绍WekaRapidMinerKnime,Knime简介,KNIME是
20、基于Eclipse环境的开源商业智能工具。KNIME是通过工作流来控制数据的集成、清洗、转换、过滤,再到统计、数据挖掘,最后是数据的可视化。整个开发都在可视化的环境下进行,通过简单的拖曳和设置就可以完成一个流程的开发。KNIME的全称是The Konstanz Information Miner。它的设计目的是用于教学、研究以及协同工作的平台。,Knime界面,Knime架构特点,在KNIME中,数据分析流程由一系列结点及连接结点的边组成。待处理的数据或模型在结点之间进行传递。每个结点都有一个或多个输入端和输出端。数据或模型从结点的输入端进入经结点处理后从结点的输出端输出。,Knime结点的状
21、态,结点上有三盏灯,就像红黄绿交通灯一样。当结点刚被拖入工作区的时候,红灯亮起表示数据无法通过,这时需要对结点进行配置,让它可以执行。右键单击结点选择“Configure”对结点进行配置;配置完成并且正确的话,便会亮起黄灯,表示准备就绪数据可以通过;再次右键单击结点选择“Execute”运行这个结点,当绿灯亮起时表示结点执行成功,数据已经通过并传给下一个结点。,Knime结点的分类,IO类结点,用于文件、表格、数据模型的输入和输出操作;数据库操作类结点,通过JDBC驱动对数据库进行操作;数据操作类结点,对上一结点传进来的数据进行筛选、变换以及简单的统计学计算等操作;数据视图类结点,提供了数据挖
22、掘中最常用的表格及图形的展示,包括盒图,饼图,直方图,数据曲线等;统计学模型类结点,封装了统计学模型算法类的结点,如线性回归、多项式回归等;数据挖掘模型类结点,提供了贝叶斯分析,聚类分析,决策树,神经网络等主要的DM分类模型以及相应的预测器;META原子结点,该类结点可以对任意的及结点进行嵌套封装,还提供了后向传播、迭代、循环、交叉验证等方法其他,可供我们自定义java代码段,以及设置规则引擎。,Knime的简单操作例子,例子:从包含5000条汽车GPS数据的Access数据库中筛选出有乘车人的记录,PassengerState=1表示有乘车人,Knime的简单操作例子,添加数据库读取结点从左
23、面菜单的“DataBase”中拖拽一个“Database Reader”到“KNIME_project”工作台,并配置该结点的数据库读取方式,Knime的简单操作例子,添加行过滤结点从左面菜单的“Node Repostory”中拖拽一个“Row Filter”到工作台,连接到“Database Reader”后面,然后配置“PassengerState=1”,Knime的简单操作例子,执行查看结果,只有PassengerState=1的记录,习题,有哪些常用的数据挖掘软件。简述用Weka进行分类的操作步骤。简述用RapidMiner进行关联规则挖掘的操作步骤。比较Weka、RapidMiner和Knime。,配套实验,大数据的统计和挖掘数据分类实验回归分析实验关联规则挖掘实验数据集成分析平台Knime实验,