Beta

It’s a beautiful thing when free data meets free algorithm.

第13期KDnuggets 关于数据挖掘软件的调查结果新鲜出炉,调查了对于过去的 12 个月里实际的项目过程中使用了哪些数据挖掘(分析)软件?不出所料,底层语言使用频率最高的是依旧是 R 语言、SQL、Java和 Python。而从软件工具角度上看,R、Excel和RapidMiner则名列三甲(去年R排名第二),具体排名如下图:

可以看到,排名靠前的以开源软件为主,商业软件则相对靠后。造成这种现象的原因很多,其中一条比较重要的因素就是当今社会复杂的数据环境,必须有更加灵活的软件做支持,灵活则是生命力。这个角度上看,闭源的商业软件依旧停留在上个世纪 70 年代 batch 的方式,曾经积攒的优势越来越不明显。

对于同 R 语言同级别的 SAS 而言,在这个调查下其使用流行度进一步萎缩。甚至有人估计,2015 年将是 SPSS 和 SAS 历史的终点。

其实我不太想看到这一天~~

在我还没回过神的时候,今年的 R 语言会议北京场己经结束,伴随着早上迷糊的送走李舰,意味着这次相聚终于曲终人散。本来我不是伤感的人,但今天看到邱怡轩师弟的一句微博:

感谢几位引路人。@谢益辉 @刘思喆 @雁起平沙 @thinkfan

这个中滋味……

这些年,和周围的朋友们一起成长,一起为了一个目标努力。大家同分享,同分担,俨然一个大家庭一样,想到马上这些优秀的师弟、师妹们都会远赴大洋彼岸,真的很失落。

R会议结束后,大家又一起和熊师妹过生日party,遥想去年还有江堂,现已身居美帝。紧接着就是轩、熊和岚,明年的这时候再聚又会少了很多。也许相聚的次数越来越少,正如堰平所说,有的人一转身就是一辈子。

最后来张照片——非常荣幸能够受到伯克利统计系郁彬教授的教诲。郁老师同大家分别时,饱含深情的一席话:

You are the future of statistics!

与致力于统计事业的各位共勉!

前段时间在老家给小舅子补习高中数学,其中有一道数列的求解,题目是这样的:

  • a_1 = 1
  • a_2 = 1
  • a_n = a_(n-1) + a_(n-2)

求 a_n 的通项表达。

解题思路是先构建等比数列 b_n,再将等比数列 b_n 变形回 a_n ,求得通项。 这道题实际就是费波那西数列的初等代数求法。费波那西数列在科学、自然界等很多领域都有表现, 比如我们常说的黄金分割比(1.618),即是两个相邻费波那西数的比值

f(n + 1)/f(n) = (1 + sqrt(5))/2

还有美丽的向日葵的花盘中果实:

阅读全文 »

一直以来,我们在提到使用R进行数据分析、数据挖掘都会使用RODBC、RJDBC、DBI等相关的包来调用数据库,比如我前面罗嗦的一片文章数据挖掘之R与SQL,但实际基本上各大数据库厂商已有相应的R语言企业级应用产品,这些厂商包括Oracle、IBM、Teradata、Sybase、SAP。

Oracle R Enterprise

Oracle R Enterprise是针对于大数据市场下,用于处理日益丰富的数据。这款产品有以下优势:

企业级的R应用

  • 允许DBA将R语言模型产品化
  • 可以将R模型整合到BI仪表盘(BIEE)
  • 统计学家可以直接使用数据库,而不需去了解具体SQL
  • 减少Oracle数据库外的数据管理成本

减少高昂SA$的使用费用

  • 可完全替代SA$ base,节省SA$的使用年费
  • 分析人员可以直接面对数据库进行个性化分析,而不需要数据导出
  • 超过100内置的统计函数可以同Base SA$兼容

