随着大数据时代的来临,全球数据量极速增长,而数据分析方法的发展却相对落后。一方面,人们希望在已有的大量数据的基础上进行科学研究、商业决策、企业管理;另一方面,传统的数据分析工具很难令人满意地对数据进行深层次的处理。数据挖掘,或许能够在一定程度上改善这一困境。

数据挖掘是从海量数据中提取知识的信息技术。目前,数据挖掘在国际国内都受到了前所未有的重视,并广泛应用于各个领域,如地理学、地 质学、生物医学等。数据挖掘使数据处理技术进入了一个更高级的阶段,不仅能对过去的数据进行查询和遍历,还能够找出以往数据间潜在的联系,促进信息的传播。

一、数据挖掘技术概述

1. 数据挖掘的定义

数据挖掘是一个从数据中提取模式的过程,是一个受多个学科影响的交叉领域,包括数据库系统、统计学、机器学 习、可视化和信息科学等。数据挖掘反复使用多种数据挖掘算法,从观测数据中确定模式或合理模型,是一种决策支持过程。例如通过预测客户的行为,帮助企业的决策者调整市场策略,减少风险,做出正确的决策。

由于传统的事物型工具(如查询工具、报表工具)无法回答事先未定义的综合性问题或跨部门/机构的问题,因此其用 户必须清楚地了解问题的目的。数据挖掘就可以回答事先未加定义的综合性问题或跨部门/机构的问题,挖掘潜在的模式并预测未来的趋势,用户不必提出确切的问题,而且模糊问题更有利于发现未知的事实。

2. 数据挖掘的主要方法和途径

数据挖掘有很多种分类方法,如按发现的知识种类、挖掘的数据库类型、挖掘方法、挖掘途径、所采用的技术等。下面只讨论四个应用比较广泛的方法:

关联规则(Association Rule)

在数据挖掘领域中,关联规则应用最为广泛,是重要的研究方向。表示数据库中一组对象之间某种关联关系的规则,一般来讲,可以用多个参数来描述一个关联规则的属性,常用的有:可信度,支持度,兴趣度,期望可信度,作用度。

离群数据(Outlier)

离群数据就是明显偏离其他数据、不满足数据的一般模式或行为、与存在的其他数据不一致的数据。数据挖掘的大部分研究忽视了离群数据的存在和意义,现有 的方法往往研究如何减少离群数据对正常数据的影响,或仅仅把其当作噪音来对待。这些离群数据可能来源于计算机录入错误、人为错误等,也可能就是数据的真实 反映。

基于案例的推理(case-based reasoning, CBR)

基于案例的推理来源于人类的认知心理活动,它属于类比推理方法。其基本思想是基于人们在问题求解中习惯于过去处理类似问题的经验和获取的知识,在针对 新旧情况的差异作相应的调整,从而得到新问题的解并形成新的案例。CBR方法的应用越来越受到人们的重视,在许多领域都有较好的推广前景,例如,在气象、 环保、地震、农业、医疗、商业、 CAD等领域;CBR也可用在计算机软硬件的生产中,如软件及硬件的故障检测;CBR方法尤其在不易总结出专家知识的领域中,应用越来越普遍,也越来越深 入。

支持向量机(Support Vector Machine,SVM)

支持向量机是近几年发展起来的新型通用的知识发现方法,在分类方面具有良好的性能。SVM是建立在计算学习理论的结构风险最小化原则之上,主要思想是针对两类分类问题在高位空间中寻找一个超平面作为两类的分割,以保证最小的分类错误率。

二、数据挖掘工具

伴随越来越多的软件供应商加入数据挖掘这一行列,使得现有的挖掘工具的性能得到进一步的增强,使用更加便捷,也使得其价格门槛迅速降低,为应用 的普及带来了可能。当然,数据仓库技术的发展同样功不可没。数据仓库是将海量复杂的客户行为数据集中起来建立的一个整合的、结构化的数据模型,是实施数据挖掘的基础,这里不作展开讨论。

1. 数据挖掘工具分类

一般来讲,数据挖掘工具根据其适用的范围分为两类:专用数据挖掘工具和通用数据挖掘工具。专用数据挖掘工具是针对某个特定领域的问题提供解决方案,在涉及算法的时候充分考虑了数据、需求的特殊性,并作了优化;而通用数据挖掘工具不区分具体数据的含义,采用通用的挖掘算法,处理常见的数据类型。

2. 数据挖掘工具的选择

数据挖掘是一个过程,只有将数据挖掘工具提供的技术和实施经验与企业的业务逻辑和需求紧密结合,并在实施的过程中不断的磨合,才能取得成功,因此我们在选择数据挖掘工具的时候,要全面考虑多方面的因素,主要包括以下几点:

