大数据环境下基于R语言的数据挖掘平台 之 大数据处理与导出模块

时间:2021-09-16 08:57:15

这篇文章总结一下大数据处理模块与导出模块:

大数据处理

功能

这个模块实现了对大数据的处理,用户选择处理方法并上传需要处理的数据集,系统将利用Hadoop集群与R对数据进行分析处理,并将结果显示给用户。

实现原理

模块使用Hadoop框架搭建了一个分布式集群,用于大数据的并行处理。并将Kmeans聚类算法与朴素贝叶斯分类算法用MapReduce编程框架实现。

  • Kmeans聚类算法的MapReduce化
    该过程包括预处理、Kmeans聚类迭代两个过程的MapReduce化。

    • 数据的预处理MapReduce化:将输入的文本文件按行切分,生成(文件行offset,一行文本)形式的键/值对。
    • Kmeans聚类迭代的MapReduce化:计算当前文档与各个类簇中心距离,选择最近的中心作为新的文档中心。
      • Map阶段首先将输入的(文件行offset,一行文本)形式的键值对。Mapper类的map函数计算每一条样本距离哪个类簇中心最近,并归到距离最近的类簇中,输出(cluster,样本)的键值对。
      • Reduce阶段中Reducer类的reduce函数重新计算每个类簇的中心。当一次迭代结束后,计算类簇中心是否收敛,若收敛则结束迭代,否则继续迭代。
  • 朴素贝叶斯的MapReduce化
    该过程包括预处理、模型训练和分类三大过程的MapReduce化。

    • 数据的预处理MapReduce化:将输入的文本文件按行切分,生成(文件行offset,一行文本)形式的键/值对,然后进行具体的并行化处理,以完成对类名、属性值、属性个数的提取等操作。
      • Map阶段首先输入上述(文件行offset,一行文本)形式的键值对。Mapper类的map函数提取出所有出现的样本类名和样本个数,生成(class,1)的中间结果键值对。
      • Reduce阶段是将上述Map阶段生成的中间结果键值对进行归并处理,统计每个类别的个数。
  • 模型训练MapReduce化主要做统计计算的工作,求出各个属性的各个取值的先验概率。

    • Map阶段中Mapper类调用map函数的统计程序对输入的键值对(key/value)进行统计后,生成的中间结果键值对以(“class_name,attr_name,attr_value”,1)的形式传递给Reduce 。
    • Reduce阶段主要做累加操作,Reducer类调用reduce函数对Map阶段所产生的中间结果键值对中拥有相同Key的Value进行累加,计算出各Key的出现次数。
    • 该阶段结束时,模型训练完成,包括的内容有:1.属性个数;2.类的个数;3.每个属性的所有取值;4.类名列表;5.类的先验概率:P(Ci);6.联合概率:类Cj的属性Ai取值为ai的条件概率:P(Ai=ai|Cj);
  • 分类MapReduce化主要是分析测试集的每一个样本属于哪一类。

    • Map阶段是读入一行测试样本信息,生成包含样本id及相应类别概率值的键值对。Mapper类调用map函数对输入的样本信息抽取出各个属性的属性值,并对每个属性值读取其对应所有类别的联合概率(个数等于类别数),并将这些概率分别乘到对应类别的先验概率中;对样本属于各类的概率进行归一化,并按照从大到小的顺序排序,取概率最大的类别作为该样本的归属类,并输出(class,样本信息)的键值对。

    数据导出模块

    流程图

    大数据环境下基于R语言的数据挖掘平台 之 大数据处理与导出模块

    功能

    本模块实现了分析结果的导出,用户可以选择导出分析图表、分析报告,或分析的结果数据集,选择下载相应的图像、PDF以及xls文件,获取分析过程的内容和结果。

    原理

    系统使用R语言向设备中存储图片的形式对图像进行保存,使用struts2实现图片从网页中下载到本地。
    具体指令如下:

Setwd();    //设置存储目录
JPEG(file = “fileName”) //设置图像名称
/*
*画图语句
*/

Dev.off(); //关闭画图设备

系统使用iText进行分析报告的写入,在用户登录到系统后即新建一个pdf对象,在用户软件分析的每一步骤均将分析过程及结果写入该pdf中,当用户点击导出分析报告后,关闭pdf,下载写好的pdf。

系统使用Strus2下载功能进行分析数据的下载,用户点击导出分析数据后,即可产生分析数据的列表,点击download即可将其下载到本地。