今天看到老同学@JulieJulieJulieJulie浪漫求婚,真的很浪漫、很唯美、很感动。正如评论说的,我们又相信爱情了!于是,小兴奋,睡不着,爬起来补一篇文章。

## 正文开始

最近在数据挖掘专业网站 KDnuggets 上刊出了2011年度关于数据挖掘/分析语言流行度的调查,不出意料R、SQL、Python果然排在了前三位。当然有看官说了,参与调查的样本数量太少,而且以登录KDnuggets网站的用户为主,样本的信息显然是有偏的。实话说,我也对KDnuggets网站的Poll持保留态度,但它的结果毕竟代表了某一类人群的使用偏好,尤其是在语言角度。

我们看排名前5位的语言:

  1. R:世界范围内的标准统计语言,以快速更新的算法,灵活的编程,广泛的扩展,绚丽的图形著称,遵循GPL协议的开源软件
  2. SQL:大部分企业使用的,数据仓库、集市的通用查询语言,在大型数据应用上有极大的优势,同时也是数据分析/挖掘的基础
  3. Python:传说中的Google的三大开发语言,适用于粘合一些复杂应用,我这里工作暂时没有涉及过
  4. Java:太多的应用都基于Java的,不然Oracle也不会花上74亿美元收购SUN了
  5. SAS:曾经的数据分析领域老大,当然现在市场份额依旧非常高。但SAS昂贵的使用费用迫使更多的分析工作者转到了开源领域,比如R

后四种语言同R语言还都有一些关系,闲扯起来还真是没完没了,这里就不再赘述,各位可以在搜索引擎上搜索R+XXX。如果我们将范围限制在数据挖掘这个主题,R同SQL的关系则变得非常非常紧密。

众所周知,R的强项在于灵活的算法,以及开发速度,但其所有的计算都是在内存中进行,一旦数据量达到了内存上限,基本上就是叫天天不灵,叫地地不应了。所以在使用R做数据挖掘时,就必须考虑使用其他的数据工具弥补R在这方面的劣势。尤其是在商业应用上,不能搭建R环境的条件下,SQL语言是提供挖掘结果的不二选择。

支持SQL的商用数据库比如Oracle、DB2性能优异,但对系统的占用非常厉害,假如本地装了Oracle,又开了点其他应用,2G的内存很快就会吃到1.5G甚至以上,再想用R做分析那只能用“捉襟见肘”这个词来形容了。当然如果在办公条件下有相应的服务器环境最好,在某些应用环境下,甚至可以通过本地多开R进程来达到并行计算的目的。

或者本地分析比较多,但数据量又时常上到百兆,虽然R也能够处理,但依然建议将数据移植到本地构建的轻量数据库环境,比如MySQL环境。从我的经验上看,虽然MySQL对比Oracle、DB2来说小巧很多,但在同R语言配合的本地应用上,性能更加有保证。

有了支持SQL的数据库环境,就要聊一聊R语言到底和SQL有什么关系:

  • 各大数据库厂商已经开发了相关的支持R语言的数据挖掘套件,比如Oracle的RODM,Teradata的 teradataR等。
  • R本身就可以通过扩展包来对数据库执行SQL,这时你可以把R语言作为调度环境。R的计算过程结果可以直接作为参数传递到数据库中,并将相应的结果返回,供R环境使用。
  • 通过sqldf包,在R内部使用标准SQL对数据进行预处理,包括group by,order by,join,where等操作。
  • 当然R最重要的用途是将数据挖掘的结果转义为标准SQL语言,利用数据库来实现挖掘结果。当然有人说了,不是有pmml可以将模型嵌入到数据库么?!扯!到现在我也没见pmml成为应用标准,老老实实的将模型结果转义到SQL才是王道。比如用于概率预测的Logistic回归或者分类模型的Tree-based Models,这些模型的转义工作都不难,这样最终的工程实施都脱离了R环境,更具通用性,且利用了数据库的高速性能。

说句题外话:不知道哪位看官见过70万字符长度的庞大SQL语句——是的,你没看错,70w,R转义的,可以执行,对于数据库而言不过是半分钟的事情。

 


在2008年,第一届中国R语言会议上,来自于艾瑞咨询的张翔为大家展示了一组极具震撼力的泡泡图,而这段视频便是Hans Rosling 在2006年 TED 上的演讲,讲述的是1956年-2006年之间各国间的经济发展变化。虽然个人认为泡泡图的实现的技术并没有太多技术含量,但惊讶于Hans Rosling大智若愚的演讲能力,甚至再看完五六遍之后,仍然还会被其感染。

再后来, Hans Rosling将这款数据展示产品卖给了Google,而Google又将其整合到Visualisation API 里,于是我们可以调用Google的API来使用这些有趣的图形展示功能。