数据挖掘的功能和方法

数据挖掘的过程一般包括数据抽样、数据描述和预处理、数据变换、模型的建立、模型评估和发布等。因此,一个好的数据挖掘工具,应该能够为每个步骤提供相应的功能集,即是否可以完成各种数据挖掘的任务,如关联分析、分类分析、序列分析、回归分析、聚类分析、自动预测等。数据挖掘工具还应该能够方便的导出挖掘的模型,从而在以后的应用中使用该模型。

数据挖掘工具的可伸缩性

也就是说解决复杂问题的能力,一个好的数据挖掘工具应该可以处理尽可能大的数据量,可以处理尽可能多的数据类型,可以尽可能高的提高处理的效率,尽可能使处理的结果有效。如果在数据量和挖掘维数增加的情况下,挖掘的时间呈线性增长,那么可以认为该挖掘工具的伸缩性较好。

操作的简易性

一个好的数据挖掘工具应该为用户提供友好的可视化操作界面和图形化报表工具,在进行数据挖掘的过程中应该尽可能提高自动化运行程度。总之是面向广大用户的而不是熟练的专业人员。

数据挖掘工具的可视化

这包括源数据的可视化、挖掘模型的可视化、挖掘过程的可视化、挖掘结果的可视化,可视化的程度、质量和交互的灵活性都将严重影响到数据挖掘系统的使用和解释能力。毕竟人们接受外界信息的80%是通过视觉获得的,自然数据挖掘工具的可视化能力就相当重要。

数据挖掘工具的开放性

即数据挖掘工具与数据库的结合能力。好的数据挖掘工具应该可以连接尽可能多的数据库管理系统和其他的数据资源,应尽可能的与其他工具进行集成; 尽管数据挖掘并不要求一定要在数据库或数据仓库之上进行,但数据挖掘的数据采集、数据清洗、数据变换等等将耗费巨大的时间和资源,因此数据挖掘工具必须要 与数据库紧密结合,减少数据转换的时间,充分利用整个的数据和数据仓库的处理能力,在数据仓库内直接进行数据挖掘,而且开发模型,测试模型,部署模型都要 充分利用数据仓库的处理能力,另外,多个数据挖掘项目可以同时进行。

当然,上述的只是一些通用的参考指标,具体选择挖掘工具时还需要从实际情况出发具体分析。

三、常见商用数据挖掘工具

1. QUEST

QUEST是IBM公司Almaden研究中心开发的一个多任务数据挖掘系统,目的是为新一代决策支持系统的应用开发提供高效的数据开采基本构件。系统具有如下特点:

  • 提供了专门在大型数据库上进行各种开采的功能:关联规则发现、序列模式发现、时间序列聚类、决策树分类、递增式主动开采等。
  • 各种开采算法具有近似线性计算复杂度,可适用于任意大小的数据库。
  • 算法具有找全性,即能将所有满足指定类型的模式全部寻找出来。
  • 为各种发现功能设计了相应的并行算法。

2. MineSet

MineSet是由SGI公司和美国Standford大学联合开发的多任务数据挖掘系统。MineSet集成多种数据挖掘算法和可视化工具,帮助用户直观地、实时地发掘、理解大量数据背后的知识。MineSet有如下特点:

  • MineSet以先进的可视化显示方法闻名于世。
  • 支持多种关系数据库。可以直接从Oracle、Informix、Sybase的表读取数据,也可以通过SQL命令执行查询。
  • 多种数据转换功能。在进行挖掘前,MineSet可以去除不必要的数据项,统计、集合、分组数据,转换数据类型,构造表达式由已有数据项生成新的数据项,对数据采样等。
  • 操作简单、支持国际字符、可以直接发布到Web。

3. DBMiner

DBMiner是加拿大SimonFraser大学开发的一个多任务数据挖掘系统,它的前身是DBLearn。该系统设计的目的是把关系数据库和数据开采集成在一起,以面向属性的多级概念为基础发现各种知识。DBMiner系统具有如下特色:

  • 能完成多种知识的发现:泛化规则、特性规则、关联规则、分类规则、演化知识、偏离知识等。
  • 综合了多种数据开采技术:面向属性的归纳、统计分析、逐级深化发现多级规则、元规则引导发现等方法。
  • 提出了一种交互式的类SQL语言――数据开采查询语言DMQL。
  • 能与关系数据库平滑集成。
  • 实现了基于客户/服务器体系结构的Unix和PC(Windows/NT)版本的系统。

4. Intelligent Miner

