论文部分内容阅读
随着大数据技术的不断发展,大数据处理的思想和方法在越来越多的领域中得到了应用。在医疗领域,通过对医疗大数据的挖掘和分析,发现临床症状、生活习惯、遗传因素和实验室数据等元素与疾病之间的关联和演化规律,在临床辅助决策、疾病预测模型、个性化治疗和临床试验分析等领域发挥着重要的作用。Apriori算法凭借其简单高效和适用范围广等特点,成为目前最常用的医疗关联规则挖掘的算法之一,被广泛地应用于癌症,糖尿病和心脑血管疾病等重大疾病的关联规则挖掘问题中。然而随着医疗数据量的日益增长和数据操作复杂程度的不断提高,传统Apriori算法在处理相关问题时,所消耗的时间越来越长,在实际应用中受到了很大的限制。因此,如何使用Apriori算法快速地从海量数据中挖掘出关联规则是一个亟待解决的问题。Google公司提出的MapReduce架构通过构建高性能计算集群可以有效地解决Apriori算法的效率问题,这也是目前应用最广泛的加速方法。然而构建集群的高昂成本,很多研究者及中小型用户都无法承受。因此本文利用GPU(Graphic Processing Unit)具有更大的内存带宽,更多的执行单元以及更低的成本等优势,提出了一种基于多GPU的并行方法对Apriori算法进行加速。这种方法既能得到很好的加速效果,又能大幅度地降低成本,使得中小型机构进行大数据处理成为可能。本文首先使用区间离散化和离散区间整数化等方法对Apriori算法进行了一些修改,使之能够适应数值型数据关联规则挖掘问题。接着本文对Apriori算法进行了并行化处理,在解决了算法数据存储优化、算法负载均衡的数据划分以及针对大数据的动态加载等问题的基础上,通过把每一个事务数据记录分配到GPU众多的线程当中,高效地将Apriori算法中支持计数计算的过程转移到GPU端,充分利用GPU强大的并行运算能力对算法进行加速。通过数据实验验证,本文提出的基于多GPU的并行Apriori算法不仅能够有效减少数据挖掘时间,而且加速效果与GPU数量呈线程增长关系,具有有良好的可扩展性。最后,通过和大连某医院合作,利用本文提出的算法,初步完成了一个乳腺癌疾病诊断系统,并取得了很好的效果。