文摘
预测在大数据集是一种常见的但复杂的任务,不能使用众所周知的执行参数线性回归。然而,非参数和半参数方法,建立非线性数据模型,使预测的计算密集型和缺乏足够的可扩展性,以应对大数据集提取成功的结果在合理的时间。我们提出分布式并行版本的一些非参数和半参数回归模型。我们使用MapReduce范式和描述引发数据结构的算法的并行化计算。提出算法的预测精度与线性回归模型相比,这是目前唯一的预测模型在并行分布式实现火花框架内解决大数据问题。算法的并行化的优点。我们验证模型进行各种数值实验:拟合优度评价,分析如何提高数据集大小影响时间消费,和分析时间的消费,不同程度的并行性(工人数量)在分布式实现。
1。介绍
最新方法,数据分析,数据挖掘,机器学习应该处理大型数据库。云计算技术可以成功地应用于并行化标准的数据挖掘技术来处理大量的数据可行(1]。为此,标准算法通常应该重新设计并行分布计算环境在多个计算节点。
其中一个方法是使用Apache Hadoop,其中包括MapReduce工作分配(2)和分布式文件系统(HDFS)节点之间的数据共享。
最近,一个新的和有效的框架称为Apache火花(3)是建立在Hadoop之上,它允许更有效的执行分布式工作,因此非常有前途的大数据分析问题(4]。然而,引发目前的发展阶段,和标准数据分析库的数量是有限的。
R软件是一个受欢迎的仪器数据分析师。它为并行数据处理提供了几个可能性通过附加组件包(5]。也可以使用Hadoop和火花在使用SPARKR R。这个R包提供了一个轻量级的前端使用Apache火花在R . SPARKR仍处于发展中阶段,只支持某些特性的火花,但有一个很大的潜力数据科学的未来(6]。
也存在替代并行化方法,如消息传递接口(MPI) [7]。然而,在本文中,我们将集中精力火花,因为它速度、简单性和可伸缩性(8]。
在这项研究中,我们考虑回归预测的情况下,数据具有非线性结构,这在现实世界中很常见的数据集。这意味着线性回归不能作出准确的预测,因此,我们求助于非参数和半参数回归方法,它不需要线性和更健壮的离群值。然而,这些方法的主要缺点是,它们非常耗时,因此术语“大数据”这样的方法开始更早比参量的方法。在大数据集的情况下,传统的非平行实现不能够处理所有可用的数据。这使得它必须适应现有的技术和开发新的克服这个缺点的。分布式并行火花框架为我们提供了解决这一困难的可能性和增加非参数和半参数回归方法的可扩展性,允许我们处理更大的数据集。
当前文献中有一些方法来解决非参数和半参数回归模型的并行处理大数据集(9),例如,使用R插件包,MPI。我们研究了一部小说,快速、并行和分布式算法实现基于现代版本的Apache火花,这是一个有前途的工具,有效实现不同的机器学习和数据挖掘算法(3]。
本研究的主要目的是使并行分布式版本非参数和半参数回归模型,特别是kernel-density-based和部分线性模型应用于大数据。意识到这一点,一个火花MapReduce算法开发为基础,将数据和执行各种算法并行流程在映射阶段,然后结合解决方案在降低阶段合并结果。
更具体地说,本研究的贡献是(我)设计新颖的分布式并行核密度回归和局部线性回归算法对大数据的火花MapReduce范例和(2)验证算法,分析其准确性、可伸缩性和加速通过数值实验。
本文的其余部分组织如下。部分2回顾了传统的回归模型进行分析。部分3回顾了对大数据集存在的分布式计算框架。节4,我们提出并行版本的kernel-density-based和局部线性回归模型算法,基于火花MapReduce范例。节5,我们目前的实验设置和部分6我们将讨论实验和分析框架。部分7总结了论文,并讨论未来的研究机会。
2。背景:回归模型
2.1。线性多元回归
我们从线性回归,这是唯一的回归模型实现火花的当前版本比较的结果提出方法。
让我们首先考虑经典的多元线性回归模型(10,11]: 在哪里是一个数字的观测,是许多因素,因变量是一个矢量,是一个向量的未知参数,是一个向量的随机错误,是一个矩阵的解释变量。矩阵的行对应于观察和列对应因素。我们假设是相互独立的,没有期望和方差相等。
著名的最小二乘估计(LSE)的是
此外,让抽样分布的观测。参数的估计,我们可以做出一定的预测(未来的)时间的时刻,在那里是一个向量的解释变量观测值吗时间的时刻。
对于大数据,这是一个问题(执行矩阵操作2)。为此,可以使用其他的优化技术。一个有效的办法是采用随机梯度下降算法(12),实现了火花。广义成本函数最小化
算法1介绍了随机梯度下降算法,是一个学习速率参数。
|
||||||||||
算法1可以反复执行(增量),易于并行化。
2.2。核密度回归
第一选择我们要考虑的线性回归模型是内核密度estimation-based回归,这是大的重要性当数据具有非线性结构。非参数方法估计回归曲线有四个主要目的。首先,它提供了一个通用的方法,探索一般两个变量之间的关系。第二,它可以预测观察没有引用一个固定参数模型。第三,它提供了一个工具伪观测通过研究孤立点的影响。第四,它构成一个灵活的替代或相邻之间的插值方法缺失值的值(13]。
让我们考虑一个非参数回归模型,(14),相同的,,对于一个线性模型
Nadaraya-Watson内核估计量(15,16的是 在哪里是内核的功能,这是一个非负实值可积函数满足以下两个要求:和所有的值;是一个平滑参数称为带宽,。我们可以看到,每个值的历史预测,是用一些对应的自变量值的重量相同的观察,。
在多维情况下,内核函数,在那里是一个平滑参数矩阵。带宽矩阵的选择是最重要的因素影响估计的准确性,因为它控制平滑感应的方向和数量。最简单的选择是,在那里是一个一维的平滑参数,是单位矩阵。然后,我们有相同数量的滤波应用于所有坐标方向。另一个相对容易管理的选择是采取带宽矩阵等于一个对角矩阵,它允许不同数量的平滑的坐标。在我们的实验中我们实现了后者。多维核函数,,那么很容易与单变量核函数。在我们的实验中我们使用了高斯内核。然后,(5对于多维的情况可以写成
核密度估计中的一个重要的问题是选择适当的带宽,。它有一个影响社区的结构(5):更大的价值选中时,这种影响就越高点估计量。在多维的情况下,同时调节因素之间的平衡。最受欢迎的带宽选择启发式方法插件和重采样方法。然而,这些启发式方法需要大量的计算,这对于大数据集是不可能的。在我们的例子中,我们使用一个著名的经验法则的方法,提出了西尔弗曼(17],它适用于高斯内核。在解释变量之间没有相关性的情况下,有一个简单的和有用的公式与斯科特的带宽选择规则(18]:,,在那里方差的吗th因素。
它是已知的14维度的诅咒是使用非参数时的一个主要问题,多元回归技术。医生,另一个问题是,超过两个解释变量,图形插图或解释的结果是很难甚至是不可能的。真正的多元回归模型往往过于灵活,一般制作一个详细的推理。
一个非常合适的内核函数的属性是它的添加剂。这个属性可以使内核函数用于分布式数据(13]。不幸的是,这样的模型,即使当前并行化的可能性,仍然非常耗时。
2.3。局部线性模型
另一个替代线性回归模型是一种半参数局部线性回归模型(PLM)。目前,一些努力已经分配给开发方法,降低高维回归问题的复杂性14]。模型允许简单的解释每个变量的影响和可能比一个完全非参数模型。这些指的是降低维数和提供一个备抵部分参数化造型。另一方面,plm比标准线性模型更加灵活,因为他们结合参数和非参数分量。假设变量的响应取决于变量以线性方式但非线性相关其他独立变量(19]。结果模型可以组合在一起,所谓的半参数模型。PLM的回归添加剂包括两部分,一个线性和非参数部分。PLM的回归给药 在哪里是一个有限维向量参数的线性回归和一部分吗是一个光滑函数。在这里,我们假设解释变量的分解两个向量,和。向量代表一个变量随机向量通常覆盖分类解释变量或变量都被认为是影响指数以线性方式。这个向量,,是一个变量的连续的解释变量的随机向量模型在非参数方法,。经济理论或直觉应该指导解释变量的包容或,分别。
提出了一个算法的估计plm在[13),这是基于似然估计值和被称为广义Speckman [20.估计量。我们新配方这个算法(算法2)的函数和数据结构,它可以很容易地可平行的部分4。
|
||||||||||||||||||||||||||||||||||||||||||||||||
函数算法的主要功能2作为参数,这需要训练数据集、带宽向量测试数据集,。评估的第一步是要执行的函数,计算一个平滑矩阵,根据训练数据的非线性部分和。这帮助我们获得平滑矩阵变换的向量观测到拟合值。接下来,我们估计线性系数的线性模型的一部分函数。首先,我们考虑非线性的影响部分线性独立变量的一部分,,在因变量,。然后,我们使用普通方程(2)或算法1得到线性系数。这些系数,我们计算线性预测的一部分。接下来,我们计算的非线性部分预测,使用Nadaraya-Watson估计量(6)。在这里,我们重新计算一个平滑矩阵,考虑非线性部分的测试集数据。我们也考虑线性部分的影响,。最后,我们总结的线性和非线性部分预测得到最终结果,。
3所示。背景:MapReduce、Hadoop和火花
MapReduce (2)是最流行的一种编程模型来处理大数据。谷歌在2004年提出的,目的是处理海量数据使用一个集群的机器。MapReduce范式由两个阶段组成:map和reduce。概括地说,在映射阶段,输入数据并行处理生产一些中间结果。然后,减少阶段这些结果以某种方式结合形成最终的输出。最流行的Apache Hadoop MapReduce编程模型,实现一个开源框架,该框架允许的处理和管理大型数据集在分布式计算环境中。Hadoop的作品在Hadoop分布式文件系统(HDFS),复制数据文件在许多存储节点,便于快速的节点之间的数据传输速率,并允许系统继续不间断地运营失败的节点。
另一个Apache项目也使用MapReduce编程模型,但更丰富的api在Java中,Scala, Python, R,引发3]。火花是为了增强,而不是取代,Hadoop堆栈。火花是超过一个分布式计算框架最初在加州大学伯克利分校的AMP实验室开发大规模数据处理,提高了使用效率的强化记忆。它还提供了几个预先构建的组件授权用户来实现应用程序更快和更容易。火花使用更多的内存,而不是网络和磁盘I / O和相对速度,Hadoop MapReduce。
从架构的角度来看,Apache火花是基于两个关键概念;弹性分布式数据集(抽样)和有向无环图(DAG)执行引擎。关于数据集,火花支持两种类型的抽样:并行集合,是基于现有的Scala集合和Hadoop数据集创建的文件存储在HDFS。抽样支持两种操作:转换和行动。转换创建新的数据集从输入(例如,地图或过滤器操作转换),而操作后返回一个值执行计算的数据集(例如,减少或计数操作操作)。DAG引擎有助于消除MapReduce多级执行模型,提供显著的性能改进。
抽样(21)是分布式内存抽象,它允许程序员在大型集群,同时保留内存计算执行数据流模型的容错像MapReduce。抽样的动机是两种类型的应用程序当前数据流系统处理效率低下:迭代算法,常见的图形应用程序和机器学习,数据挖掘和互动工具。在这两种情况下,在内存中保存数据可以通过一个数量级提高性能。有效地实现容错,抽样提供一种高度限制的共享内存;他们是只读的数据集,只能通过批量操作其他抽样。这个内存处理是一个更快的过程没有时间花在移动数据/过程的磁盘,而MapReduce需要大量的时间来执行这些I / O操作,从而增加延迟。
火花使用主/工人架构。有一个司机,谈判一个协调员,叫做主管理工人,执行人(参见图运行1)。
火花使用HDFS,高级库流处理、机器学习和图像处理,如MLlib [22]。在这项研究中,线性回归中实现MLlib [23PLM)是用来评估提出的分布式算法。
摘要Apache火花是用于实现该分布式PML算法,如部分所述4。
4所示。分布式并行部分线性回归模型
4.1。分布式局部线性模型估计
在本节中,我们继续讨论kernel-density-based和部分线性模型(plm)中所描述的部分2。接下来,我们考虑kernel-density-based回归PLM的具体案例,当参数线性部分是空的。PLM的一般实现算法与非参数允许我们进行实验kernel-density-based回归。我们讨论如何分配的计算算法2增加的速度和可伸缩性的方法。正如我们可以看到前面的小节,PLM是以几个矩阵运算,这需要大量的计算要求(24),因此不是可行的应用大数据集。在本节中,我们关注()如何组织矩阵计算最大平行的和有效的方式和()如何并行化的PLM估计整个计算过程。火花为我们提供了各种类型的平行结构。我们的第一个任务是选择适当的数据结构,以促进火花计算过程。接下来,我们开发算法,执行一个PLM估计算法2)使用MapReduce和火花的原则。
传统的数据分析方法,尤其是基于矩阵计算,必须适应一个集群上运行,当我们不能很容易地重用线性代数算法可用于单机的情况。一个关键概念是分发操作,分离算法需要向量矩阵运算和操作的部分。因为矩阵往往比平方向量,一个合理的假设是,向量是在单个机器上存储在内存中,而矩阵是不合理和可行的。相反,矩阵存储在块(矩形块或一些行/列),块矩阵和相应的算法实现。最具挑战性的任务是重建算法从单核计算模式操作分布式并行矩阵(24]。
类似于线性回归预测过程,PLM的预测,因为它的参数化组件,假定训练和评估步骤。Hadoop分布式架构和火花假设一个司机计算机和几个工人电脑,在并行执行计算。我们考虑到这个架构在开发算法。
让我们描述培训过程与计算的目的参数,呈现在图2。这部分非常计算密集型和不能没有适当的计算并行化计算。
首先,司机计算机读取的训练数据,从文件或数据库,将数据划分为不同的抽样分区,工人和分发,。接下来,训练过程包括以下步骤:(1)每个工人做一个初始的预处理和转换,其中包括缩放和格式化。(2)驱动程序访问所有预处理数据。(3)驱动程序收集所有的预处理数据和广播给所有的工人。(4)然后,每个工人使自己的训练数据的副本。(5)一个平滑矩阵,并行计算。行以来分为分区,每个工人然后计算其部分。(6)每个工人计算在每一行元素的和在其分区:作为一个抽样,然后保存。(7)我们不需要归一化矩阵本身,可以计算,但只有抽样,由每个工人直接计算部分:。(8)使用th矩阵的一部分,我们将它从右边对应的矩阵的元素。因此,我们获得的转换矩阵的一部分作为抽样。的转换矩阵的一部分抽样是近似地计算。(9)最后,驱动程序访问和收集矩阵和。(10)驱动程序初始化计算的标准线性回归算法,LinearRegressionModelWithSGD意识到的火花。(11)的参数并行计算。(12)然后,驱动程序访问的计算机。
现在让我们描述预测过程(图3)后发生参数PLM完成评估的一部分。注意,内核模型非参数的一部分,是直接为每个预测数据点计算。
因为训练后的预测执行过程,然后预处理训练集已经分布在工人和可以作为抽样。PLM分布式预测过程包括以下步骤:(1)驱动程序广播系数估计的线性部分,工人们。(2)接收新观察的驱动程序广播给所有的工人。(3)每个工人收到它的副本和。(4)我们计算一个平滑矩阵,这是一个向量形式。这个计算也在工人中分区(见),所以th工人计算作为特定的列。(5)每个工人计算部分和矩阵的行元素和股票的部分和驱动程序。(6)部分和驱动程序访问和执行减少一步获得最终的总和,。(7)驱动程序广播最后的总和为所有的工人。(8)每个工人收到最后的总和,。(9)每个工人计算其平滑矩阵的列。(10)基于抽样的部分(已知的训练步骤),每个工人计算训练数据的线性预测的一部分。有必要识别的内核部分预测,执行减法的线性部分的总预测,训练集的值是已知的。(11)每个工人计算内核的一部分的预测与驱动程序作为抽样和股票。(12)内核驱动程序访问部分预测。(13)驱动程序执行减少一步做出最后的预测,结合访问内核部分和计算线性部分:。
4.2。案例研究
我们说明了PLM的分布式执行算法用一个简单的算例。首先,司机计算机读取的训练数据,:
我们假设算法是并行执行两个工人。驱动程序访问并创建相应的抽样。
首先,数据预处理。这个工作是在工人之间共享一种标准的方式,结果返回给司机。我们不改变我们的数据在这个阶段进行说明。
培训过程的目标是计算系数的线性部分。首先,矩阵分为部分的行:
每个工人访问其数据的一部分,并对整个数据的访问。
每个工人计算其平滑矩阵的一部分,特别是:
第一个工人获得平滑矩阵的元素(它会直接矩阵);相应的矩阵的元素应该先计算。例如,要获取元素根据函数,
然后,矩阵W对员工如下:
获取元素了解矩阵根据函数SmoothMatrix,我们计算 然后,矩阵对员工如下:
然后,相应的平滑矩阵和计算两个工人
矩阵和被发送到司机,收集到矩阵,但和收集到向量。
驱动程序调用的标准回归系数计算的过程,工人之间共享一种标准的方式。由此产生的系数收集的司机:
在预测阶段,每个工人收到一组点的预测。现在,我们说明一个单点的算法和两个工人。
每个工人访问它的训练数据的一部分然后计算矩阵的元素。首先,平滑矩阵应计算。例如,工人1计算元素
所以,工人1和2获得矩阵
现在,每个工人计算部分和(所以工人1,;对于工人2,驱动程序)和股票。司机计算总金额并将其发送给工人。
现在,每个工人计算矩阵。例如,工人1计算元素。
然后,矩阵对工人
现在,每个工人计算和相应的区别:
每个工人的平滑值计算内核的一部分预测: 所以和。这些值与驱动程序共享。计算他们的总和,这被认为是一个内核的一部分预测:。
驱动程序计算线性预测的一部分,最后的预测,。
在下一节中,我们提出算法的性能评估通过各种数值实验。
5。实验装置
5.1。绩效评价指标
5.1.1。参数
在我们的研究中,我们可用的数据集划分为两个部分:训练数据集和测试数据集。训练数据集被用来训练模型和测试数据集被用来检查结果的准确性。训练和测试数据集的大小是重要的参数精度的影响,可伸缩性和加速度量。
另一个重要参数是并行的水平,我们认为核的数量。我们不同参数之间1(没有并行性)和48芯。
我们还考虑处理(学习)作为比较的方法的一个重要参数。在我们的大多数实验中,我们不同一个参数和固定其余的参数。
我们进行了三种实验。
5.1.2中。精度的实验
在精度的实验中,我们评估了拟合优度的大小取决于训练和测试数据集。的精度标准,我们使用了确定系数,通常是一个质量指标的回归模型。它被定义为一个相对的一部分由回归平方和解释,可以作为计算 在哪里和估计(预测)的吗由回归模型计算。
请注意,我们计算使用测试数据集。因此,结果更可靠,因为我们训练我们的模型在一块数据检查(训练集),但在另一个模型的准确性(测试集)。
5.1.3。可伸缩性的实验
接下来,我们提出的方法对大数据进行测试。我们分析了增加数据集的大小影响算法的时间消耗。首先,我们讨论了如何执行时间的增加改变了数据集的大小。然后,我们分析了方法的准确性取决于执行(培训)在不同条件下的时间。可伸缩性与固定数量的核测量。
5.1.4。加速实验
最后,我们分析了时间消耗和并行性的程度之间的关系(核心)在分布式实现。我们各种不同的并行度和比较各种方法的速度工作。固定的速度测量精度和规模。
5.2。硬件和软件使用
实验进行了16个计算节点集群上。每一个计算节点有以下特点:处理器:2 x Intel Xeon处理器e5 - 2620核:每个节点4(8线程),时钟速度:2.00 GHz,缓存:15 MB,网络:版的《四年防务评估》InfiniBand (40 Gbps),硬盘:2 tb, RAM: 16 GB /节点。
Hadoop master过程NameNode, JobTracker驻留在主节点。前者控制HDFS,协调奴隶机器通过各自的DataNode的过程,而后者负责每个计算节点的TaskTrackers执行MapReduce框架。我们使用一个独立的火花集群,它遵循了类似的配置,主进程是位于主节点,和工作进程在奴隶的机器上执行。这两个框架都共享底层HDFS文件系统。
这些都是软件用于实验的细节:MapReduce实现:Hadoop 2.6.0版本,火花1.5.2版本,操作系统:CentOS 6.6。
5.3。数据集
我们使用三个数据集:合成数据,航空公司数据和汉诺威交通数据。这些数据集的主要特点进行了总结表1。表2为每个数据集提供了示例记录。
合成数据。我们开始与合成数据为了检查部分线性回归如何执行部分线性数据和计算的基本性能特点取决于训练集和测试集的大小。我们用以下模型: 在哪里和独立均匀分布的区间和。的依赖显然是非线性和严格的波动。
汉诺威流量数据。在[25),我们模拟一个交通网络在汉诺威的南部,德国,实际交通数据的基础上。在这项研究中,我们使用此仿真数据作为一个数据集。网络包含三个平行和五个垂直的街道,形成15十字路口的流量大约每小时5000辆。对我们的实验中,6个变量被使用:旅行时间(分钟)路线的长度(公里)系统中平均速度(公里/小时),停止的平均数量在系统(单位/分钟),拥堵的流(veh / h),交通信号灯的路线(单位),左转弯路线(单位)。
汉诺威的交通数据,我们解决了这个问题的旅行时间预测。我们没有过滤数据集,而是使用原始表单中的数据。主要分析异常值允许删除可疑观测获得更准确的结果;然而,一些重要信息可能会丢失(26]。
采取不同子集的变量,我们发现以下变量赋值的线性和内核部分PLM最佳:(我)线性部分:,(2)内核部分:,,,
航空公司数据。数据包括所有商业航班的航班抵达和起飞信息在美国,从1987年10月到2008年4月(27]。这是一个大型的数据集:总共有近1.2亿条记录,占用12 g。每一行的数据集包括29个变量。这些数据被用于各种研究分析方法提出了大数据处理的效率,包括回归(28]。为了补充这个数据和获得更好的预测,我们添加了天气平均每日信息,包括日常温度(最小/最大),风速、雪条件下,降水,免费的网站https://www.wunderground.com/。这提供了一个额外的22个因素为每个731天。航空公司和天气数据集对应的日期了。
对于这些数据,我们旨在解决起飞延误预测的问题,这与DepDelay列的数据。
出于测试的目的,我们选择了盐湖城国际机场(SLC)。我们的实验表明,建设一个模型的几个机场导致糟糕的结果;这需要特殊的聚类(29日),可能是未来研究的主题。
因此,我们选择了两年(1995年和1996年)为我们的分析。这产生了大约170000条记录。
一个额外的因素,这是添加到这些数据,之前的航班数量30分钟和30分钟后具体的飞行。
异构结构的初步分析显示这些数据。聚类显示两个变量分离的数据是最重要的:起飞时间和旅行的距离。一个非常有前途的集群具有良好预测潜在的短迟到航班(DepTime≥21:45和距离≤1000公里)。他们可以提供相对较好的预测;然而,延迟的分布没有显著不同于原始数据集。这个集群包含大约13000条记录。
在随后的实验中,我们使用从这个数据子集为了演示数据集大小的预测质量的影响。
PLM的算法,第一个重要的问题是如何分配的变量线性回归和内核的部分。采取不同的变量子集,包括/排除变量,我们发现10个最重要的变量和以下最佳子集:(我)线性部分:飞行的距离(距离),平均能见度距离(MeanVis),平均风速(MeanWind),平均降水(Precipitationmm),风向(WindDirDegrees), 30分钟间隔的航班数量(Num),与起飞时间(DepTime)(2)内核部分:星期(DayOfWeek)雷雨(0或1),和目的地(桌子)
表2提出了数据片段10个随机记录从每个训练数据集。
6。实验框架和分析
6.1。精度的实验
我们比较了拟合优度指标()的部分线性、线性和内核回归数据集的不同训练数据集的大小。注意,精度不依赖于测试集的大小(这是等于1000)。这项研究的结果发表在数字4,5,6。
我们观察到的非常不同的结果。合成数据,一个变量被定义和另一个线性非线性;部分线性模型更为可取,因为它生产0.95与0.12的值线性和内核模式。为航空公司数据集,部分线性模型也是可取的,但差异不显著。相比之下,汉诺威数据,内核与部分线性模型相比更为可取一个从某一时刻开始。一个可能的解释是,交通数据的维数小于航空公司数据,所以内核模型更好的工作时,它有足够的数据。
6.2。可伸缩性的实验
我们比较的速度(执行时间)部分线性的,线性的,和内核回归数据集的不同训练集和测试数据集的大小。注意尺寸的训练和测试数据集执行时间的影响。航空公司数据的结果给出数据7和8。其他数据集产生相似的结果。
部分线性回归,我们可以看到二次执行时间之间的关系和训练集的大小和执行时间的线性依赖于测试集的大小。这些结果很容易解释,因为计算和(步骤(9)和(10)的PLM训练,人物2)需要一个平滑矩阵的大小,在那里训练数据集的大小。另一方面,测试组参加了预测步骤,和复杂性与它的大小有一个线性关系。内核和线性回归,与执行时间是线性的关系进行训练和测试集大小。
接下来,我们展示了多少资源(执行时间)应该花费达到一些质量水平()部分线性回归模型。合成数据的结果呈现在图9。这张图是由固定测试集大小900,执行不同的训练集大小的算法,获得相应的执行时间和准确性,并在图上绘制。
在一开始,我们可以看到相对快速增长但末放缓,并连续执行时间投资没有增加拟合优度,。
6.3。加速实验
最后,我们研究了如何执行时间与可用内核的数量变化。汉诺威交通数据的结果呈现在图10剩下的数据集产生类似的结果。
我们可以看到执行时间减少,直到达到一个阈值5 - 10核,然后略有增加(这是真的PLM和内核回归;线性回归,最低达到了2芯)。这是解释的事实之间的数据传输大量的核心需要更多时间比计算。这意味着火花仍然需要更好的优化并行任务执行的机制。类似的问题已经被其他研究者报道(30.集群技术)。
7所示。结束语
介绍了分布式并行版本的kernel-density-based和部分线性回归模型,旨在处理大数据集在合理的时间。算法部署Apache火花,这是一个众所周知的分布式计算框架。的算法进行了测试在三种不同数据集的大约10000条记录,不能由一台计算机处理在一个合理的时间。因此,它是16个节点的集群上进行测试。我们进行了三种实验。首先,在精度的实验,结果表明,他们不能使用线性回归模型预测。我们进行了实验与更常见的情况,当数据的结构不是线性的或部分线性的。所有的数据集(非)半参数模型(内核和PLM)显示更好的结果,将作为一个效率准则确定系数,。如前所述,内核回归经验增加维度的问题,因为很难找到指定的点附近的点在大尺寸。在我们的实验中,基准数据和实际的数据有许多变量,我们表明,半参数模型更精确的结果。我们也通过增加训练集进行实验,以证明它导致增加准确性。接下来,在可伸缩性的实验,我们改变了训练集和测试集的大小,目的是分析算法的计算时间与相同的固定汇率水平的并行性(工作节点/核心)。训练集的所有实验表明,影响时间非线性()平方最多,但测试时间线性的影响。最后,在加速实验的重要性,我们的目的是显示并行实现的算法来处理大数据集,考虑非参数和半参数估计方法计算量很大。我们演示了处理不同大小的数据集的可行性,否则不是可行的过程用一个机器。一个有趣的方面是,对于每一个组合(数据集,算法)我们能找到最优的资源数量(核心)最小化算法执行时间。例如,对于航空公司的PLM回归数据,与训练集的大小等于2500和测试集的大小等于500,最优数量的核心是5和相同的训练集规模和测试集的大小等于1000最优数量的核心是9。这个最佳点后,算法的执行时间开始增加。我们可以解释这一现象,因为费用分布在这种情况下多奖项的并行执行。因此,我们可以得出这样的结论:重要的是要找到最优的资源数量为每个实验。
相互竞争的利益
作者宣称没有利益冲突有关的出版。