数据挖掘之R与SQL
最近在数据挖掘专业网站 KDnuggets 上刊出了2011年度关于数据挖掘/阐明语言风行度的观测,不出料想R、SQL、Python公然排在了前三位。虽然有看官说了,参加观测的样本数量太少,并且以登录KDnuggets网站的用户为主,样本的信息显然是有偏的。实话说,我也对KDnuggets网站的Poll持保存立场,但它的功效究竟代表了某一类人群的利用偏好,尤其是在语言角度。
我们看排名前5位的语言:
- R:世界范畴内的尺度统计语言,以快速更新的算法,机动的编程,遍及的扩展,烂漫的图形著称,遵循GPL协议的开源软件
- SQL:大部门企业利用的,数据客栈、集市的通用查询语言,在大型数据应用上有极大的优势,同时也是数据阐明/挖掘的基本
- Python:传说中的Google的三大开拓语言,合用于粘合一些巨大应用,我这里事情临时没有涉及过
- Java:太多的应用都基于Java的,否则Oracle也不会花上74亿美元收购SUN了
- 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有什么干系:
说句题外话:不知道哪位看官见过70万字符长度的复杂SQL语句——是的,你没看错,70w,R转义的,可以执行,对付数据库而言不外是半分钟的工作。