基于机器学习的数据挖掘和预测算法

(整期优先)网络出版时间:2023-10-18
/ 2

基于机器学习的数据挖掘和预测算法

麻天 郎宁 史腾飞 李威  张奔

北方自动控制技术研究所 山西太原  030006

摘要:信息技术的快速发展使我们进入了大数据时代,而知识、技术、人才和资金等的时空交换加速,使得城市生产与居民活动范围持续扩大,类型更加复杂,并促进了产业重构和空间重组,进而改变着区域和城市的空间格局。在此背景下,大数据在城市规划实践和研究中也得到越来越多的应用。

关键词:云计算IaaS;大数据技术;机器学习

前言:机器学习研究机器如何模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能.它是人工智能的核心,是使机器获取智能的根本途径.具体地,机器学习是通过各种算法(与学习任务相关)从数据中学习如何完成特定的任务,这个过程称为训练,然后用学到的知识(规律、规则或模型)对真实世界中的事件做出决策或预测。

  1. 大数据机器学习系统的特征

大数据机器学习系统既不是大数据处理技术问题也不是机器学习算法研究问题,它应该是一个结合大数据和机器学习技术的交叉系统问题。大数据机器学习系统应该继续研究机器学习算法本身,即通过对大量数据的准备、分析和处理得到更加健壮、更加准确的机器学习模型。由于在大数据机器学习系统中需要对大量的数据进行处理,而传统的串行化处理方法难以在有限的时间内完成机器学习的任务,限制了大数据机器学习系统的使用效率和应用前景。因此大数据机器学习系统还应该在分布式、并行化等方面进行研究,从而建立一个大规模分布式、并行化的机器学习系统。一个成功的大数据机器学习系统应该具有一些基本的技术特征:首先它需要考虑训练数据集的大小,如何提取相关数据集的特征,在一个系统化的平台上训练机器学习的算法;其次它应该提供相关的训练模型,保证训练模型的健壮性,并对模型中的参数和超参进行有效管理;最后为了更好地拥有系统的开发性和广泛的应用能力,它应该提供对底层系统的抽象,以实现对底层通用大数据处理引擎的支持。大数据机器学习系统平台仅仅提供给用户透明的机器学习模型和算法,而底层的计算任务则由底层分布式系统负责完成。

2.典型大数据学习方法和系统介绍

2.1基于特定平台的定制式并行化机器学习算法与算法库

随着HadOOPMaPReduCe大数据并行计算与编程平台的出现和成熟应用,Hadoop和Spark已经成为目前大数据分析处理的主流平台。为了解决大规模机器学习问题,有大量的研究工作致力于基于HadoopMapReduce和Spark以及传统的MPI并行计算框架,完成各种并行化机器学习和数据挖掘算法的设计。在诸如TPDS、JPDC、IPDPS、ICPP、ICPADS、IEEEBigData等大数据和分布并行计算领域的知名期刊和国际会议上,这些并行化算法研究工作不胜枚举。由于需要同时顾及上层机器学习算法设计和底层分布并行化大数据处理系统层细节,总体而言,基于上述不同的并行化编程方法和平台进行并行化机器学习算法设讹仍属于一种专业性较强、技术要求较高、过程较为繁琐的工作,难以为缺少分布式和并行计算知识背景的普通程序员使用。为了让普通数据分析程序员能够直接使用并行化机器学习算法,目前普遍的一种做法是,在不同的并行化计算平台上,由专业的机器学习算法设计者实现并行化机器学习算法,提供一个机器学习和数据挖掘-T具包以供一般的数据分析和应用开发程序员直接使用,如HadooD下的Mahouts以及Spark环境下的MLlib。M5hout的主要任务是设计并提供一些基于MapReduce的可扩展的机器学习领域经典算法库,包括聚类、分类、推荐过滤、频繁项集挖掘等。这些并行化算法都是基于HadoopMapNeduce平台完成的,用户可直接调用Mahout算法库实现好的算法。然而,Mahout提供的并行化机器学习算法数量有限,而且作为标准的软件包,其所提供的算法几乎都是标准的,在算法精度和性能上不一定能满足用户的需要。进一步,MapReduce的设计目标是解决数据密集但计算逻辑相对简单的批处理问题。然而,大多数机器学习算法的计算流程都比较复杂,模型的训练过程往往需要多次迭代计算(如梯度下降算法)、有中间数据集需要共享等。MapReduce模型处理这类问题时,额外的调度和初始化开销导致其处理性能偏低。为了克服MapReduce在计算性能上的缺陷,不断地有新的并行化计算模型和框架出现,UCBerkeleyAMP实验室推出的、目前已成为APache开源项目的Spark系统是目前最有影响力的大数据处理平台之一。SPark使用基于内存计算的并行化计算模型RDD(resillentdistributeddataset)112l,提供了一个强大的分布式内存并行计算引擎,实现了优异的计算性能,同时还保持与Hadoop平台在底层分布式数据存储上的兼容性。在Spark执行引擎上,AMP实验室实现了很多机器学习算法,并逐步整理成Spark下的一个机器学习算法库项目MLlib。MLlib目前也包含一些矩阵操作,并希望基于矩阵的表示设计开发一些统计包和机器学习算法库。为了加速上层计算,MLlib底层通过Breeze使用了BLAS(basiclinearalgebraSLlbprogram)单机的矩阵函数库。BLAS是很多更高层的数学函数库和数学编程语言(如LAPACK和MATLAB等)的基本构成单元。BLAS和LAPACK是当下普遍使用的线性代数函数库,主要定义了一些线性代数中常用的运算操作和方程求解、矩阵分解的函数。此外,基于MLlib的工作基础,UCBerkeley还计划研发MLBasel91项目,该项目增加了机器学习模型自动选择和参数自动优化等功能,提供了以目标为导向的高层机器学习方法接口。提供机器学习算法库在一定程度上减轻了程序员进行机器学习算法设计的负担。但即使如此,程序员编写程序时仍然需要熟悉具体的并行编程计算模型和平台,而且由于实际数据分析应用的需求不同,很多时候工具包所提供的通用算法在学习精度和计算性能上可能不能满足需求,需要程序员定制和改进某个并行化机器学习算法或者开发新的算法,这对普通数据分析程序员仍然是很大的挑战。

