数据挖掘工具WEKA及其应用研究
2018-09-10杨忠诚
杨忠诚
【摘 要】数据挖掘、知识发现和机器学习的研究取得了瞩目的成果,一大批算法和数据集层出不穷,为让研究者简单、有效地测试新的算法和数据,开源工具WEKA提供了一个优秀的测试和开发平台。目前,WEKA已成为数据挖掘研究领域最常用的工具。文章详细介绍WEKA平台的使用方法,并介绍在WEKA社区内一些成熟的应用模块。
【关键词】数据挖掘;WEKA;算法;数据集层
【中图分类号】TP311.13 【文献标识码】A 【文章编号】1674-0688(2018)09-0038-02
0 引言
由于需要统一的工作台,让研究人员能够轻松获得机器学习中的最新技术,怀卡托知识分析环境(Waikato Environment for Knowledge Analysis,WEKA)应运而生。在1992年项目开始的时候,学习算法有多种语言可供使用,可用于不同的平台,并以各种数据格式运行。收集学习机制来做数据集的比较研究,这个任务的工作量多得令人望而生畏。设想WEKA不仅提供学习算法的工具箱,而且还提供一個框架,研究人员可以实现新算法,而不必关心支持数据操作和方案评估的基础架构。
目前,WEKA被认为是数据挖掘和机器学习领域的里程碑式系统,被研究和商业领域广泛接受,成为数据挖掘研究领域最常用的工具。WEKA的成功很大程度上归功于它的开源性,用户能够自由使用源代码,也就愿意改进或编写新的项目融入扩展WEKA。
1 WEKA工作台
WEKA项目旨在为研究者和练习者提供通用的机器学习算法集和数据预处理工具,用户可以简单快速地在WEKA工作台上对新的数据集进行新的算法测试,其模块化、可扩展的架构允许用户从广泛的基础学习算法和工具集合中构建复杂的数据挖掘流程。通过简单的API、插件机制和设备,可以自动将新的学习算法与WEKA的图形用户界面集成在一起,因此扩展工具包非常容易。工作台包括回归、分类、聚类、关联规则挖掘和属性选择等算法。数据可视化工具和许多预处理工具很好地满足了数据的初步探索。这些与学习计划的统计评估和学习结果的可视化相结合,支持CRISP-DM等数据挖掘过程模型。
WEKA提供许多图形用户界面,使得应用算法变得极其容易。其中主要的GUI是“Explorer”,它有一个基于面板的界面,不同的面板对应不同的数据挖掘任务。在“预处理”面板的第一个面板中,可以使用WEKA的数据预处理工具“过滤器”加载和转换数据。数据可以从各种来源加载,包括文件、URL和数据库。支持的文件格式包括WEKA自己的ARFF格式、CSV格式、LibSVM格式和C4.5格式,也可以使用生成数据并使用数据集编辑器手动编辑数据。
资源管理器中的第二个面板允许访问WEKA的分类和回归算法,相应的面板被称为“分类”,因为回归技术被视为“连续分类”的预测指标。默认情况下,该面板对预处理面板中已准备的数据集上的选定学习算法运行交叉验证,用以估计预测性能。它还显示了从完整数据集构建的模型的文本表示。面板还提供对模型的图形表示的访问,如决策树等。此外,它可以将散点图中的预测误差可视化,还可以通过ROC曲线和其他阈值曲线进行评估。模型也可以保存并加载到此面板中。
除了监督算法,WEKA还支持应用无监督算法,即关联规则挖掘的聚类算法和方法。这些资源可以在资源管理器中分别通过第三和第四个面板访问。用户能够通过“集群”面板对预处理面板中加载的数据运行集群算法,为评估聚类性能提供了简单的统计数据。统计聚类算法基于似然的性能,以及如果在数据中的某个属性中指定了“真”聚类成员资格的比较。如果适用,聚类结构也可能可视化,如有必要,模型可以在持久存储。
WEKA对聚类任务的支持并不像对分类和回归的支持那么广泛,但是它拥有更多的聚类技术,而不仅仅是关联规则挖掘技术,关联规则挖掘目前在某种程度上被忽略了。尽管如此,它还是包含了该领域最著名算法及其他一些算法的实现。这些方法可以通过Explorer中的Associate面板访问。
数据挖掘在实际应用中最重要的任务之一是识别数据中哪些属性是最具预测性的。为此,WEKA的资源管理器有一个用于属性选择的专用面板——“选择属性”,它提供了各种算法和评估标准,用于识别数据集中最重要的属性。由于可以将不同的搜索方法与不同的评估标准结合起来,因此可以配置各种可能的候选技术。所选属性集的健壮性可以通过基于交叉验证的方法进行验证。属性选择面板主要设计用于探索性数据分析。WEKA的“Filtered Classifier”(可通过Classify面板访问)可将属性选择技术与基础分类或回归算法结合使用,以避免在获得的性能估计中引入积极的偏差。
在许多实际应用中,数据可视化提供了重要功能,会通知为当前问题选择适当算法的过程,有些甚至可以避免使用机器学习和数据挖掘算法进一步分析。资源管理器中的最后一个面板称为“可视化”,它提供了一个颜色编码的散点图矩阵,以及通过选择该矩阵中的单个绘图并选择部分数据以进行可视化从而进行向下钻取的选项。也可以获得关于单个数据点的信息,并以选定的量级给数据添加随机噪声以发现模糊的数据。
Explorer专为基于批处理的数据处理而设计:培训数据将全部加载到内存中,然后进行处理。这可能不适用于涉及大型数据集的问题。但是,WEKA有一些允许增量模型构建的算法,可以通过命令行界面以增量模式应用。这些算法的增量特性在资源管理器中被忽略,但可以使用WEKA的一组图形用户界面的新增功能来利用这些算法。大多数可以解决的任务与资源管理器也可以由知识流处理。但是,除了基于批处理的训练之外,其数据流模型还可以使用处理节点进行增量更新,这些节点可以在将各个实例提供给适当的增量学习算法之前加载和预处理这些实例。它还提供可视化和评估的节点。一旦配置了相互连接的处理节点的设置,它就可以保存下来供以后重新使用。
WEKA中的第三个主要图形用户界面是“Experimenter”,该接口旨在便于根据WEKA中提供的许多不同评估标准对算法的预测性能进行实验性比较。实验可能涉及跨多个数据集运行的多种算法,如使用重复的交叉验证。实验还可以分布在网络中的不同计算节点上,以减少单个节点的计算负载。一旦建立了实验,可以将其保存为XML或二进制格式,以便在必要时重新访问它。配置和保存的实验也可以从命令行运行。与WEKA的其他用户界面相比,数据挖掘从业者可能不太经常使用Experimenter。但是,一旦在资源管理器中进行了初步实验,使用这种替代界面为特定数据集或数据集的集合确定合适的算法通常会更容易。总结WEKA主要图形用戶界面的简要说明,无论用户需要哪种用户界面,提供用于运行WEKA的Java虚拟机都有足够的堆空间是非常重要的。为了避免交换,需要预先指定所需的内存量(应设置为低于所用机器的物理内存量)。
2 基于WEKA的项目
有很多项目以某种方式扩展或集成到WEKA中,包括以下方面。
(1)自然语言处理系统。有许多工具使用WEKA进行自然语言处理:GATE是NLP工作台;Balie执行语言识别、标记、句子边界检测和命名实体识别;Senseval-2是一个用于词义解歧的系统;Kea是一个自动关键短语提取系统。
(2)生物学中的知识发现。已经开发了几种使用或基于WEKA的工具来分析生物学应用中的数据:BioWEKA是WEKA在生物学、生物信息学和生物化学方面的任务的扩展工具;表位工具包(EpiT)是基于WEKA开发表位预测工具的平台;maxdView和Mayday提供微阵列数据的可视化和分析。
(3)分布式并行数据挖掘。有许多项目扩展WEKA以用于分布式数据挖掘:Weka-Parallel提供分布式交叉验证功能;GridWeka提供分布式评分和测试及交叉验证;FAEHIM和Weka4WS使WEKA可以提供网络服务。
(4)开源数据挖掘系统。几个众所周知的开源数据挖掘系统都提供插件来访问WEKA的算法,Konstanz Information Miner(KNIME)和RapidMiner是两个这样的系统。R统计计算环境也通过RWeka软件包提供与WEKA的接口。
(5)科学的工作环境。Kepler Weka项目将WEKA的所有功能集成到Kepler开源科学工作流平台中。
3 结语
本文首先介绍了WEKA平台的使用方法,对其面板上的插件进行了详细的说明并分析了各插件之间的关联关系,其次将WEKA作为开源软件发布并在Java中实现,最后介绍了WEKA社区中使用者开发集成的一些成熟的应用模块。本文可以为使用WEKA进行数据挖掘的学者提供很好的参考。
参 考 文 献
[1] 赵阳.WEKA系统及其在数据挖掘教学中的应用[J].科技信息,2008(30).
[2] 郑继刚,杨春华,曾庆红,等.基于WEKA平台的不确定数据挖掘[J].保山学院学报,2010(5).
[3] 陈氏映雪(Tran Thi Anh Tuyet).WEKA环境下模糊聚类算法集成研究[D].上海:上海大学,2013.
[4]刘晓华.基于WEKA的数据挖掘技术在物流系统中的应用[J].科技情报开发与经济,2007(22).
[5] 廖强.基于关联规则挖掘的WEKA数据挖掘应用[J].计算机光盘软件与应用,2012(19).
[6] 王彦增,曹正.基于WEKA数据挖掘中关联规则的分析及应用举例[J].经济论坛,2013(1).
[责任编辑:钟声贤]