
2.3 数据挖掘工具
2.3.1 MATLAB
MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析及数值计算。MATLAB的操作界面如图2-21所示。

图2-21 MATLAB的操作界面
MATLAB是矩阵实验室(Matrix Laboratory)的简称,和Mathematica、Maple并称为三大数学软件。在数学类科技应用软件中,它在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据曲线、实现算法、创建用户界面,以及连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通信、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C、FORTRAN等语言简洁得多。MATLAB吸收了Maple等软件的优点,成为一个强大的数学软件。在新的版本中MATLAB也新增了对C、FORTRAN、C++、Java的支持功能,用户可以直接调用,也可以将自己编写的程序导入MATLAB函数库中方便以后调用。此外,许多MATLAB爱好者编写了一些经典的程序,用户直接下载即可使用。
MATLAB在数据挖掘中常用到的工具是它的统计工具箱(Statistics Toolbox)。该工具箱不仅包含了常用的数据分析功能,如数据常规统计、数据探索、假设检验、因子分析、回归等,还包含了机器学习的功能。数据挖掘中经常用到的方法都在机器学习这部分。MATLAB在数据挖掘方面最大的特色是它的灵活性,分析师可以按照自己的想法灵活调用相应的函数。另外,MATLAB有非常强大的优化、数值计算、可视化函数及各类工程应用函数,这些函数对于拓展MATLAB的数据挖掘功能非常有帮助。所以,MATLAB在数据挖掘中占有重要的地位。
2.3.2 SAS
SAS(Statistics Analysis System)是世界上著名的统计分析系统之一,具有完备的数据访问、管理、分析和呈现功能,被誉为国际标准统计分析系统。1966年它最初由美国北卡罗来纳州立大学的两位生物统计学研究生开发。1976年SAS软件研究所正式成立,并开始SAS的开发、维护、销售和培训工作,真正实现了这一软件的商业化。SAS的操作界面如图2-22所示。

图2-22 SAS的操作界面
最早的SAS是在大型机上使用的,1985年推出了能运行在小型机和PC上的版本。2011年最新的9.3版本可在多种操作平台上运行。
一般统计软件把各种统计分析过程整合为一个“包”(Package),用户可根据资料特点和分析目的利用软件中提供的各种固定的分析过程完成统计分析任务。而SAS除具有这些功能以外,还提供自己的母体编程语言,用户可以灵活调用、组合SAS语句自定义宏函数,完成特定的统计分析任务,甚至开发新的算法。这种自由的母体编程语言所调用的单元称为模块(Module)。这些单独的模块的功能有所侧重,又可以相互整合,大大提高了SAS的灵活性、多样性,丰富并拓展了SAS的功能。当然,这也增加了掌握它的难度。正因为如此,相对SPSS(Statistical Product and Service Solution)等软件来说,一般认为SAS更适合专业人员使用。
2.3.3 SPSS
SPSS是世界上最早的统计分析软件,由美国斯坦福大学的三位研究生Norman H. Nie、C. Hadlai (Tex)Hull和Dale H. Bent于1968年开发成功,同时成立了SPSS公司,并于1975年成立法人组织,在芝加哥组建了SPSS总部。1984年SPSS总部首先推出了世界上第一个微机版本统计分析软件SPSS/PC+,开拓了SPSS微机系列产品的开发方向,极大地扩大了它的应用范围,并使其能很快地应用于自然科学、技术科学、社会科学的各个领域。世界上许多有影响的报刊纷纷就SPSS的自动统计绘图、数据的深入分析、使用方便、功能齐全等方面给予了高度的评价。SPSS的操作界面如图2-23所示。

图2-23 SPSS的操作界面
2009年7月28日,IBM宣布将用12亿美元收购统计分析软件提供商SPSS公司。具体的收购方式为,IBM将以每股50美元的价格进行收购,该交易将全部以现金形式支付,预计于2009年年底前完成。SPSS称将在2009年10月2日召开特别股东大会,投票表决有关将该公司出售给IBM的交易。如今SPSS的21.0版本更名为IBM SPSS。
SPSS采用类似Excel表格的方式输入与管理数据,数据接口较为通用,能方便地从其他数据库中读入数据。其统计过程包括常用的、较为成熟的统计过程,完全可以满足非统计专业人士的工作需要。SPSS的输出结果十分美观,存储为专用的SPO格式,也可以转存为HTML格式和文本格式。针对熟悉老版本编程运行方式的用户,SPSS还特别设计了语法生成窗口,用户只需要在菜单中选好各个选项,然后单击“粘贴”按钮就可以自动生成标准的SPSS程序,极大地方便了中、高级用户。
SPSS for Windows是一个组合式软件包,它集数据录入、整理、分析功能于一身。用户可以根据实际需要和计算机的功能选择模块,以降低对系统硬盘容量的要求,这有利于该软件的推广应用。SPSS的基本功能包括数据管理、统计分析、图表分析、输出管理等。SPSS的统计分析过程包括描述性统计、均值比较、一般线性模型、相关分析、回归分析、对数线性模型、聚类分析、数据简化、生存分析、时间序列分析、多重响应等几大类,每类中又分为好几个统计过程。比如,回归分析又分为线性回归分析、曲线估计、逻辑斯蒂回归、Probit回归、加权估计、两阶段最小二乘法、非线性回归等多个统计过程,而且每个过程中又允许用户选择不同的方法及参数。SPSS也有专门的绘图系统,可以根据数据绘制各种图形。
SPSS的分析结果清晰、直观、易学易用,而且可以直接读取Excel及DBF数据文件,现已推广到各种操作系统的计算机上。在国际学术界有一条不成文的规定,即在国际学术交流中,凡是用SPSS软件完成的计算和统计分析,可以不必说明算法,由此可见其影响之大和信誉之高。SPSS 21.0版本采用分布式分析系统(Distributed Analysis Architecture,DAA),全面适应互联网,支持动态收集、分析数据和HTML格式报告。
SPSS由于操作简单,已经在我国的社会科学、自然科学的各个领域发挥了巨大作用。
2.3.4 WEKA
WEKA的中文全称是怀卡托智能分析环境(Waikato Environment for Knowledge Analysis)。WEKA的主要开发者来自新西兰。WEKA的操作界面如图2-24所示。