由美国IBM公司开发的数据挖掘软件Intelligent Miner是一种分别面向数据库和文本信息进行数据挖掘的软件系列,它包括Intelligent Miner for Data和Intelligent Miner for Text。Intelligent Miner for Data可以挖掘包含在数据库、数据仓库和数据中心中的隐含信息,帮助用户利用传统数据库或普通文件中的结构化数据进行数据挖掘。它已经成功应用于市场分析、诈骗行为监测及客户联系管理等;Intelligent Miner for Text允许企业从文本信息进行数据挖掘,文本数据源可以是文本文件、Web页面、电子邮件、Lotus Notes数据库等等。

5. SAS Enterprise Miner

这是一种在我国企业中得到较广泛采用的数据挖掘工具,比较典型的包括上海宝钢配矿系统应用和铁路部门在春运客运研究中的应用。SAS Enterprise Miner是一种通用的数据挖掘工具,按照”抽样–探索–转换–建模–评估”的方法进行数据挖掘。可以与SAS数据仓库和OLAP集成,实现从提出数据、抓住数据到得到解答的”端到端”知识发现。

6. SPSS Clementine

SPSS Clementine是一个开放式数据挖掘工具,曾两次获得英国政府SMART 创新奖,它不但支持整个数据挖掘流程,从数据获取、转化、建模、评估到最终部署的全部过程,还支持数据挖掘的行业标准CRISP-DM。Clementine的可视化数据挖掘使得”思路”分析成为可能,即将集中精力在要解决的问题本身,而不是局限于完成一些技术性工作(比如编写代码)。提供了多种图形化技术,有助理解数据间的关键性联系,指导用户以最便捷的途径找到问题的最终解决办法。

7. SQL Server 数据挖掘功能

SQL Server包含由微软研究院开发的两种数据挖掘算法:Microsoft决策树和Microsoft聚集。此外,SQL Server 中的数据挖掘支持由第三方开发的算法。

Microsoft决策树算法:该算法基于分类。算法建立一个决策树,用于按照事实数据表中的一些列来预测其他列的值。该算法可以用于判断最倾向于单击特定标题(banner)或从某电子商务网站购买特定商品的个人。

Microsoft聚集算法:该算法将记录组合到可以表示类似的、可预测的特征的聚集中。通常这些特征可能是隐含或非直观的。例如,聚集算法可以用于将潜在汽车买主分组,并创建对应于每个汽车购买群体的营销活动。

SQL Server 在数据挖掘方面提供了丰富的模型、工具以及扩展空间。包括可视化的数据挖掘工具与导航、数据挖掘算法集成、DMX 、XML/A、第三方算法嵌入支持等等。

8. Oracle Data Mining (ODM)

Oracle Data Mining (ODM) 是Oracle 数据库企业版的一个选件,它使公司能够从最大的数据库中高效地提取信息并创建集成的商务智能应用程序。数据分析人员能够发现那些隐藏在数据中的模式和内涵。应用程序开发人员能够在整个机构范围内快速自动提取和分发新的商务智能 ― 预测、模式和发现。

ODM 针对以下数据挖掘问题为 Oracle 数据库提供支持:分类、预测、回归、聚类、关联、属性重要性、特性提取以及序列相似性搜索与分析 (BLAST)。所有的建模、评分和元数据管理操作都是通过 Oracle Data Mining 客户端以及 PL/SQL 或基于 Java 的 API 来访问的,并且完全在关系数据库内部进行。

(附注:以上信息有些过时,仅供参考。这里介绍了26种数据挖掘软件,可供进一步参阅。)

四、开源数据挖掘工具

1. R

R 是用于统计分析和图形化的计算机语言及分析工具。为了保证性能, 其核心计算模块是用C、C++和Fortran编写的。同时,为了便于使用,它提供了一种脚本语言,即R语言。

R语言和贝尔实验室开发的S语言类似。R支持一系列分析技术,包括统计检验、预测建模、数据可视化等等。在CRAN上可以找到众多开源的扩展包。

R软件的首选界面是命令行界面,通过编写脚本来调用分析功能。如果缺乏编程技能,也可使用图形界面,比如使用R CommanderRattle

2. Tanagra

Tanagra 是使用图形界面的数据挖掘软件,采用了类似Windows资源管理器中的树状结构来组织分析组件。Tanagra缺乏高级的可视化能力,但它的强项是统计 分析,提供了众多的有参和无参检验方法。同时它的特征选取方法也很多。

3. Weka

Weka (Waikato Environment for Knowledge Analysis) 可能是名气最大的开源机器学习和数据挖掘软件。高级用户可以通过Java编程和命令行来调用其分析组件。同时,Weka也为普通用户提供了图形化界面,称为Weka KnowledgeFlow Environment和Weka Explorer。和R相比,Weka在统计分析方面较弱,但在机器学习方面要强得多。在Weka论坛可以找到很多扩展包,比如文本挖掘、可视化、网格计算等等。很多其它开源数据挖掘软件也支持调用Weka的分析功能。

