论文部分内容阅读
数据挖掘技术是对大规模数据集进行探索的一个重要手段,它揭示了各个数据集中隐藏的规律,在不同的场景中应用这些规律可以很直观地解决面临的问题和困难。决策树分类技术作为数据挖掘方法中的一个重要分支,它的易于理解性和高度的操作自由性,使得决策树分类方法在生活的得到了广泛的应用,随着分布式系统架构的普及,决策树算法以其强大的平台适应性,在各大分布式平台上得到了并行实现,其中具有代表性的分布式平台有Hadoop和Spark。分布式并行决策树算法的出现是对传统决策树算法的一次重大变革,它把决策树模型的构建过程从原始的单机操作中解放了出来,并采用多机共同计算的方式来完成决策树的构建,多机方式的优势在于计算的任务不再集中于一台机器,而是把任务在集群中各个数据节点均衡地分配,各个数据节点相互配合共同完成高强度的计算任务,所以多机方式不会对数据节点的配置有很高的要求。此外多机方式的分布式集群中各个数据节点是相互独立的,数据节点分配到的计算任务可以并行地执行,相比于原来的单机等待资源释放型计算,分布式集群的运算效率有了很大的提升。在众多分布式并行决策树算法中,广为使用的是基于内存计算的Spark平台决策树算法(MLlib DecisionTree,本文简称MLDT)。Spark平台的数据运算速率比Hadoop平台运算速率快10-100倍,而且更加适用于处理大规模的数据集,因此使用Spark平台训练大数据集的决策树模型会更加地迅速。但Spark平台的MLDT算法也存在很多的缺点,如集群中分布式构造决策树的数据节点间的信息传递量较大造成较高的网络资源占用,以及树节点分裂时信息熵的计算次数较多等。本文主要以MLDT为研究的基础,提出了基于Spark平台的并行决策树算法(SPDT)。SPDT主要的改进有以下三个方面:首先对训练决策树的数据集进行预处理,采用按列分区的方式重新划分数据集,保持完整的属性存储于分布式集群的各个数据节点,从而在建树过程中独立地完成信息熵的计算,减少因节点间信息传递而造成的网络资源的占用。然后对存储在数据节点中的数据进行压缩,为计算任务节省更多的空间。最后采用了基于边界点类别判定的连续属性离散化方法来优化算法,减少信息熵计算的次数,并使用加权平均信息增益比作为选择树节点的标准,降低树节点的选择对多属性值的属性的依赖。实验验证结果表明,本文对算法的改进提高了分布式决策树的树模型建树的效率,并保持了与MLDT算法相似的分类精度。