分享

R语言大数据挖掘应用

 toppoo 2013-09-06


R语言:R-hive-mysql-php <wbr>可视化 (2013-04-28 14:36:20)

  接触R语言一段时间,在游戏行业里面采用R对大数据处理与分析似乎还不那么普片,由于R语言的开源性质给我们带来了很多方便与灵活。最近一段时间在构建挖掘分析平台上运用了R语言,也感觉开辟了一个新的天地。
    基于分布式的Hadoop在数据储存读取过程已经有了一定的优势,依靠这样的优势直接运用R语言的RJDBC包链接Hive传递SQL进行数据查询导入, 得到的数据在R语言里面进行数据预处理与算法建模过程,再把分析模型的结果集储存到本地的MySQL,然后提供作为PHP的数据查询,从而让PHP进行分 析挖掘后台的数据可视化处理,这样子就形成了一条“可视化数据挖掘闭环”(英语:Visual Data Mining Closed Loop,简称:VDMCL)
                       
Hive -> R -> MySQL -> PHP -> 数据可视化

    而这个闭环中需要了解很多知识:Hive基础、Linux基本操作、SQL、R语言、挖掘算法、MySQL、PHP。(如果可以一个人就搞定,那么那个人实在太牛B了,哈)
    而在此之前我们必须要了解的一点的就是R语言的一些基本操作与知识,首先我们来了解下R语言如何连接数据库的。(以下连接的数据库是基于linux服务器,如果远程服务器搞懂了,本地的相对简单)
首先安装我们需要的RJDBC包,然后再用library调用我们的RJDBC包(注意,R语言是对大小写敏感的) 

R语言大数据挖掘应用

接着就是加载hive jdbc驱动,把相应的hivedriver下载下来,加载驱动:

R语言大数据挖掘应用


添 加好jdbc之后,用dbConnect函数连接hive,用dbGetQuery函数写SQL语句查询准备需要分析的数据。当进行到这一步的时候事情已 经完成一大步。起码已经得到了我们想要的数据,接下来的就是用R语言对我们的原始数据进行预处理,而接下来就是上一节我们说到的《流失预测模型》在R中的 处理模型过程。(以下只是一个针对具体模型之前数据处理过程的一个示例,实际的数据处理过程还要根据具体的数据来做)

R语言大数据挖掘应用

在进行数据预处理的时候,最好在SQL的时候进行第一次预处理,接下来再用R进行第二次数据处理。

当数据处理完毕之后就需要进行模型的训练,此处用到的是C5.0算法,在R语言中也有C50的算法包,在进行下一步之前先加载C50算法包,而算法包如何用可以输入: ?C5.0 

Usage

C5.0(x, ...)
## Default S3 method:
C5.0(x, y, trials = 1, rules= FALSE, 
weights = NULL, 
     control = C5.0Control(), 
     costs = NULL, ...) (关于C50算法包的参数设置运用这里不详细说)

这里的x是我们需要的参数变量,而y则是我们的目标变量,而深一层决策树参数设置则在control函数里面,这里面可以控制进行Train与Test模型的sample比例,以及变量重要性等。
当训练完模型之后我们可以得到一个TreeModel,之后就可以运用这个训练好的TreeModel进行模型,而进行预测的时候,C50包提供了一个函数predict.C5.0,

Usage

## S3 method for class 'C5.0' 
predict(object, newdata = NULL, 
        trials = object$trials["Actual"],
type = "class", na.action = na.pass, ...)(详细请输入"?predict.C5.0"查询)

    如果有一点R语言基础与数据挖掘基础,到了这里或许你已经基本知道怎么完成了,其实就是按照了CRISP-DM的数据挖掘方法论:
业务目标-> 数据理解-> 数据准备-> 模型过程-> 模型评估-> 模型应用

    上面的这些工作似乎只完成了VDMCL的前两步:Hive-> R。而是否能建立一个集高效性、及时性、准确性、普遍性的数据挖掘系统在游戏行业里面至关重要,这些都因为现在游戏行业的反应周期越来越短,需要在短时间内对发现的运营问题进行分析与解答,而常规的VDMCL就很好的解决了这问题。
    简单粗略的说了一下VDMCL的思想,其中还有很多细节的东西,如R语言的Rstduio Server搭配linux系统,R语言与MySQL之间的数据交换,PHP与R语言之间的参数传递等等细节问题。今天就先到这,之后再接上。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多