4. RapidMiner

RapidMiner,之前叫做YALE (Yet Another Learning Environment) ,是一个给机器学习和数据挖掘分析的试验环境,可用于研究真实世界数据挖掘。它提供了图形化界面,采用了类似Windows资源管理器中的树状结构来组织分析组件,树上每个节点表示不同的运算符(operator)。

YALE中提供了大量的运算符,包括数据处理、变换、探索、建模、评估等各个环节。这些算子由详细的XML 文件记录,并通过RapidMiner图形化用户界面表现出来。

RapidMiner用Java开发,基于Weka来构建,也就是说它可以调用Weka中的各种分析组件。

5. KNIME

KNIME (Konstanz Information Miner) 是一个用户友好的开源数据集成、数据处理、数据分析和数据勘探平台。它使用户能够以可视化的方式创建数据流或数据通道,可选择性地运行部分或全部的分析步骤,并提供后期研究结果、模型 及可交互的视图。 KNIME 其基于 Eclipse 并通过插件的方式来提供更多的功能。通过以插件的文件,用户可以为文件,图片,和时间序列加入处理模块,并可以集成到其它各种各样的开源项目中,比如:R语言,Weka, Chemistry Development Kit, 和 LibSVM。

KNIME 由Java写成,是基于Eclipse开发环境来精心开发的数据挖掘工具。无需安装,方便使用。和YALE一样,KNIME可以扩展使用Weka中的挖掘算法。和YALE不同的是,KNIME采用的是类似数据流(data flow)的方式来建立分析挖掘流程(和SAS EM或SPSS Clementine等商用数据挖掘软件的操作方式类似)。挖掘流程由一系列功能节点(node)组成,每个节点有输入/输出端口(port),用于接收数据或模型、导出结果。

KNIME中每个节点都带有交通信号灯,用于指示该节点的状态(未连接、未配置、缺乏输入数据时为红灯;准备执行为黄灯;执行完毕后为绿灯)。在KNIME中有个特色功能——HiLite,允许用户在节点结果中标记感兴趣的记录,并进一步展开后续探索。

6. Orange

Orange 是类似KNIME和Weka KnowledgeFlow的数据挖掘工具,它的图形环境称为Orange画布(OrangeCanvas),用户可以在画布上放置分析控件 (widget),然后把控件连接起来即可组成挖掘流程。这里的控件和KNIME中的节点是类似的概念。每个控件执行特定的功能,但与KNIME中的节点 不同,KNIME节点的输入输出分为两种类型(模型和数据),而Orange的控件间可以传递多种不同的信号,比如learners, classifiers, evaluation results, distance matrices, dendrograms等等。Orange的控件不象KNIME的节点分得那么细,也就是说要完成同样的分析挖掘任务,在Orange里使用的控件数量可 以比KNIME中的节点数少一些。Orange的好处是使用更简单一些,但缺点是控制能力要比KNIME弱。

除了界面友好易于使用的优点,Orange的强项在于提供了大量可视化方法,可以对数据和模型进行多种图形化展示,并能智能搜索合适的可视化形式,支持对数据的交互式探索。

Orange的弱项在于传统统计分析能力不强,不支持统计检验,报表能力也有限。Orange的底层核心也是采用C++编写,同时允许用户使用Python脚本语言来进行扩展开发(参见http://www.scipy.org)。

7. JHepWork

为科学家、工程师和学生所设计的 jHepWork 是一个免费的开源数据分析框架,其主要是用开源库来创建数据分析环境,并提供了丰富的用户界面,以此来和那些收费的的软件竞争。它主要面向科学计算用的二维和三维图形,并包含用Java实现的数学科学库、随机数及其它的数据挖掘算法。 jHepWork 基于高级的编程语言 Jython,但可以使用Java代码来调用 jHepWork 的数学和图形库。

在以上开源数据挖掘软件中,Weka很有名,但用起来并不方便,界面较为简单;RapidMiner现在流行的势头在上升,但它的操作方式和商用软件差别较大,不支持分析流程图的方式,当包含的运算符比较多的时候就不容易查看了;KNIME和Orange看起来都不错,Orange界面看上去很清爽,但中文支持较弱。推荐使用KNIME,同时安装Weka和R扩展包。

本文根据网络资料编辑整理,主要来源:
http://www.itongji.cn/article/05139102012.html
http://www.douban.com/note/85978762/
http://tech.watchstor.com/storage-systems-115208.htm
http://os.51cto.com/art/201012/238194.htm
http://www.iteye.com/news/4693