文档章节

R语言企业级数据挖掘应用

 数据分析师
发布于 2014/11/12 15:22
字数 1303
阅读 27
收藏 0

为什么要使用R语言

        在互联网企业,在分析端使用闭源的商用软件几乎是不可能的,原因很简单:成本太高,不管是使用,还是研发及维护。 但我个人觉得这可能还不是最主要的原因,对于互联网企业来说,数据虽然获取更容易,但环境更为复杂。开源软件可以根据业务的变化 进行调整,但商业的闭源软件则很难做到。

R能不能处理大数据

        好多人问过我这个问题,我会说你有多大内存就能处理多大数据,这话显然不负责任。这个问题确实不太好回答,因为每个人心中的大数据是不一样的。 比如有人觉得几百万就是大数据,有些人觉得没个几亿就不算大数据,甚至有人说你处理不了的就是大数据(擦!?)。这些还只是从记录 数(数据存储)的角度来看的,我们换个角度想想:建模工程师要做的事情无非是将用户和产品进行合理匹配,那最细粒度就是用户维(或产品维)。 试问你有超过千万的用户数据分析建模么?对于一般的分析(工程)师来说,常见的情况还是几十万甚或百万级别。这个量级对于R来说就很容易了, 比如我刚刚的工作就是在自己的PC上载入了一个50000000×3的数据框。

        接着我们在说说速度,曾经有太多的人抱怨R的运行速度太慢,甚至堂而皇之的公开表明观点。但我发现大部分人是因为不熟悉R语言的编程, 而是直接套用C或Java的编程方式,因而导致无法快速得到结果。举两个例子:

  • 有次在微博上一位朋友抱怨说R做了一个几千乘几千的相关矩阵花了他1天时间,我当时就愕然了,然后默默地给了一个几秒钟搞定的脚本。

  • 还有一次更具有代表性:我的项目组有个R的项目需要上线,于是直接把原始代码交予了一位项目成员,嘱咐他稍作改动即可上线。 但他发现需要3个小时才能将线上的数据计算完毕,于是又找到我帮忙优化。我看了一下,果不其然,Java风格的R代码,向量化编程的思想 一点都没有用。改之,3分钟结束计算。

        R语言的向量化运算几乎可以和底层语言的速度一较高下,并且向量化是天然的并行化方式,如果条件允许,R的向量化编程可以很方便的转化为并行框架, 这也就是为什么说R + Hadoop是大数据的发展方向的理由之一。

        再说个例子:试问100万行,20万列的数据是大数据么(你没看错,是200000维)?恩,R能够处理,而且可以在这类数据上构建模型。

再看看大数据的流动

        对于管理者来说,合适的人出现合适的岗位是衡量管理者是否合格的重要标准之一。对于数据分析人员,合适的工具匹配合适的数据则是是否胜任工作的 基本素质之一。R并不是通吃所有的数据场景,它只是在出现在该出现的分析建模环节。

        R的位置在哪里?先让我们看看所谓的大数据是如何从企业中传递的:

36大数据

  • 从最底层的原始数据来看,PB级数据确实不是R所擅长,但这些数据有Hadoop或者其他高性能存储和处理系统;

  • 向上是针对于不同业务场景的数据集市,经过清洗后,数据的规模则下降到了TB级;

  • 再向上则是针对于特定任务的分析和挖掘模块,数据已经被整理到了GB级,这时候R的处理则是非常方便

  • R分析的结果则是MB级的输出,比如图表、得分,或者是规则。比如规则很容易在数据集市这段做并行化计算

        我的团队在大量使用R作为分析建模工具,看似比较另类,但其实Google、Facebook、Linkedin等公司已经有大量的直接使用R做分析挖掘的应用, 只是大家不太留意罢了。

        一句话总结:R并不是在象牙塔里供科研人员玩耍的玩具,而是实实在在工业界使用的便捷环境。

当然,这里还有很多问题没有展开,比如:

  • R语言的数据挖掘应该在并行化环境完成还是在单台机器的计算环境完成?

  • 抽样可否解决大数据挖掘问题?

  • 生产中直接实施R环境是否可行?


© 著作权归作者所有

粉丝 31
博文 1645
码字总数 2338861
作品 0
邢台
私信 提问
微软拥抱开源的步伐又迈进了一步

去年,当萨提亚·纳德拉说出“微软深爱着Linux”这句话的时候,微软已经下定了决心要积极开放地拥抱开源。鲍尔默时代微软将开源操作系统视作 “毒瘤”的想法,可以说是已经荡然无存了。所以在...

oschina
2015/07/02
7.2K
17
数据可视化,带给你的惊艳并不止这一点!

在大数据时代的现今,数据庞大且繁杂,仅通过简单的数据整理得出清晰的结论,已经不太合理。实际上,若要简明扼要地展示出结论,不妨考虑一下数据可视化。 那么,什么是数据可视化呢? 数据可...

技术小能手
2018/08/22
0
0
初步学习大数据进入这一领域,这十本书是你必读的

据可靠数据显示,截止到2018年,全国的大数据人才只有46万,未来3-5年人才缺口高达150万之多。市面招聘网站上都在争抢大数据人才,有3-5年工作经验的数据分析师年薪直接高达80万元,但是能找...

董黎明
2018/11/11
26
1
R语言可视化学习笔记之相关矩阵可视化包ggcorrplot

基于ggplot2包以及corrplot包的相关矩阵可视化包ggcorrplot,ggcorrplot包提供对相关矩阵重排序以及在相关图中展示显著性水平的方法,同时也能计算相关性p-value 安装方法就不提了,不懂的可...

R语言中文社区
2018/01/25
0
0
这些常见的机器学习工具,不知道的快来补课

随着人工智能的火热,很多企业甚至是数据挖掘爱好者开始尝试自己动手来挖掘数据中的价值。机器学习的基础设施包括数据、算法和工具。前面已经介绍了数据和算法方面的内容,本文将重点介绍机器...

异步社区
2018/09/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

家庭作业——苗钰婷

2 编写一个程序,发出一声警报,然后打印下面的文本: Startled by the sudden sound, Sally shouted, "By the Great Pumpkin, what was that! #include<stdio.h>int main(){......

OSC_Okruuv
11分钟前
1
0
经典系统设计面试题解析:如何设计TinyURL(一)

原文链接: https://www.educative.io/courses/grokking-the-system-design-interview/m2ygV4E81AR 编者注:本文以一道经典的系统设计面试题:《如何设计TinyURL》的参考答案和解析为例,帮助...

APEMESH
12分钟前
1
0
2.面向对象设计原则(7条)

开闭原则 开闭原则的含义是:当应用的需求改变时,在不修改软件实体的源代码或者二进制代码的前提下,可以扩展模块的功能,使其满足新的需求。 实现方法 可以通过“抽象约束、封装变化”来实...

Eappo_Geng
14分钟前
1
0
8086汇编基础 debug P命令 一步完成loop循环

    IDE : Masm for Windows 集成实验环境 2015     OS : Windows 10 x64 typesetting : Markdown    blog : my.oschina.net/zhichengjiu    gitee : gitee.com/zhichengjiu   ......

志成就
18分钟前
1
0
使用nodeJS实现前端项目自动化之项目构建和文件合并

本文转载于:专业的前端网站➜使用nodeJS实现前端项目自动化之项目构建和文件合并 前面的话   一般地,我们使用构建工具来完成项目的自动化操作。本文主要介绍如何使用nodeJS来实现简单的项...

前端老手
32分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部