数据挖掘之R与SQL
当前位置:以往代写 > 其他教程 >数据挖掘之R与SQL
2019-06-14

数据挖掘之R与SQL

数据挖掘之R与SQL

最近在数据挖掘专业网站 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转义的,可以执行,对付数据库而言不外是半分钟的工作。

      关键字:

    在线提交作业