1.3 数据挖掘工具
1.3.1 MATLAB
MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
MATLAB是矩阵实验室(Matrix Laboratory)的简称,与Mathematica、Maple并称为三大数学软件。MATLAB的操作界面如图1-3所示,MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通信、图像处理、信号检测、金融建模设计与分析等领域。
图1-3 MATLAB操作界面
MATLAB拥有数百个内部函数和30几种工具箱。工具箱又可以分为功能性工具箱和学科工具箱。功能性工具箱用来扩充MATLAB的符号计算、可视化建模仿真、文字处理及实时控制等功能。学科工具箱是专业性比较强的工具箱,控制工具箱、信号处理工具箱、通信工具箱等都属于此类。
MATLAB在数据挖掘中主要用到的工具是它的统计工具箱(Statistics Toolbox),该工具箱不仅包含了常用的数据分析功能,如数据常规统计、数据探索、假设检验、因子分析、回归等,还包含了机器学习功能。
1.3.2 SAS
SAS(Statistical Analysis System)是世界上最著名的统计分析系统之一,具有完备的数据访问、管理、分析和呈现功能,被誉为国际标准统计分析系统。1966年,它最初由美国北卡罗来纳州立大学(North Carolina State University)的两位生物统计学专业的研究生编制而成。1976年正式成立了SAS软件研究所,开始SAS系统的开发、维护、销售和培训工作,真正实现了这一软件的商业化。
SAS是一个模块化、集成化的大型应用软件系统。SAS系统基本上可以分为四大部分:SAS数据库、SAS分析核心、SAS开发呈现工具、SAS对分布处理模式的支持及其数据仓库设计。
一般统计软件是把各个统计分析过程整合为一个“包”,用户可根据资料特点和分析目的,利用软件提供的各种固定分析过程完成统计分析任务。而SAS系统除具有这些功能以外,还提供自己的母体编程语言,用户可以灵活调用、组合SAS系统语句自定义宏函数,完成特定的统计分析任务,甚至开发新的算法。这种自由的母体编程语言所调用的单元称为模块,这些单独的模块功能有所侧重,而又可以相互整合,因而大大提高了SAS的灵活性、多样性,丰富并扩展了SAS系统的功能;当然这也增加了掌握它的难度。正因为如此,相对SPSS等软件来说,一般认为SAS更适合专业人员使用。SAS的操作界面如图1-4所示。
图1-4 SAS操作界面
1.3.3 SPSS
SPSS(Statistical Product and Service Solutions)是世界上最早的统计分析软件,由美国斯坦福大学的三位研究生Norman H. Nie、C. Hadlai Hull和Dale H.Bent于1968年研究开发成功,于2009年被IBM公司以12亿美元现金收购。
SPSS是最早采用图形菜单驱动界面的统计软件,它最突出的特点是操作界面极为友好,输出结果美观漂亮。用户只要掌握一定的Windows操作技能,精通统计分析原理,就可以使用该软件为特定的科研工作服务。SPSS采用类似Excel表格的方式输入与管理数据,数据接口较为通用,能方便地从其他数据库中读入数据。其统计过程包括了常用的、较为成熟的统计过程,完全可以满足非统计专业人士的工作需要。
SPSS的基本功能包括数据管理、统计分析、图表分析、输出管理等。SPSS的统计分析过程包括描述性统计、均值比较、一般线性模型、相关分析、回归分析、对数线性模型、聚类分析、数据简化、生存分析、时间序列分析、多重响应等几大类,每类中又分多个统计过程,例如回归分析中又分线性回归分析、曲线估计、Logistic回归、加权估计、两阶段最小二乘法、非线性回归等多个统计过程,而且每个过程中又允许用户选择不同的方法及参数。SPSS也有专门的绘图系统,可以根据数据绘制各种图形。
SPSS Modeler是一组数据挖掘工具,如图1-5所示,通过这些工具可以采用商业技术快速建立预测性模型,并将其应用于商业活动,从而改进决策过程。
图1-5 SPSS Modeler操作界面
1.3.4 WEKA
WEKA的全名是怀卡托智能分析环境(Waikato Environment for Knowledge Analysis),缩写WEKA是新西兰独有的一种鸟名。WEKA的主要开发者来自于新西兰的University of Waikato。
WEKA是一个公开的数据挖掘工作平台,集合了大量能承担数据挖掘任务的机器学习算法,包括对数据进行预处理、分类、回归、聚类、关联规则以及在新的交互式界面上的可视化等。
WEKA以Java语言编写并包含了一个GUI与数据文件交互并生成可视结果,如图1-6所示。通过WEKA提供的API接口,可在其基础上实现自己的数据挖掘算法,同时还可以像嵌入其他的库一样将WEKA嵌入到自己的应用程序中,以完成诸如服务端自动数据挖掘这样的任务。
图1-6 WEKA操作界面
1.3.5 R
R是用于统计分析、绘图的语言和操作环境。R本来由来自于新西兰奥克兰大学的Robert Gentleman和Ross Ihaka开发,现在由“R开发核心团队”负责开发。R是基于S语言的一个GNU项目,可以认为是S语言的一种实现,通常用S语言编写的代码都可以不做修改地在R环境上运行。
R是一套完整的数据处理、计算和制图软件系统,主要包括数据存储和处理系统、数组运算工具、统计分析工具、统计制图功能、简便而强大的编程语言环境。
与其说R是一种统计软件,还不如说R是一种数学计算环境,因为R并不是仅仅提供若干统计程序。R的思想是:它可以提供一些集成的统计工具,但更大量的是它提供各种数学计算、统计计算的函数,从而使用户能够灵活机动地进行数据分析,甚至创造出符合需要的新的统计计算方法。
R是一款免费软件,它有UNIX、Linux、MacOS和Windows版本,都是可以免费下载和使用的。R软件自带的环境操作起来不太方便,RStudio是用于R语言开发的一个简单且功能强大的图形界面工具,如图1-7所示。
图1-7 RStudio操作界面
1.3.6 工具的比较与选择
上述五种数据挖掘工具都具有自己独特的特点,也有一定的适用条件。MATLAB擅长矩阵计算,有众多的行业运用工具箱,适合于学习算法、研究算法。SAS是功能极其强大的统计分析软件,支持二次开发,适合于工业应用。SPSS侧重于统计分析,界面友好、使用简单,能解决绝大部分统计学问题,适合于初学者。WEKA是Java开发的开源数据分析工具,适合于用Java进行二次开发的工程师。R是开源的,也支持二次开发,适合于算法学习、产品研发和小项目的开发。
除了以上介绍的五种工具,还可以使用一些常用的编程工具,如Java、C#、Python等实现数据挖掘领域相关的算法。使用这些工具进行编程实现可以对算法的内部进行细致的改造,灵活度也更高,但同时也需要对算法有深刻的理解,需要更高的编程技巧等。本书后续章节中针对股票的各种数据挖掘算法的改进和实现将主要以自我编程为主。