本节书摘来自华章出版社《python 与数据挖掘 》一书中的第1章,第1.2节,作者张良均 杨海宏 何子健 杨 征,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1.2 工具简介
数据挖掘软件的历史并不长,甚至连“数据挖掘”这个术语也是在19世纪90年代中期才正式被提出。如今,商用数据挖掘软件和开源工具都已经非常成熟,不仅提供易用的可视化界面,还集成了数据处理、建模、评估等一整套功能。
部分开源的数据挖掘软件,采用可视化编程的设计思路。之所以这么做,是因为它能足够灵活和易用,更适合缺乏计算机科学知识的用户,如WEKA和RapidMiner。
当用户拥有较多特定的分析需求,或正在自行实现一个改进的机器学习算法时,脚本型语言如Python和R将更符合需要。同时,脚本型语言兼具运行效率和开发效率,支持敏捷型的迭代更新。
1.2.1 WEKA
用Java编写的WEKA是一款知名的数据挖掘工作平台,它因解决数据挖掘任务的实际需求而生,集成了大量能处理数据挖掘任务的机器学习算法,这些算法能被用户直接应用于数据集之上。同时,WEKA允许开发者使用Java语言,调用其分析组件,基于WEKA的架构进行二次开发,融入更多的数据挖掘算法,并嵌入到软件或者应用之中,自动完成数据挖掘任务,开发新的机器学习框架。
WEKA 支持多种标准数据挖掘任务,包括数据预处理,分类、回归分析、聚类、关联规则等算法的应用,以及特征工程和可视化。其欢迎界面如图1-1所示。
1.2.2 RapidMiner
RapidMiner的目标是:“成为一个能将数据变成宝贵的战略资产的现代平台”,已被广泛使用于商业应用、学术研究、教育、敏捷开发等领域。
RapidMiner是一个支持数据挖掘、文本挖掘、机器学习、商业分析等任务的集成环境,如图1-2所示。其图形化界面采用了类似Windows资源管理器中的树状结构来组织分析组件,提供500多种分析组件作为计算单元(Operator),服务于数据挖掘的各个环节,如数据预处理、变换、探索、建模、评估及结果可视化。这些计算单元有详细的XML 文件记录。
RapidMiner是基于WEKA二次开发的应用,这意味着它可以调用WEKA中的各种分析组件。
1.2.3 Python
Python是一门编程语言。随着NumPy、SciPy、Matplotlib和Pandas等众多程序库的开发,Python在科学计算和数据分析领域占据着越来越重要的地位。在大多数数据任务上,Python的运行效率已经可以媲美C/C++语言。2016年2月11日,科学家宣布:人类在去年9月首次直接探测到了引力波!引力波高峰只持续了四分之一秒,同时仪器接收了大量干扰噪声, 需要处理的数据量以TB计,如图1-3所示。其中,Python的GWPY模块提供专业的数据分析支持。
1.2.4 R
R语言是一种为统计计算和图形显示而设计的语言环境,是贝尔实验室(Bell Laboratory)的Rick Becker、John Chambers和Allan Wilks开发的S语言的一种实现,包含一系列统计与图形显示工具,如图1-4所示。它是由一个庞大且活跃的全球性研究型社区维护,主要包括核心的标准包和各个专业领域的第三方包,提供丰富的统计分析和数据挖掘功能。
R语言至少拥有以下优势:①方便地从各种类型的数据源中获取数据;②高可拓展性;③出色的统计计算功能;④顶尖水准的制图功能;⑤不断贡献强大功能的开源社区。它与Python同属数据挖掘主流编程语言,而从功能与代码风格的角度来评价,R与MATLAB是最像的。