2.2结合传统数据分析平台的大数据机器学习系统

虽然有了基于大数据处理平台的机器学习算法设计方法,能够较好地解决一体化的大数据存储、计算以及并行化算法设计问题,但仅有机器学习系统仍然不能很好地解决各个平台对终端用户存在的可编程性和易用性不够的问题。为此,还需要进一步研究解决这些问题。从可编程性和易用性角度来说,对于行业数据分析师,最熟悉使用的分析语言和环境通常是R、Python、MATLAB等系统。R是目前在数据分析应用领域最广为使用的数据分析、统计计算及制图的开源软件系统,提供了大量的专业模块和实用工具。为了尽可能缩/I\R语言环境与现有大数据平台间的鸿沟,工业界和研究界已经尝试在R中利用分布式并行计算引擎来处理大数据。最早的工作和系统RHadoop6,是由RevolutionAnalytics发起的一个开源项目,其目标是将统计语言R与Hadoop结合起来,目前该项目包括3个Rpackage(包),分别为支持用R语言编写MapReduce应用的rmr、用于R语言访问HDFS的rhdfs以及用于R语言访问HBase的rhbase。其中,Hadoop主要用来存储和处理底层的海量数据,用R语言替代Java语言完成MapReduce算法的设计实现。类似地,UCBerkeleyAMP实验室在2014年1月也推出了一个称为SparkR的项目70SparkR也是作为一个R的扩展包,为R用户提供一个轻量级的、在R环境里使用SparkRDDAPI编写程序的接口。它允许用户在R的shell环境里交互式地向Spark集群提交运行作业。然而,目前的RHadoop和SparkR都还存在一个同样的问题:仍要求用户熟悉MapReduce或SparkRDD的编程框架和程序结构,然后将自己的MapReduCe或Spark程序实现到基于R的编程接口上,这和在Hadoop或Spark上写应用程序没有太大的区别,只是编程接口用R语言封装了一下。此外,这些工作都是基于单一平台,无法解决跨平台统一大数据机器学习算法设计的问题。

3.结束语:

综上所述,大数据机器学习不仅是一个单纯的机器学习问题,更是一个大规模的复杂系统问题;是一个同时涉及机器学习和大数据处理两个领域的交叉研究课题。要实现有效的大数据机器学习处理,需要构建一个能同时支持机器学习算法设计和大规模数据处理的一体化大数据机器学习系统。

参考文献:

[1]黄宜华.大数据机器学习系统研究进展[J].大数据,2015,1(1):35-54.

[2]邹永强.Mariana—腾讯深度学习平台的进展与应用[C].2014年中国大数据技术大会,北京,2014

[3]中国计算机学会大数据专家委员会2015年中国大数据发展趋势预测中国计算机学会通讯,2015,11(1):48-52

[4]中国计算机学会大数据专家委员会.2014年中国大数据技术与产业发展白皮书2014中国大数据技术大会,北京,中国,2014