周 蕾
(江苏联合职业技术学院泰州机电分院 江苏泰州 225300)
对分布式数据挖掘解决方案的思考
周 蕾
(江苏联合职业技术学院泰州机电分院 江苏泰州 225300)
传统数据挖掘解决方案计算能力有限,对数据挖掘算法迭代复杂性,难以发现数据中存在的关系和规则,不能根据现有数据预测未来发展趋势。分布式数据挖掘工具的出现则是解决非关系型数据库或者非结构化模式的数据库系统最佳选择。通过对传统数据挖掘解决方案和分布式数据挖掘解决方案的综述和功能分析,对数据挖掘解决方案进行了思考:注重数据挖掘平台,避免误入大数据的陷阱,同时分析大数据出现的新问题,希望借此引起人们的重视。
数据挖掘; 大数据; 平台; 系统工具
对大量的数据进行分析处理的庞大工作量,其计算效率和效果精准程度等都会影响到用户的工作效率和实际工作判断。当数据量规模不断增大,维度升高时,性能就会急剧下降。而现实生活中的数据大部分又都属于规模比较大、维度比较高的数据集。加之目前的许多算法处于理论上,经常处于某种假设之下,比如聚类能很好地被分离,没有突出的孤立点等,但是,现实数据通常很复杂,噪声很大。因此,提高处理现实数据的能力,正确选择数据解决方案成为当务之急。同时,对于结果也需要在客观分析的基础上进行综合分析才能达到最终目的。分布式数据挖掘解决方案是伴随着分布式计算技术、云计算技术、Hadoop生态圈、内存数据库、非结构化数据库等新技术的涌现和对大数据挖掘的需求而产生的。主要代表性有:Apache推出的基于Hadoop的Mahout[1]、加利福尼亚大学伯克利分校AMP实验室开发的基于Spark的MLBase。
Mahout是一个基于Hadoop机器学习和数据挖掘的分布式计算框架,这种基于Hadoop的分布式数据挖掘平台,提供了具备可扩充能力的机器学习类库。通过和Apache Hadoop分布式框架结合,Mahout能使用分布式系统来实现高性能计算。这个跨学科产品,能为数据分析人员解决大数据时代出现的问题,为算法工程师提供基础的算法库,并且能够帮助开发人员更加方便快捷地创建智能应用程序,有效地扩展到云中。Mahout数据挖掘工具拥有Mahout推荐系统、Mahout聚类系统、Mahout分类系统数据挖掘[2],要运用Mahout的分类器,必须先训练模式,然后使用该模式对新内容或正规内容进行分类。用户可以根据实际具体需求选择使用。不过,在统计认知上可能会存在意想不到的种种陷阱,这些陷阱不会随着数据量的增大而自动填平。大数据中常常隐藏着小数据的问题,在使用工具采集中会出现一些统计上的偏差。如同Google公司的流感预测连年失灵,原因在于搜索推荐等人为干预造成统计误差[3]。实践工作中要将逻辑演绎和归纳相结合、大数据方法与小数据方法相结合等,运用合适的软件工具在合理的时间内采集、存储、处理数据集。此外,对于一个优秀的推荐系统需要具备高质量和高数量的数据、高效存储的数据结构以及高效的数学运算库、优秀的算法架构和调参技术、优秀的架构设计,防止数据的多次拷贝,并且利于数据的更新和一致性,形成优秀的用户体验和人机交互设计。
MLBase是基于Spark的分布式数据挖掘解决方案,它包括ML Optimizer、MLI、Mllib和Spark四个组成部分[4],它能更好地支持迭代计算,其核心部分包括了一个优化器ML Optimizer,它把数据拆分成若干份,对每一份使用不同的算法和参数来运算出结果,看哪一种搭配方式得到的初步最优的结果。从MLI、Mllib到ML Optimizer能够支持不同程度的算法用户使用不同程度的接口。MLBase设计架构的最大优势是不仅考虑分布式的数据挖掘,还考虑让数据挖掘的门槛更低,让一些可能并不了解数据挖掘的用户也能使用MLBase工具来处理自己的数据。
MLBase处理数据的整个透明过程的逻辑是:用户输入类Pig的任务,比如做分类doClassify(X,Y),或者做协同过滤doCollabFilter(X,Y),还可以做一些图计算之类的任务。这些任务首先会经过解析器处理,然后交给逻辑学习计划LLP(Logical Learning Plan)组件。LLP是一个学习选择过程中完成ML算法选择、特征提取方法选择和参数选择。LLP完成后,交给优化器。它是MLBase的核心,它把数据拆分成若干份,对每一份使用不同的算法和参数,运算出结果,看哪一种搭配方式得到的结果最优。优化器做完这些事之后就交给物理学习计划(PLP)组件。PLP会执行之前选好的算法方案,把结果计算出来并返回到学习模型。该流程从Task、Parser、LLP、Optimizer、PLP、Execute、Result/Model,即先从逻辑上,在已有的算法里选几个适合场景的组合,让优化器做一遍,再把最优的组合交给实际执行的部分去执行,返回结果。此外,LLP内部实现的算法可以扩充,MLBase的可扩展性让ML专家增加新的ML算法到MLBase里去,这样可以基于众包的概念来发展和壮大其算法库。
3.1 数据挖掘平台很重要
在算法选型和数据验证阶段,高效的数据挖掘单机平台尤为重要。选择Python作为数据挖掘平台的优势是语法清晰、易于操作纯文本文件、使用广泛,存在大量的开发文档。由于很多数据挖掘项目大多以Python作首选,也促使Python相关的库越来越丰富庞大,并且有利于找到有效的数据源。Python在各个领域存在大量的模块库,能够缩短开发周期;Python提供的诸如强大的正则表达工函数以及Web数据提取接口,能够有效提高处理源数据的效率;Python开发环境集成了许多诸多列表、元组、字典、集合、队列等高级数据类型,使得编程人员在实现数学概念时比较方便;Python还支持诸如面向对象编程、面向过程编程以及函数式编程等诸多编程范式。Python的SciPy和NumPy模块为高效的机器学习算法实现提供了基础。Matplotlib为Python提供了强大的绘图功能。
与MATLAB等工具相比,Python作为支持矩阵运算的强大免费数据挖掘工具有着良好的性能、低廉的成本以及它们所不具备的活跃的开发源社区支持。与Java和C等强类型编程工具相比,Python语言清晰简练,可以将程序员从代码中解放出来,专注于模型和数据。不过,Python最大缺陷是性能问题,只是它可以通过调用C模块部分来解决。可以在实际运用中先使用Python验证算法,然后在后续过程中再使用C代码替换Python。
3.2 避免误入大数据的陷阱
不论采用何种数据挖掘工具,大数据主要难点不是数据量大,而是数据类型多样。现有数据库软件解决不了非结构化数据的问题,采用的数据往往会出现数据质量不高、有效性不强等问题。因此,要将数据融合、数据格式标准化和数据互操作。因此,大数据挖掘不要追求数据规模大,抛弃小数据;避免技术驱动优先,要关注构建大平台的成本,避免能源消耗大,资金投入多等,防止不实用,造成资源浪费。开始数据要精、发展过程要稳、近期期望不能太高,但目标规划要远大。
3.3 面对大数据出现的新问题
3.3.1 数据复杂难分析
面对大数据出现的新问题,要有较好心理准备,良好的解决方案,避免在数据挖掘中对关联规则、回归、分类、聚类、预测、诊断等出现严重偏离,从而导致决策失误。由于大数据涉及复杂的类型、复杂的结构和复杂的模式,数据本身具有很高的复杂性,加之对图文检索、主题发现、语义分析、情感分析等数据的分析工作难度又大。同时,人们对大数据背后的物理意义缺乏理解、对数据之间的关联规律认识不足、对大数据的复杂性和计算复杂性的内在联系也缺少足够的理解,以及对大数据相关技术领域知识的贫乏等都严重制约了人们对大数据模型的发现和高效计算方法的设计。包括当前比较出色的数据挖掘的分布工具也是如此,数据挖掘在于机器,操作管理和分析却在于人为。尤其是面对PB级数据时,即使只有线性复杂性的计算也难以实现,而且,由于数据分布的稀疏性,可能做了许多无效计算。
3.3.2 从快到多失数据
与传统科学计算有所不同的是,传统数据挖掘是针对一定规模的问题,如何算得快,而在大数据应用中,尤其是流式计算中,往往对数据处理和分析的时间、空间有时效限制,比如网络服务如果回应时间超过几秒甚至是几毫秒,就会丢失许多用户。大数据应用是在给定的时间、空间限制下如何算得多。从算得快到算得多,考虑计算复杂性的思维逻辑有很大区别转变。
3.3.3 数据搬运待提升
现在越来越多的数据挖掘需要从数据围绕着处理器转变为处理能力围着数据转,关注的重点不是数据加工,而是数据搬运,而且系统结构设计的出发点从重视单个任务的完成时间转变到提高系统吞吐效率和并行处理能力,并发执行的规模要有巨大提升突破。
无论大数据或是小数据,数据挖掘工具是解决人们工作或生活中出现的问题而诞生的。检验一切技术的唯一标准是应用。数据挖掘的优劣评判标准应以实践应用为准则,能为实用为需,实用优化实践之中才是最佳。在诸多数据挖掘解决方案中,随着人们使用范围的拓展,许多数据挖掘系统工具也会越来越庞大,功能也会越来越多,人们在不断学习运用中,这些系统工具也在不断改进升级。但是,无论是采用Mahout或是MLBase何种工具,在实际应用或拓展中,只有根据实际需求内容,选择最佳的搭配方式,才能达到最优使用效果。在特殊情况下,还需要配助其他算法进行数据规整分析。用户需要不断提升数掘挖掘的实用水平,还要对工具之外业务水平有所了解,才能在数据挖掘中产生最好的效能。
[1] (美)维贾伊·阿涅斯瓦兰. 颠覆大数据分析: 基于Storm、Spark等Hadoop替代技术的实时应用[M]. 吴京润, 黄经业, 译. 北京: 电子工业出版社, 2015: 11-36.
[2] 张明辉. 基于Hadoop的数据挖掘算法的分析与研究[D]. 昆明: 昆明理工大学, 2012: 24-26
[3] 李国杰. 发展大数据不能抛弃“小数据”[N]. 中国科学报, 2016-03-29(5).
[4] 张俊林. 大数据日知录: 架构与算法[M]. 北京: 电子工业出版社, 2014: 20-28.
[责任编辑:李娟]
Reflection on Solution of Distributed Data Mining
ZHOU Lei
(Jiangsu Union Technical Institute Taizhou Electrical Branch, Taizhou 225300, China)
The traditional data mining is limited in computing power, such as the data mining algorithm iteration complexity, the difficulty in finding relationship between data and rules, and the disability in predicting the future development trend based on existing data. Distributed data mining tools appear to be the best choice for the database system which can solve the non relational database or the non structural model. The review and functional analysis on the traditional data mining solution and distributed data mining lead to the use of data mining solution using, the focus on data mining platform, and avoiding straying into the trap of big data, and facing new problems emerged in large data, which is to draw people's attention.Key words:data mining; big data; platform; system tools
2016-07-08
周 蕾(1978-),女,讲师,主要研究方向:计算机网络技术
TP 311.13
A
1672-2434(2016)05-0022-03