大数据分析的in-database支持

  • 高性能的代数运算(在 R 中整合ntel's Math Kernel Library
  • R语句的执行的使用并行化运算方式(包括扩展包)
  • 高度整合了R语言快速开发、数据库并行计算的优势

众所周知,R 语言将数据置于内存,数据处理能力有限,Oracle R Enterprise 将此瓶颈完全打开,并将性能提升到更高级别。

IBM Netezza®

Netezza 并不隶属于IBM原有产品线,而是针对于“一体机”市场,于2010年17亿美元的价格收购获得, 用以扩张其用于销售、市场营销和产品开发的商务分析产品。Netezza对R语言的支持,主要通过Revolution合作, 通过调用R Enterprise from Revolution® Analytics平台来实现。Netezza的特点可以总结为:可扩展的、高性能的、大规模内置并行分析平台。

注:除了R语言外,Netezza还支持SAS、PASW等分析软件

IBM® InfoSphere® BigInsights

IBM BigInsights 同样也整合了R语言资源,提供了Map-Reduce架构的R语言并行化计算环境,包括了大数据集的文本挖掘和机器学习算法。 BigInsights可以将构建的R语言模型发布在Hadoop平台上(同IBM Netezza一样,通过调用R Enterprise from Revolution® Analytics),极大的满足企业级数据需求。

注:为 IBM 提供R语言商业化应用的公司是 Revolution,关于这家公司可以参考这里

SAP HANA

借助SAP BusinessObjects Predictive Analysis平台,分析师们既可以使用内置的预测性算法来构建模型,也可以整合并使用流行的开源数据统计分析语言——R语言。并且,依托SAP HAHA平台可以提供in-database分析。

Teradata

Teradata提供了免费的 teradataR 包,用于在R环境下连接Teradata数据库、创建数据、条用in-database分析函数。

  • 避免了从 Tetadata 到 R 之间的数据移动,有效提高了数据运算性能
  • 针对于大数据的分析任务,使用 Teradata 的强大并行计算的能力
  • 允许在R控制台操作
  • 将常用的执行任务嵌入到数据库中执行
  • R 和 TetadataR 都是免费的

Sybase RAP

Sybase RAP主要是针对于金融市场的实时分析,其中RAPStore组件提供了内置分析函数,包括时间序列分析函数、OLAP函数、R语言整合函数以及用户自定义函数,适用于大数据环境。

同时,还可以在R语言环境下通过RJDBC访问Sybase RAP,进行数据预处理,避免在R中数据清洗占用大量内存。

全文完,请期待 R + Hadoop

上一篇文章说道最近我在做文本挖掘方面的一些工作,到今天为止暂告一段落。刚好也整理了一份针对中文的《R语言环境下的文本挖掘》, 供感兴趣的童鞋参考(见文章底部)。

自然语言处理(Nature Language Process)是一个非常让人着迷的领域,应用范围非常广泛, 比如去年人机大战中大出风头的IBM Watson,iPhone 4S的语音助理模块Siri, 以及针对于社会热点的舆情分析,这些应用都使用了自然语言处理技术。 当然,统计背景的分析类科研人员更关注于舆情分析这类的文本挖掘技术。

很多统计软件都提供了文本挖掘的功能,比如常见的数据分析软件SAS、SPSS等,以及一些语言如Python、Java,侧重点有所不同。 但对于一般文本挖掘主要包括:

  • Preprocess:数据准备、导入、清洗以及一般性的预处理
  • Associate:关联分析,根据同时出现的频率找出关联规则
  • Cluster:将相似的文档(词条)进行聚类
  • Categorize:将文本划分到预先定义的类别里
  • API:可扩展的应用编程接口

至少在2008年,商业和开源软件的功能特性差不多 (但我不确认Latent Semantic Analysis、Latent Dirichlet Allocation这类的模型是否支持), 只是由于众所周知的缘故,对于API的扩展支持有所差异。

对于中文环境下的文本挖掘,无外乎要解决如下几个问题:

  • 较为精确的中文分词(可能还需要支持个性化题库,甚至词性分析)
  • 生成词条-文档矩阵,甚至矩阵的运算
  • 后续的挖掘算法支撑(传统的以及语义类的)
  • 其他

在R语言环境下,有众多的包支撑解决上述问题。 Ingo Feinerer开发维护的tm包提供了完整的文本挖掘的框架, 借助辅助工具及R包,甚至还可以处理word、pdf文档的读入,文档处理并行化运算,文件数据库的语料处理等问题。

闲话不多说,最下面链接给出了一份基于《Introduction to the tm Package》整理的,基于tm包的中文文本挖掘的介绍性文档,内容包含

  • 互联网网页处理:XML包的简介
  • 中文分词
  • tm包的完整介绍:读写、语料库构建、过滤、转化、元数据、文档-词条矩阵等
  • 文本挖掘技术及应用等

当然,作为非正式发布文档还有很多地方不尽完善,后续可能会有较大更新,请关注博客上的to do list。

文档下载:R语言环境下的文本挖掘

0%