社会信息化水平的不断提高和数据库应用的日益普及,使人类积累的数据量正在以指数级增长。自20世纪80年代数据挖掘技术逐步发展以来,人们迫切希望能对海量数据进行更加深入的分析,发现并提取隐藏在其中的有价值信息,以便更好地利用这些数据。
数据挖掘(Data Mining,DM),是从大量的、有噪声的、不完全的、模糊的和随机的数据中提取出隐藏在其中的、人们事先不知道的、具有潜在利用价值的信息和知识的过程。
数据挖掘是一门交叉学科,涉及数据库技术、人工智能、数理统计、机器学习、模式识别、高性能计算、知识工程、神经网络、信息检索、信息可视化等众多领域,其中数据库技术、机器学习、统计学对数据挖掘的影响最大。对数据挖掘而言,数据库为其提供数据管理技术,机器学习和统计学为其提供数据分析技术。数据挖掘所采用的算法,一部分是机器学习的理论和方法,如神经网络、决策树等:另一部分是基于统计学习理论,如支持向量机、分类回归树和关联分析等。
大数据挖掘是从体量巨大、类型多样、动态快速流转及价值密度低的大数据中挖掘有巨大潜在价值的信息和知识,并以服务的形式提供给用户。与传统数据挖掘相比,大数据挖掘同样是以挖掘有价值的信息和知识为目的,然而就技术发展背景、所面临的数据环境及挖掘的广度与深度而言,二者存在很大差异。
传统数据挖掘在数据库、数据仓库及互联网发展等背景下,实现了从独立、横向到纵向数据挖掘的发展。在大数据背景下,大数据挖掘则得益于云计算、物联网、移动智能终端等技术的产生与发展,借助先进技术与系统的整合和改进,实现海量数据的挖掘。
传统数据挖掘的数据来源主要是某个特定范围的管理信息系统的被动数据加少数的Web信息系统中由用户产生的主动数据,数据类型以结构化数据为主,外加少量的半结构化或非结构化数据。相比传统数据挖掘,大数据挖掘的数据来源更广、体量巨大、类型更加复杂;采集方式不再局限于被动,采集范围更为全面,吞吐量高,处理实时且快速,但由于对数据的精确度要求不高致使数据的冗余度和不确性较高。
大数据挖掘与传统数据挖掘处理分析数据的广度、深度也存在差异。在复杂类型、结构及模式的数据交错融合时,大数据挖掘能利用云平台集成多种计算模式与挖掘算法对庞杂的数据进行实时处理与多维分析,其处理数据的范围更广,挖掘分析更加全面深入。
总体而言,大数据挖掘是在大数据环境下,以大数据为来源,依托云计算及大数据相关技术,利用挖掘工具发现潜在的有价值信息和知识,并将结果以云服务的方式提供给用户。
1999年,欧盟创建了跨行业的数据挖掘标准流程(Cross Industry Standard Process for Data Mining,CRISP-DM),提供了一个数据挖掘生命周期的全面评述,包括业务理解、数据理解、数据准备、数据建模、模型评估与部署6个阶段。
第1阶段:业务理解,主要任务是深刻理解业务需求,在需求的基础上制定数据挖掘的目标和实现目标的计划。
第2阶段:数据理解,主要是收集数据、熟悉数据、识别数据的质量问题,并探索引起兴趣的子集。
第3阶段:数据准备,从收集来的数据集中选择必要的属性(因素),并按关联关系将它们连接成一个数据集,然后进行数据清洗,即空值和异常值处理、离群值剔除和数据标准化等。
第4阶段:数据建模,选择应用不同的数据挖掘技术,并确定模型的最佳参数。如果初步分析发现模型的效果不太满意,要跳回数据准备阶段,甚至数据理解阶段。
第5阶段:模型评估,对建立的模型进行可靠性评估和合理性解释,未经过评估的模型不能直接应用。彻底地评估模型,检查构造模型的步骤,确保模型可以完成业务目标。如果评估结果没有达到预想的业务目标,要跳回数据理解阶段。
第6阶段:部署,根据评估后认为合理的模型,制定将其应用于实际工作的策略,形成应用部署报告。
数据挖掘是一个反复探索的过程,只有将数据挖掘工具提供的技术和实施经验与企业的业务逻辑和需求紧密结合,并在实施过程中不断地磨合,才能取得好的效果。由于数据挖掘技术在各领域产生的巨大商业价值,一些著名的大学和国际知名公司纷纷投入数据挖掘工具的研发中,开发出很多优秀的数据挖掘工具。数据挖掘工具可分为商用工具和开源工具两类。下面简单介绍几种常用的数据挖掘建模工具。
SAS Enterprise Miner是一种通用的数据挖掘工具,是按照SAS定义的数据挖掘SEMMA方法,即抽样(Sample)、探索(Explore)、修改(Modify)、建模(Model)、评价(Assess)的方式进行数据挖掘。它把统计分析系统和图形用户界面(GUI)集成起来,为用户提供了用于建模的图形化流程处理环境,可利用具有明确代表意义的图形化模块将数据挖掘的工具单元组成一个处理流程图,并以此来组织数据挖掘过程。它支持并提供一组常用的数据挖掘算法,包括决策树、神经网络、回归、关联、聚类等,还支持文本挖掘。
Clementine是SPSS公司开发的数据挖掘工具,支持整个数据挖掘过程,即从数据获取、转化、建模、评估到部署的全部过程,还支持数据挖掘的行业标准CISP-DM。Clementine结合了多种图形使用接口的分析技术,不仅具有分析功能,还能提供可使用的、简单的、可视化程序环境。Clementine的资料读取能力强大,支持多种数据源的读取,而且为用户提供了大量的人工智能、统计分析的模型(如神经网络、聚类分析、关联分析、因子分析等)。
Mahout是Apache Software Foundation(ASF)旗下的一个开源项目,在机器学习领域提供了一些可扩展的经典算法的实现和数据挖掘的程序库。它可以实现很多功能,包括聚类、分类、推荐过滤、频繁子项挖掘等。Mahout的算法既可以在单机上运行,也可以在Hadoop平台上运行。
Spark是一个开源集群运算框架,最初是由加州大学伯克利分校AMPLab开发的。MLlib(Machine Learning lib)是Spark的一个可扩展的机器学习库,由通用的学习算法和工具组成,包括分类、线性回归、聚类、协同过滤,梯度下降以及底层优化原语。MLlib是专为集群上的并行运行而设计的,只包含能够在集群上运行良好的并行算法,因此MLlib中的每个算法都适用于大规模数据集。
除了商业数据挖掘软件外,市场上也出现了一批优秀的开源数据挖掘软件,它们在数据挖掘方面同样具有自己的特点和优势。TipDM开源数据挖掘建模平台是一个基于Python引擎搭建、用于数据挖掘建模的开源平台,它采用B/S结构,不需要用户下载客户端,可通过浏览器直接进行访问。平台支持数据挖掘流程所需的主要过程:数据探索(相关性分析、主成分分析、周期性分析等);数据预处理(特征构造、记录选择、缺失值处理等);模型构建(聚类模型、分类模型、回归模型等);模型评价(R-Squared、混淆矩阵、ROC曲线等)。用户可在没有Python编程基础的情况下,通过拖曳的方式进行操作,将数据输入输出、数据预处理、模型构建、模型评估等环节通过流程化的方式进行连接,以达到数据分析挖掘的目的。