论文部分内容阅读
随着信息社会的发展,每天产生的数据量成指数级增长。如何从海量数据中挖掘有用信息成为公司面对的一大难题。数据挖掘算法对数据进行处理,挖掘隐藏有用信息,有利于公司作出发展决定,但目前的挖掘算法处理海量数据需要耗费很长的时间或无法处理海量数据。将传统算法迁移到云平台进行并行化改进可以有效的解决该问题。Hadoop是Apache开发的一种分布式系统框架,底层的HDFS提供了具有高容错、高吞吐率的文件存储读写;MapReduce提供了一种并行化编程框架,用户无需了解分布式并行化编程细节,只需编写Map和Reduce类就能实现分布式程序。Hadoop的海量数据存储平台和简单的并行化计算平台,为传统数据挖掘算法能够处理海量数据提供了基础。本文研究Hadoop平台技术和常见的数据挖掘算法,利用Hadoop集群并行处理数据的能力对K-Means算法、协同过滤算法进行并行化改进。主要工作如下:(1) K-Means算法是一种常见的聚类算法,按照元素之间的相似性将原始数据划分为多个簇。在本文中,针对聚类算法K-Means依赖于k值和初始中心点的缺陷,提出了基于采样和密度的改进K-Means算法。通过采样和密度来确定K-Means算法初始k值和初始中心点,并且基于Hadoop平台进行并行化改进。通过实验验证,改进后的K-Means算法具有很好的并行性。(2)协同过滤算法是目前用的最多的一种项目推荐算法,通过计算用户之间的相似性找到具有最高相似度的k个邻居,然后通过邻居对项目的评分为用户推荐项目。在本文中,针对用户评分的稀疏性,提出了一种基于用户相似度和属性权值的混合推荐算法。通过对用户评分记录的学习,求出项目属性的权值,通过属性的权值并结合用户相似度来推荐项目,最后将算法移植到Hadoop平台。通过实验验证,改进后的协同过滤算法比原始算法具有更好的精准度和并行性。(3)目前,Hadoop平台主要通过命令行进行操作,这对普通用户具有一定的难度。本文设计实现了基于Hadoop平台的数据挖掘系统。该系统将数据挖掘算法和Hadoop平台细节进行封装,对外提供Rest接口,用户通过Rest接口调用并行化的数据挖掘算法进行数据分析,无需了解底层的具体实现。