




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【转】weka学习笔记【转】weka学习笔记2011-01-05 23:55先发表在我的博客上:补记:07年10月做的一个调研报告,因为Weka是一个很好的二次开发平台,现在觉得Weka中的算法实现得很好,但是因为涉及到算法太多,架构也就很复杂,一个简单的功能需要大量的代码来实现,如果只是单独用一两个算法不如直接自己写效率来的高。Weka怀卡托智能分析环境(Waikato Environment for Knowledge Analysis)1.Weka简介Weka的官方定义:Weka是数据挖掘中一些机器学习算法的集合。这些算法一般是直接应用于一个数据集上,或者是在你自己的Java代码中调用。Weka中包含了很多工具,包括数据预处理,分类,回归,聚类,关联规则和可视化工具。除了利用Weka进行数据挖掘的同时,Weka也很适合用来开发新的机器学习算法(原文:Weka is acollection of machine learning algorithms for data mining tasks.The algorithms can either be applied directly to adataset or called from your own Java code.Weka contains tools for data pre-processing,classification,regression,clustering,association rules,and visualization.It is also well-suited for developing new machine learning schemes.)2.Weka的框架结构Weka主要提供了数据挖掘的框架结构,并给出了一系列的数据挖掘算法,在这些数据挖掘算法生成模型时,用户可以自定义算法的各个相关参数,并且可以实现对测试集的验证,和对算法的比较。Weka提供了可编程的接口,使我们可以通过拓展算法来实现新的功能,同时Weka也允许我们通过调用它的公用包,在自己的项目中利用包中的算法实现相应的功能。3.Weka包的主要内容和特点3.1 Weka的核心功能Weka主要包括4个核心部分,也是4大功能环境,分别是:1SimpleCLI提供了一个简单的命令行界面,从而可以在没有自带命令行的操作系统中直接执行WEKA命令。对于Weka的命令详细,我们可以参考Wiki1。使用命令行有两个好处:一个是可以把模型保存下来,这样有新的待预测数据出现时,不用每次重新建模,直接应用保存好的模型即可。另一个是对预测结果给出了置信度,我们可以有选择的采纳预测结果,例如,只考虑那些置信度在85%以上的结果。2Explorer使用WEKA探索数据的环境。在这个环境中,Weka提供了数据的预处理,数据格式的转化(从CSV格式到ARFF格式的转化,详见第4部分),各种数据挖掘算法(包括分类与回归算法,聚类算法,关联规则等),并提供了结果的可视化工具。对于一个数据集,通过简单的数据的预处理,并对数据挖掘算法进行选择(在Weka3.5版本之后,加入了算法的过滤功能,可以过滤掉那些不适合当前数据集类型的算法),接着通过窗口界面对算法的参数进行配置,最后点击Start按钮就可以运行了。可视化工具分为对数据集的可视化和对部分结果的可视化(详情可以参考4.2 Weka的输出格式),并且我们可以通过属性选择工具(Select Attribute),通过搜索数据集中所有属性的可能组合,找出预测效果最好的那一组属性。3Experimenter运行算法试验、管理算法方案之间的统计检验的环境。Experiment环境可以让用户创建,运行,修改和分析算法试验,这也许比单独的分析各个算法更加方便。例如,用户可创建一次试验,在一系列数据集上运行多个算法(schemes),然后分析结果以判断是否某个算法比其他算法(在统计意义下)更好。Explorermenter主要包括简单模式,复杂模式和远程模式。复杂模式是对简单模式的基本功能的扩充,而远程模式允许我们通过分布式的方法进行实验。就功能模块而言,分为设置模块,运行模块和分析模块。在设置模块中我们可以自定义实验,加入多个算法和多方的源数据(支持ARFF文件,CSV文件和数据库),在运行模块中我们可以运行我们的实验,而在分析模块中,我们可以分析各种算法的的准确性,并提供了各种统计方法对结果进行检验比较。值得一提的是,我们可以把实验的各种参数,包括算法,数据集等,保存以方便下一次相同实验的进行;也可以把各种算法保存,方便应用在不同的数据集上;如果数据集来源于数据库的话,实验在过程中可以中止并继续(原因可以是被中止或者是扩展了实验),这样就不用重新运行那些已实验过的算法/数据集祝贺,而仅计算还没有被实验的那些。4KnowledgeFlow这个环境本质上和Explorer所支持的功能是一样的,但是它有一个可以拖放的界面。它有一个优势,就是支持增量学习(incremental learning)。KnowledgeFlow为Weka提供了一个数据流形式的界面.用户可以从一个工具栏中选择组件,把它们放置在面板上并按一定的顺序连接起来,这样组成一个知识流(knowledge flow)来处理和分析数据.目前,所有的Weka分类器(classifier)、筛选器(filter)、聚类器(clusterer)、载入器(loader)、保存器(saver),以及一些其他的功能可以在KnowledgeFlow中使用。KnowledgeFlow可以使用增量模式(incrementally)或者批量模式(inbatches)来处理数据(Explorer只能使用批量模式).当然对数据进行增量学习要求分类器能够根据各实例逐个逐个的更新.现在Weka中有五个分类器能够增量地处理数据:NaiveBayesUpdateable,IB1,IBk,LWR(局部加权回归).还有一个meta分类器RacedIncrementalLogitBoost可以使用任意基于回归的学习器来增量地学习离散的分类任务。KnowledgeFlow相对于Explorer的几个特性:(a)直观的数据流式布局(b)批量或增量地处理数据(c)并行处理多批数据或流程(每个流在各自的线程中执行)(d)筛选器可链接在一起(e)可以查看分类器在交叉验证的各折所产生的模型(f)可以对处理中的增量分类器的效果进行可视化(为分类准确度、RMS误差、预测等作图)下面是一个用C4.5算法对Bank-data-final.arff文件进行挖掘后的截图。各个组件根据属性关联起来,实现了一个数据流。注:这4个功能是Weka的核心功能,在Weka发行版本3.5以后,Weka的界面有所变化,这四个功能集成在Application菜单下。3.2 Weka的可视化工具3.2.1查看数据的Tools(1)ArffViewer一个MDI应用程序,使用电子表格的形式来查看ARFF文件。(2)SqlViewer一个SQL工作表,用来通过JDBC查询数据库。(3)EnsembleLibrary生成集成式选择(Ensemble Selection)所需设置的界面。这些功能在3.5版本后被集成到了Tools菜单下。3.2.2数据可视化在weka中数据可视化主要包括:(1)Plot作出数据集的二维散点图。(2)ROC示预先保存的ROC曲线(3)TreeVisualizer显示一个有向图,例如一个决策树(4)GraphVisualizer显示XML、BIG或DOT格式的图片,例如贝叶斯网络(5)BoundaryVisualizer允许在二维空间对分类齐的决策边进行可视化。(3)(4)的具体使用情况可以参照4.2节weka的输出格式。在Weka的3.5版本以后这些可是化工具被整理到了Visualization菜单下。4.Weka的数据格式4.1 Weka的输入格式4.1.1 ARFF格式Weka中自定义了一种数据格式ARFF,这种格式的典型例子可以从Weka安装目录data下看到,以其中的weather.arff为例7。relation weatherattribute outlooksunny,overcast,rainyattribute temperature realattribute humidity realattribute windyTRUE,FALSEattribute playyes,nodata sunny,85,85,FALSE,no sunny,80,90,TRUE,no overcast,83,86,FALSE,yes rainy,70,96,FALSE,yes rainy,68,80,FALSE,yes rainy,65,70,TRUE,no overcast,64,65,TRUE,yes sunny,72,95,FALSE,no sunny,69,70,FALSE,yes rainy,75,80,FALSE,yes sunny,75,70,TRUE,yes overcast,72,90,TRUE,yes overcast,81,75,FALSE,yes rainy,71,91,TRUE,no对应的二维表格的样子是表格里的一个横行称作一个实例(Instance),相当于统计学中的一个样本,或者数据库中的一条记录。竖行称作一个属性(Attrbute),相当于统计学中的一个变量,或者数据库中的一个字段。其中最后一个属性叫做类属性(Class属性)。这样一个表格,或者叫数据集,在WEKA看来,呈现了属性之间的一种关系(Relation)。图1中一共有14个实例,5个属性,关系名称为weather。WEKA存储数据的格式是ARFF(Attribute-Relation File Format)文件,这是一种ASCII文本文件。图1所示的二维表格存储在如下的ARFF文件中。这也就是WEKA自带的weather.arff文件,在WEKA安装目录的data子目录下可以找到。需要注意的是,在Windows记事本打开这个文件时,可能会因为回车符定义不一致而导致分行不正常。推荐使用UltraEdit这样的字符编辑软件察看ARFF文件的内容。其他文件格式如何转化成为ARFF格式?除了ARFF格式,Weka还支持另外一种常见格式,CSV格式。CSV同样是一种二进制保存的文本格式,我们可以在Weka中直接打开CSV格式的文件,并保存为ARFF格式。这样就给我提供了把常见的数据格式转换为ARFF格式的方法,如对于Excel文件,我们可以通过把每张表保存为CSV格式,进而保存为ARFF格式,与此同时,我们可以利用filter对数据进行相应的预处理。而对于Matlab格式的数据,我们可以通过命令csvwrite把数据转化成CSV格式的文件,进而转化为ARFF格式文件。对于海量数据,一般保存在数据库中,Weka同时支持JDBC访问数据库,详细请参照本文中的Weka如何连接数据库部分。4.1.2 XRFF格式在Weka3.5中增加了一种文件的支持XRFF(eXtensible attribute-Relation File Format)格式。XRFF格式是基于XML的对ARFF格式的扩展。同时也增加了一种对应的格式.xrff.gz,这种格式是XRFF格式的压缩版本,在Weka 3.5版本以后中可以直接打开和保存。对于一个ARFF格式的文件如下:relation irisattribute sepallength numericattribute sepalwidth numericattribute petallength numericattribute petalwidth numericattribute classIris-setosa,Iris-versicolor,Iris-virginicadata 5.1,3.5,1.4,0.2,Iris-setosa 4.9,3,1.4,0.2,Iris-setosa它对应的XRFF文件?xml version=1.0encoding=utf-8?dataset name=irisversion=3.5.3header attributes attribute name=sepallengthtype=numeric/attribute name=sepalwidthtype=numeric/attribute name=petallengthtype=numeric/attribute name=petalwidthtype=numeric/attribute class=yesname=classtype=nominallabels label Iris-setosa/label label Iris-versicolor/label label Iris-virginica/label/labels/attribute/attributes/header body instances instance value 5.1/value value 3.5/value value 1.4/value value 0.2/value value Iris-setosa/value/instance instance value 4.9/value value 3/value value 1.4/value value 0.2/value value Iris-setosa/value/instance/instances/body/dataset需要注意的是XRFF同样支持稀疏矩阵(Sparse Matrix)的表示,可以在XML中加上instance type=sparse声明为稀疏矩阵格式。同时对于每一个实例(Intance)的某个属性值,我们都需要给它一个唯一的Index值,以表示它在矩阵中的位置value index=15.1/value4.1.3 ARFF与XRFF格式的比较文件大小:显然,XRFF格式比ARFF格式占了更大的空间,但是在Weka中支持它的压缩格式,也就是.xrff.gz格式。Weka可以自动识别后缀是.xrff.gz的文件。同时在Weka中可以打开和保存是XRFF文件及XRFF.GZ文件7。相对于ARFF格式,XRFF格式中新增了如下几个功能:可以指定某个属性为类。通过在属性标签中增加class=yes可以制定某个属性为类。而在ARFF中,最后一个属性为系统识别为类属性。可以对属性指定权重。通过在属性标签中增加meta-data标签。可以对实例(Instance)指定权重。直接在实例的标签中增加weight属性下面是对上述三种新的功能的代码演示:#定义某属性为Class attribute class=yesname=classtype=nominal#为属性petalwidth指定权重attribute name=petalwidthtype=numericmetadata property name=weight0.9/property/metadata/attribute#为该条记录增加权重instance weight=0.75value 5.1/value value 3.5/value value 1.4/value value 0.2/value value Iris-setosa/value/instance详细参照:4.2 Weka的输出格式Weka中常见的输出是通过结果数据和可视化来实现的,对于结果数据,在不同的算法中会给出不同的结果格式,部分实现了可视化,而且效果很好,如在C4.5分类算法下,我们可以形成树状的结构,而在K均值聚类算法中,我们可以看到哪些点被聚到了一起。下面以关联规则和C4.5分类算法为例,给出输出的格式。在关联规则中,会给出适合的规则:Best rules found:1.age=52_max save_act=YES current_act=YES 113=income=43759_max 61 conf0.54)lift4.05)lev0.08)45conv1.85)2.income=43759_max 80=age=52_max save_act=YES current_act=YES 61 conf0.76)lift4.05)lev0.08)45conv3.25)3.income=43759_max current_act=YES 63=age=52_max save_act=YES 61 conf0.97)lift3.85)lev:(0.08)45conv:(15.72)而在分类算法中,会给出符合什么样的条件的会分到某个类别中,下面是C4.5算法的输出结果。J48 pruned tree-children=YES|income=30099.3|car=YES:NO(50.0/15.0)|car=NO|married=YES|income=13106.6:NO(9.0/2.0)|income 13106.6|mortgage=YES:YES(12.0/3.0)|mortgage=NO|income=18923:YES(9.0/3.0)|income 18923:NO(10.0/3.0)|married=NO:NO(22.0/6.0)|income 30099.3:YES(59.0/7.0)children=NO|married=YES|mortgage=YES|region=INNER_CITY|income=39547.8:YES(12.0/3.0)|income 39547.8:NO(4.0)|region=RURAL:NO(3.0/1.0)|region=TOWN:NO(9.0/2.0)|region=SUBURBAN:NO(4.0/1.0)|mortgage=NO:NO(57.0/9.0)|married=NO|mortgage=YES|age=39|age=28:NO(4.0)|age 28:YES(5.0/1.0)|age 39:NO(11.0)|mortgage=NO:YES(20.0/1.0)Number of Leaves:17 Size of the tree:31对应的可视化效果如下图所示(部分):注意这里,我们可以选择保存这个模型(model),并在以后的研究中调用这个模型来预测其他数据,或者是和其他模型进行比较。值得一提的是,目前这种保存模型的方法在命令行下得到更好的支持,建议使用命令行来实现。4.3 Weka如何连接数据库对于如何连接数据库,官方文档中给出了详细的连接方法6列出需要注意的几点:(1)主要使用JDBC进行连接,支持常见的数据库如Mysql,SQL Server,Oracle等(2)具体的配置步骤主要是配置好数据库的类型和数据库的地址(3)可以使用存储过程以提高效率5.如何给Weka添加新算法对于给weka添加新的算法,有两种方法,一种是将算法编译后放入weka.jar包中,它的基本步骤:(1)编写算法程序2在编写算法的时候,需要注意符合weka的接口,并且能接收prepare面板的数据。这里使用一个开源项目提供的包-WEKA Classification Algorithms9为例。在这个开源的分类算法插件中,提供了神经网络和人工免疫两种数据挖掘算法。(2)将算法加入对应目录因为新的算法的包结构和weka的目录是一致的,我们只需要把新的算法的对应目录和文件(主要为.class文件)加入到weka.jar包中。(3)修改weka启动时加载的系统配置文件3。Weka启动的时候的配置文件在3.4.4版本以后,由GenericObjectEps(GOE)文件变为GenericPropertiesCps(GPC,一般在weka/gui目录下),我们只要把加入的算法按照对应格式添加进去即可。对于这个分类算法来说,我们对于分类那部分的配置修改成如下形式:#Lists the Classifiers-Packages Iwant to choose fromweka.classifiers.Classifier=weka.classifiers.bayes,weka.classifiers.functions,weka.classifiers.lazy,weka.classifiers.meta,weka.classifiers.misc,weka.classifiers.trees,weka.classifiers.rules,weka.classifiers.immune.airs,weka.classifiers.immune.clonalg,weka.classifiers.immune.immunos,weka.classifiers.neural.lvq,weka.classifiers.neural
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 信息及其在秘书工作中的作用教学设计-2025-2026学年中职专业课-秘书基础-行政事务助理-公共管理与服务大类
- 第21课《古代诗歌五首》说课稿-2024-2025学年统编版语文七年级下册
- 2025年中考物理试题分类汇编(全国)电路、电流、电压、电阻(第1期)解析版
- 7.1 信息资源管理概述教学设计-2025-2026学年高中信息技术(信息科技)必修 信息技术基础教科版
- 6.拉拉手交朋友 一年级道德与法治上册(2024版)教学设计
- 6.4 微观世界与量子论教学设计-2025-2026学年高中物理上海科教版共同必修2-沪教版2007
- 2025年采油工(中级)考试试题题库
- 第7课 竖钩和弯钩说课稿-2025-2026学年小学书法练习指导三年级下册西泠版
- 蓄电池的维护和保养
- 2025年2月医师专业知识模考试题与答案
- 驾照科目四模拟考试题及答案大全
- 电商用户社区与运营创新创业项目商业计划书
- 土地增值税清算培训课件
- 2025年青海省格尔木市辅警招聘考试试题题库及答案详解(易错题)
- 2025年中学生法治素养竞赛题库及答案
- 2025年部编版语文四年级上册全册单元、期中、期末测试题及答案(共10套)
- 村级妇联半年工作总结
- 数控安全培训课件
- 台球俱乐部工作管理制度
- 肉毒素中毒的治疗讲课件
- 蓝色简约风医学生职业生涯规划展示模板
评论
0/150
提交评论