汪泽宇
(三亚学院 海南 三亚 572022)
随着大数据等新兴技术的出现,人们生活的各个方面都受到了影响。通过大数据技术可以轻松实现数据的特征分析,为个性化推荐服务提供技术支持。在目前的导航领域、人工智能领域、交通管理领域等多个不同领域中,大数据技术都发挥着出色的作用。比如通过大数据对比技术,交通管理部门就可以根据车主的驾驶行为分辨出哪些车主属于饮酒驾驶,这种精准化的分辨方式可以很大程度上提高执行的有效率,减少因酒驾、醉驾而引发的交通意外情况,从而保护了人民的财产、人身安全。
随着数据量的增长,大数据时代正式来临,在大数据时代中最重要的资源就是数据,它已经由简单的处理对象演化为了一种基础性资源,而大数据计算就是对这种资源的有效利用。并行计算在大数据中技术优势在于计算的并发性,高并发性使得数据处理更加快速,可同时处理的数据量也得到提高。
大数据其实包含很多概念,可以将达到一定数量级的数据体称为大数据,也可以将数据处理方式称为大数据,总之大数据在业界没有形成统一的定义,人们日常所接触到的大数据也是比较模糊的,是多类技术的组合。
大数据的特征十分明显,首先,数据体量大,大数据是在数据爆炸时代提出的新理论,本身“大数据”三个字就说明了这一特点。其次,数据类型复杂、数据价值密度低,大数据的计算就是在许多类型复杂的数据中寻找有特征、有价值的数据,所以以上两点也是大数据的基本特点。面对如此庞大的数据量,大数据必须有一个快速处理数据的解决方案,否则处理时的时间成本过高,数据便失去了原有的价值。大数据技术想要获得更加准确的数据特征就必须要处理足够多的数据量。数据类型复杂和价值密度低也是大数据的基本特征之一,由于大数据本身的数量级十分庞大,其中所包含的数据类型十分复杂,很多数据都是无理化的无用数据或者重复数据,想要在大量的数据中找到有用的信息,就需要进行数据处理和数据挖掘。
大数据挖掘有非常重要的应用价值,最常见的是在电商领域的应用。通过数据挖掘可以获得商品的评价特征,从而确定商品的使用人群和目标客户。另一方面,通过数据挖掘也可以实现商品广告的精准化推送,实现定向广告和智能推荐的宣传模式[1]。在互联网中,每一个网民都有独特的用网特征,大数据挖掘就是发现这种特征数据并进行分析,使其变成一种可用资源。大数据处理的一般流程分为用户使用、数据解释、数据分析、数据抽取集成和数据准备五个步骤。
大数据挖掘的应用十分广泛,可以为很多商业决策提供参考,但是在某个产品的市场分析领域,大数据挖掘技术可以比较准确地找出商品的潜在客户,同时也可以分析商品宣传的实际效果,相对于看广告转化率这一固定方法,大数据挖掘技术有更高的容错率,可以发现更多的意向客户和潜在客户。
通过并行计算来实现并行数据处理,通常使用Hadoop平台MapReduce工具。并行计算与普通计算最大的区别是允许一组数据同时执行计算,在非并行计算方式中,一组数据计算的执行是顺序式的,而并行计算可以将一个计算任务拆分成多个子任务同时进行,并行计算适用于大型且复杂的计算问题。表面看起来并行计算和多线程差不多,但是两者之间又存在区别,并行计算还与分布式计算有关联,分布式计算可以在一台计算机上进行也可以在多台计算机上同步进行,这些计算机只需要通过一定的网络协议进行连接即可[2]。
MapReduce是Hadoop计算平台的核心部分,通过MapReduce可以方便地实现并行数据挖掘。MapReduce模型属于一种简化的分布式程序设计,在处理大量数据的时候非常有优势,其基本的工作原理就是将要计算的数据集拆分之后自动分布到一个计算机集群中去进行并发运算,这些由普通计算机组成的计算机集群同时进行演算工作,最后将结果进行整理,并行计算模型可以节省大量的时间。MapReduce在执行操作时,会按照创建挖掘任务、设置数据头文件和算法参数、启动任务、结果展示这几个步骤依次完成,其中设置数据头文件和算法参数这一步骤中,Map操作将数据一对一的映射为另外的一组数据,Reduce则是对数据进行规约,通过函数完成规则的指定。
通过并行计算来完成挖掘算法,最主要的目的是利用并行计算的特性来减少数据挖掘执行所花费的时间,当通过平台下发一个数据挖掘任务时,平台会分配给这个任务一些执行ID,得到ID的任务会进入到任务执行队列中,在检查了任务信息、计算作业的输入分片、分局集群感知后,将任务交由JobTracker去执行。TaskTracker在接收到分配的任务之后,会采用对应的分类算法对任务进行特征分析,得出分类分析的模型之后就代表整个任务已经执行完毕,分类模型是由计算得出的,这一过程使用的是并行计算模式。客户端在收到任务已经执行完毕的信息之后,就会将接收到的分类模型以可视化数据的形式展示给用户。
并行分类算法最常使用的解决方案是决策树,决策树是一个分类器,可以对数据进行划分。决策树实现所有的算法有很多种,这些算法各有各自的优势,所以适用的场景也存在差异,实际的算法选择要根据数据挖掘任务的特征来灵活选用。以SLIO算法为例,SLIO分类器是可以处理连续和离散特征决策树,其主要特点是通过预排序技术来有效减少计算连续属性所带来的代价,这一过程发生在树的构建环节[3]。
聚类算法具有自我学习功能,相当于一个无监督的环境中仍然可以实现自我学习。聚类自救的基本原理是寻找一个数据集中的特征,并根据特征将拥有相同特征的数据聚集在一起,通过聚类算法将数据库中数据进行划分,得到子数据集都是具有一定意义的,并且去除了无理化数据。子类的数据一般都有一种或多种共同特征,甚至是子类的数据都是相同、相近的,较为典型的聚类算法有并行K-均值算法和K-最近邻算法。
K-均值算法被认为是非常简单而有效地统计算法,其基本实现步骤是选择一个K值,用以确定簇的总数,总数确定好之后在中间任一位置选定K个样本为中心点,所有的数据计算都是围绕这些中心点进行,除去K个样本中心点之外,其他样本数据都使用简单的欧式距离进行样本赋予,直到新的平均值等于上次迭代的平均值时被终止。
K-最近邻算法是基于类比学习的分类算法,在理论上这种方法比较成熟,且执行起来的可靠性也比较高,被看作是最简单的机器学习算法。在数据特征空间中,当样本附近的K个样本满足某个分类的归属关系,这个样本就会被认为是属于此分类的。在K-最近邻算法中,K值的选择是非常重要的,K值的选择会直接影响到整个算法的结果,K值过小和过大都不可以,比如当K值过小的时候,就意味着只有非常相邻的几个样本会被纳入到结果计算之中,如果这几个样本恰好都不具备某一分类的特征,那么这个样本就无法被认为是属于这一分类,这显然会导致计算结果的不确定性。但是如果当K值过大时,整个样本区间也会被放大,所以通常会用交叉算法得出一个最优解作为K值[4]。
在民用领域中,数据挖掘的实践意义越来越被看重,不管是在科学研究领域还是在商业决策方面,数据挖掘技术都有着不可替代的价值。并行计算与数据挖掘结合而实现的并行数据挖掘技术,不仅能节约大量的计算时间成本,还能让数据挖掘所能处理的数据量级得到提升,具有深远的社会意义和经济意义,本文正是基于数据挖掘和并行计算理论的研究,提出了并行分类算法和并行聚类算法,希望能为并行数据挖掘技术提供一定的参考价值。