图2-24 WEKA的操作界面
WEKA作为一个公开的数据挖掘工作平台,集合了大量能承担数据挖掘任务的机器学习算法,包括对数据进行预处理、分类、回归、聚类、关联规则,以及在新的交互式界面上的可视化。
用户如果想自己实现数据挖掘算法,可以参考WEKA的接口文档。在WEKA中集成自己的算法,或者借鉴它的方法,自己实现可视化工具并不是一件很困难的事情。
2005年8月,在第11届ACM SIGKDD国际会议上,怀卡托大学的WEKA小组荣获了数据挖掘和知识探索领域的最高服务奖。WEKA系统得到了广泛认可,被誉为数据挖掘和机器学习历史上的里程碑,是现今较完备的数据挖掘工具。WEKA的每月下载次数已超过万次。
WEKA是一个基于Java、用于数据挖掘和知识分析的平台。来自世界各地的Java爱好者都可以把自己的算法放在这个平台上,然后从海量数据中发掘其背后隐藏的种种关系;这些发现也许蕴藏着无限的商机。
打开WEKA,首先出现一个命令行窗口,但并非要在这个命令行下写Java语句。稍后,就会出现Weka GUI Chooser的窗体,这是一个很简单的窗体,提供4个按钮:Simple CLI、Explorer、Experimenter、KnowledgeFlow。Simple CLI是一个使用命令行的界面,有点像SAS的编辑器;Explorer则是视窗模式下的数据挖掘工具;Experimenter和KnowledgeFlow的使用有待进一步摸索。
2.3.5 R
R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。R的操作界面如图2-25所示。

图2-25 R的操作界面
R最初是由来自新西兰奥克兰大学的Ross Ihaka和Robert Gentleman开发(也因此称为R)的,现在由“R开发核心团队”负责开发。R是基于S语言的一个GNU项目,所以也可以当作S语言的一种实现,通常用S语言编写的代码都可以不做修改地在R环境下运行。R的语法来自Scheme。
R是一套完整的数据处理、计算和制图软件系统。其功能包括:数据存储和处理系统、数组运算工具(其向量、矩阵运算方面功能尤其强大)、完整连贯的统计分析工具、优秀的统计制图功能、简便而强大的编程语言,可操纵数据的输入和输出,可实现分支、循环。用户也可自定义R的功能。
与其说R是一种统计软件,不如说R是一种数学计算的环境,因为R并不仅提供若干统计程序,而且使用者只需要指定数据库和若干参数便可进行统计分析。R的思想是:它可以提供一些集成的统计工具,但更多的是它提供各种数学计算、统计计算的函数,从而使使用者能够灵活机动地进行数据分析,甚至创造出符合需要的新的统计计算方法。
R语言的语法表面上类似C,但在语义上是函数设计语言(Functional Programming Language)的变种,和Lisp及APL有很强的兼容性。特别是,它允许“在语言上计算”(Computing on the Language)。这使得它可以把表达式作为函数的输入参数,而这种做法对统计模拟和绘图非常有用。
R有UNIX版本、Linux版本、MacOS版本和Windows版本,都是可以免费下载和使用的。从网上可以下载R的安装程序、各种外挂程序和文档。
2.3.6 工具的比较与选择
表2-1给出了上述5种数据挖掘工具在功能、特点、适用情况方面的比较,从中可以看出,5种工具具有各自的特点,都有一定的适用条件。
表2-1 常用数据挖掘工具的比较

纵观这5种工具的特点,本书将选择MATLAB作为主要的数据挖掘实现工具。原因主要有3个方面:一是数据挖掘的主要内容是各种各样的模型和算法,而MATLAB特别适合高效自主的算法开发,因为MATLAB具有丰富的数学函数库,可以使用这些函数库根据算法的步骤快速实现算法,从而便于用户对算法的学习和理解;二是MATLAB具有丰富的科学计算功能,包括微积分、优化计算、符号计算等,以及丰富的金融、经济工具箱,这些功能将非常有利于量化投资的实现;三是MATLAB本身就是程序开发工具,具有GUI界面开发功能,所以使用MALTAB可以很快地将学习的算法和模型,以及开发程序和工具部署到实际的量化投资环境中。
工具的应用都是相通的,读者只要掌握或了解了这些数据挖掘技术,然后去应用这些工具,就会很快上手。仅从学习的角度来讲,MATLAB会更合适。