更令人鼓舞的是:前不久,Markus Gesmann, Castillo两位老大,写了googleVis这个R扩展包,将Hans Rosling的泡泡图同R语言完美的整合在了一起:)

下面就是在R语言里,通过googleVis包,对我国2006年至今的货币供应量(M0、M1、M2)Motion Chart(将横坐标设置为time以后,点击Play)

碎碎念:从泡泡的跳动上看,央行投放的货币供应量(亿元)在2009-2011年间,增加的最为剧烈,当然这个时间段也是房价近十年间增长最为迅速的两年。而现在呢,房市开始限购,国内房地产市场已经撑不住超发的货币,因此广泛的通货膨胀开始蔓延。引用郎咸平的几段话:

我们近几年发了76.5万亿的货币,是GDP的2.5倍,而美国的货币量除上GDP只是0.6,只有我们的四分之一

唯一的解释只能是货币的购买力在下降,这就是经济学里的通货膨胀

最后,关于googleVis包的使用请移步至这里

 

yanlinlin 站长放出个问题,按照《魔方与数学》一文的后记上记录的:

请将1111111111、……的平方写下来,从最小的开始,每个占一行,并且全部居中书写,图形的样子?

问题不难,不外乎就是将这些数字平方,在按照要求放置。但,存在一个小问题,计算机一个单元存储数据的数据长度不是无限制的,而且精度也有所限制,所以当11111111平方的时候,R给出的数据已经是约数了。帖子讨论详见(这里

还好,这些数据的平方比较简单,可以通过模拟平方的运算过程来得到精确的结果,代码如下:

生成的图形有些像杨辉三角,也是非常漂亮:

但我想应该还有更好的实现方式,期待跟帖出现。

 

又是一个R不务正业的例子。

三天前,itux 在统计之都论坛上问到了如何做 Matrix67 博客上的平滑马赛克图,我是好事之徒,颠颠地跑去瞧了一眼。恩,蛮有意思的,而且非常黄,非常暴力!但比较悲剧的是我不会用Mathematica,只好用R实现了一下。

本来想标题改的彪悍一些——《一千二百个女人和我的故事》,想想还是算了吧,虽说是用了1200个漂亮女人组成了我的头像,但她们我一个也不认识,哈哈。

用的原图我就不贴了,实际上我是戴着眼镜的,马赛克平滑以后,不明显了。

最后是代码。非常简单,不到20行。大概所需要的时间:构思写代码1个小时,下载和整理图片时间长点,3个多小时(当然你本地资源和Matrix67一样丰富的话另说,哈)。

 

 

原文链接在这里

10.解不了数独游戏??用R!

9.先人一步的技能??学R!它是主流开源统计及数据分析语言,并且仍然在升温!

8.需要在你的软件应用中使用统计计算模块??部署R吧!它可以整合其他的编程语言,比如Java、Ruby、C++、Python

7.看看这些用于解决复杂问题的,可重复使用的R扩展包??用R吧!它有2000+的扩展包,涉及金融、自然语言处理、聚类、最优化、预测、高性能计算等等。

6.R可以运行在所有的平台下(是全部哦),比如Windows PC、Mac、Linux……

5.你想知道统计多么有趣——试试R!!

4.你了解最近的趋势么?这些成功的企业,比如纽约时报、谷歌、Facebook、美洲银行(美国)、辉瑞、默克都在使用R,那你呢??

3.需要做适合自己特点、独有的分析么??需要解决一个优化问题么??还在自己的模型里同 Excel 或 SQL 做斗争么??试试R!!

2.想弄一张迷人的图形么?试试R!

1.想得到2014年最酷的工作??学统计。在未来,数据分析师是最时髦的工作(在2018)。

 

10. Can’t crack that hard Sudoku problem?? Use R!
9. Want to pick a skill that will give you an early adopter advantage?? Learn R! It is the leading open source statistical and data analysis programming language, and is heating up!
8. Need to run statistical calculations in your software application?? Deploy R! It integrates with many programming languages like Java, Ruby, C++, Python
7. Looking for reusable libraries to solve a complex problem?? Get R! It has 2000+ free libraries to use in areas of finance, natural language processing, cluster analysis, optimization, prediction, high performance computing etc.
6. No Windows, No Doors – R runs on all the platforms. Just name it and you got it!! Windows PC, Mac, Linux to name a few
5. Did you know how much fun stats can be- Try R!!
4. Are you updated with the current trends?? Leading firms like NY Times, Google, Facebook, Bank of America, Pfizer, Merck are all using R, where are you??
3. Need to run your own analysis?? Need to solve an optimization problem?? Struggling with Excel or SQL in your model??….. just few statements away – Try R!!
2. Want to create a compelling chart?? Try R!
1. Want the coolest job in 2014?? Learn Statistics. It is the future. Data Scientists will be the sexy job in 2018.


© 2012 刘思喆 @ 贝吉塔行星 Suffusion theme by Sayontan Sinha