1、数据挖掘工具运用对比报告学生姓名:指导老师: 冯霞学院名称: 计算机学院专业名称: 计算机科学与技术中国民航大学2012 年 11 月 17 日II数据挖掘工具 Knime 与 Weka 的运用与比较摘 要数据挖掘(Data Mining)又称数据库中的知识发现(Knowledge Discover in Database) ,是目前人工智能和数据库领域研究的热点问题。所谓数据挖掘是指从数据库的大量数据中揭示出隐含的、先前未知的并有潜在价值的信息的非平凡过程。数据挖掘是一种决策支持过程,它主要基于人工智能、机器学习、模式识别、统计学、数据库、可视化技术等,能够高度自动化地分析数据,做出归纳性的
2、推理,从中挖掘出潜在模式,帮助决策者调整市场策略,减少风险,做出正确的决策。在现代社会,无论是商业决策,还是信息管理,甚至国家大事如美国总统选举,数据挖掘都占有非常重要的地位。因此,作为一名计算机学科的研究生,熟练使用数据挖掘工具是必要的。现在主流五种数据挖掘软件为:weka、 orange、rapidminer、jhepwork、rattle 、knime 而且这些软件都是开源的,可以供使用者根据自己的需要开发或者改进。本文将以 weka 和 knime 为例,介绍两种软件的运用以及比较。关键词:数据挖掘工、weka、knime、运用、比较1一、 Weka简介:WEKA 的全名是 Waika
3、to Environment for Knowledge Analysis,同时 weka 也是新西兰的一种鸟名,而 WEKA 的主要开发者来自新西兰。它是现今最完备的数据挖掘工具之一。作为一个大众化的数据挖掘工作平台,WEKA 集成了大量能承担数据挖掘任务的机器学习算法,包括对数据进行预处理、分类、回归、聚类关联分析以及在新的交互式界面上的可视化等等。通过其接口,可在其基础上实现自己的数据挖掘算法。WEKA 的打开界面:数据格式:WEKA 所用的数据格式在形式上与 Excel 类似。打开 Explorer 界面,点Open file 选择 weka 自带数据 weather.nominal.
4、arff 进行分析,是离散好weather 数据。打开数据如下所示:2WEKA 存储数据的格式是 ARFF(Attribute-Relation File Format)文件,这是一种 ASCII 文本文件。表格里的一个横行称作一个实例(Instance) ,相当于统计学中的一个样本,或者数据库中的一条记录。竖行称作一个属性(Attribute) ,相当于统计学中的一个变量,或者数据库中的一个字段。这样一个表格或者叫作数据集,在WEKA 看来,呈现了属性之间的一种关系(Relation)。上图中一共有 14 个实例,5 个属性,关系名称为“weather” 。整个 ARFF 文件可以分为两个部
5、分。第一部分是头信息,包括对关系的声明和对属性的声明;第二部分是数据信息。WEKA 支持的有四种:Numeric 数值型标称型String 字符串型date 日期和时间型WEKA 的使用:1、 “Explorer”界面使用 WEKA 作数据挖掘,面临的第一个问题往往是我们的数据不是ARFF 格式的。幸好,WEKA 还提供了对 CSV 文件的支持,而这种格式是被3很多其他软件,比如 Excel,所支持的。现在我们打开“bank-data.csv” 。利用 WEKA 可以将 CSV 文件格式转化成 ARFF 文件格式。ARFF 格式是 WEKA支持得最好的文件格式。此外,WEKA 还提供了通过 J
6、DBC 访问数据库的功能“Explorer”界面提供了很多功能,是 WEKA 使用最多的模块。现在我们先来熟悉它的界面,然后利用它对数据进行预处理。界面如下如所示:上图显示的是“Explorer”打开“weather.nominal.arff”的情况。我们根据不同的功能把这个界面分成 8 个区域。1. 区域 1 的几个选项卡是用来切换不同的挖掘任务面板。2. 区域 2 是一些常用按钮。包括打开数据,保存及编辑功能。3. 在区域 3 中“Choose”某个“Filter” ,可以实现筛选数据或者对数据进行某种变换。数据预处理主要就利用它来实现。4. 区域 4 展示了数据集的一些基本情况。5. 区
7、域 5 中列出了数据集的所有属性。勾选一些属性并“Remove”就可以删除它们,删除后还可以利用区域 2 的“Undo”按钮找回。区域 5 上方的1123456784一排按钮是用来实现快速勾选的。在区域 5 中选中某个属性,则区域 6 中有关于这个属性的摘要。注意对于数值属性和标称属性,摘要的方式是不一样的。6. 区域 7 是区域 5 中选中属性的直方图。若数据集的某个属性是目标变量,直方图中的每个长方形就会按照该变量的比例分成不同颜色的段。默认地,分类或回归任务的默认目标变量是数据集的最后一个属性(这里的“play”正好是) 。要想换个分段的依据,即目标变量,在区域 7 上方的下拉框中选个不
8、同的分类属性就可以了。下拉框里选上“No Class”或者一个数值属性会变成黑白的直方图。7. 区域 8 是状态栏,可以查看 Log 以判断是否有错。右边的 weka 鸟在动的话说明 WEKA 正在执行挖掘任务。右键点击状态栏还可以执行 JAVA 内存的垃圾回收。NominalToBinary 的过滤器将所有 nominal 类型的属性转为 binary(0,1二值)属性,一个可取 k 个值的 nominal 类型的属性转为 k 个二值属性,这样可将数据中所有属性转为数值(numeric)属性。以下是 weather.arff 转换后的结果。WEKA 把分类(Classification)和回
9、归(Regression)都放在“Classify”选项卡中。在这两个任务中,都有一个目标属性(即输出变量或类标) 。我们希望根据一个样本(WEKA 中称作实例)的一组特征(输入变量) ,对目标进行预测。为了实现这一目的,我们需要有一个训练数据集,这个数据集中每个实例的输入和输出都是已知的。观察训练集中的实例,可以建立起预测的模5型。有了这个模型,我们就可以对新的未知实例进行预测了。衡量模型的好坏主要在于预测的准确率。WEKA 中的典型分类算法有以下几种:Bayes: 贝叶斯分类器、BayesNet: 贝叶斯信念网络、NaveBayes: 朴素贝叶斯网络、Functions: 人工神经网络和支
10、持向量机、MultilayerPerceptron: 多层前馈人工神经网络、SMO: 支持向量机(采用顺序最优化学习方法) 、Lazy: 基于实例的分类器、IB1: 1-最近邻分类器、IBk: k-最近邻分类器、Meta: 组合方法、AdaBoostM1: AdaBoost M1 方法、Bagging: 袋装方法、Rules: 基于规则的分类器、JRip: 直接方法Ripper算法、Part: 间接方法从 J48 产生的决策树抽取规则(不是 C4.5 规则算法)、Trees: 决策树分类器、 Id3: ID3 决策树学习算法(不支持连续属性) 、J48: C4.5 决策树学习算法、Random
11、Forestt: 基于决策树的组合方法。分析的图形表示包括有:实际类与预测类的散布图、贝叶斯网络、决策树等。如下面几个图所示:贝叶斯网络图62、 “Experimenter”界面Experiment界面可以创建,运行,修改和分析算法试验,这比单独的分析各个算法更加方便。例如,用户可创建一次试验,在一系列数据集上运行多个算法(schemes) ,然后分析结果以判断是否某个算法比其他算法更好。决策树图表示有 3 个数据点7Explorermenter主要包括简单模式,复杂模式和远程模式。复杂模式是对简单模式的基本功能的扩充,而远程模式允许我们通过分布式的方法进行实验。分为设置模块,运行模块和分析模
12、块三个功能模块。在设置模块中我们可以自定义实验,加入多个算法和多方的源数据(支持ARFF文件,CSV文件和数据库) 。在运行模块中我们可以运行我们的实验,报告运行情况,运行后生成一个数据集。设置实验配置模式8分析模块可以分析各种算法的的准确性,并对结果进行检验比较。点击即可分析实验结果93、 “KnowledgeFlow”界面这个界面的功能是将 WEKA 组件在设计画布上相互连接以形成可进行动态数据处理分析的知识流。例如:Knowledge Flow提供了一个用于处理大型数据集的递增算法,处理数据很大时的问题。这个环境本质上和 Explorer所支持的功能是一样的,但是它有一个可以拖放的界面。
13、它有一个优势,就是支持增量学习(incremental learning) 。KnowledgeFlow 为WEKA 提供了一个数据流形式的界面。用户可以从一个工具栏中选择组件,把它们放置在面板上并按一定的顺序连接起来,这样组成一个知识流(knowledge flow )来处理和分析数据。目前,所有的WEKA 分类器(classifier) 、筛选器(filter) 、聚类器(clusterer) 、载入器(loader) 、保存器(saver) ,以及一些其他的功能可以在KnowledgeFlow 中使用。KnowledgeFlow 可以使用增量模式( incrementally)或者批量模
14、式(inbatches)来处理数据( Explorer 只能使用批量模式) 。当然对数据进行增量学习要求分类器能够根据各实例逐个逐个的更新现在WEKA 中有五个分类器能够增量地处理数据:NaiveBayesUpdateable,IB1,IBk,LWR(局部加权回归) 。还有一个meta 分类器RacedIncrementalLogitBoost 可以使用任意基于回归的学习器来增量地学习离散的分类任务。二、 KNIME简介:10KNIME (Konstanz Information Miner) 是一个用户友好,智能的,并且有丰演的开源的数据集成,数据处理,数据分析和数据勘探平台。它给了用户有能
15、力以可视化的方式创建数据流或数据通道,可选择性地运行一些或全部的分析步骤,并以后面研究结果,模型以及可交互的视图。 KNIME 由 Java 写成,其基于 Eclipse 并通过插件的方式来提供更多的功能。通过以插件的文件,用户可以为文件,图片,和时间序列加入处理模块,并可以集成到其它各种各样的开源项目中。其打开界面如图所示:数据格式:Knime 使用的数据格式比较多样化,可以使用.arff 的,也可以使用.csv 格式的等数据库中的数据格式。KNIME 的使用:打开 KNIME 后,点击 Open KNIME workbench.进入主界面,在打开 KNIME 软件后可以看到有几个区域,他们
16、分别是 WorkFlow Projects、Favorite Nodes、Node Repository、Outline、WorkFlow Edit、Node Description。其11中主要的部分就是在 Node Repository 里面找到相应的结点在 WorkFlow Edit里面进行编辑和运行。1、点击菜单栏 File 里的 New,选择 New KNIME Project,并按下 Next 键,之后点击 Finish 即可完成新文档的创建。122、生成 K-D 树与准确度判断1)布局。查找 file reader 拖拽结点并连接可得到:2)导入数据。右击第一个 File Rea
17、der,选择 Configure(或直接双击进入) ,在 Valid URL 处选择要导入的数据的文件。之后点击 OK。133)生成 K-D 树,右击 IBK,点击 Configure,可以修改 KNN 的数值。 144)模型运行与验证1将来自 File Reader2 的数据和来自 IBK 的 K-D 树模型输入到 Weka Predictor 中。注:当发现设置完的结点没有变成绿灯时要及时按下按钮 来执行所有的结点。2设置 scorer 的属性。右击后点击 Configure,first column 选择要预测的属性。5)查看结果,右击后点击 accuracy statistics 来查
18、看预测的结果。三、两个软件的比较一、就界面来看,KNIME 要比 WEKA 清爽干净。二、从应用来看,weka 的应用更加广泛。其中 weka 的 knowledgeflow 的功能相对于 knime 的功能有相同的特点,都是靠拖动插件来选择对于算法或者数据处理的函数,但是 KNIME 中每个节点都带有交通信号灯,用于指示该节点的状态(未连接、未配置、缺乏输入数据时为红灯;准备执行为黄灯;执行完毕后为绿灯) 。三、从数据类型来看,KNIME 可以分析的数据类型范围更广,WEKA 需要用数据类型转换转换成 ARFF 类型。四、从函数使用上来看,weka 的函数种类相对于 KNIME 多很多,分类
19、也明确的多,使用户更加方便快捷的使用。例如在 Explore 中的 6 个功能模块中,15可以比较容易的看出来每个模块的分工,这样在对于数据的分析时,可以比较准确的定位在某个模块中,相对的,knime 的分工就显得不是很明确,它的功能函数都放在了一起。三从上手度方面来看,knime 这个程序上手比较容易,用 knime 这个程序设计挖掘方式的时候,使用者可以直观的从连线上看出来函数与函数的关系,并且使用者在设计函数的时候,通过邮件编译模块函数可以知道那个步骤出现了问题,不过就这一点而言,weka 做的要比 knime 到位,因为如果是函数预处理不到位的话,weka 中的函数显示是不可选的,也就是说,不用使用者编译程序会自动的指出那个函数是不可用的。Knime 有个特点就是它可以将好多函数连成一片,不用来回的切换界面,weka 使用的时候,如果有两个函数对于同一个文件的预处理不同,需要来回切换或者导入数据(Explore 中) ,而 knime 就不需要。Knime 也可以扩展使用 WEKA 的挖掘算法。