R和数据挖掘

相反,开始在Matlab中编写代码,我最近开始学习R,主要是因为它是开源的。 我目前在数据挖掘和机器学习领域工作。 我发现在R中实现了很多机器学习algorithm,而且我仍然在探索在R中实现的不同包。

我有一个很快的问题:你如何比较R与Matlab的数据挖掘应用程序,其stream行程度,利弊,行业和学术接受度等? 你会select哪一个,为什么?

我经历了各种比较的Matlab与R对各种指标,但我特别感兴趣的是在Data Mining和ML的适用性得到答案。 既然这两种语言对我来说都很新,我只是想知道R是不是一个好的select。

我很欣赏任何types的build议。

在过去三年左右,我每天都在使用R,而这个日常使用的最大部分花在了机器学习/数据挖掘问题上。

在大学时,我是一个独家的Matlab用户; 当时我认为这是一套很好的工具/平台。 我相信今天也是如此。

neural network工具箱,优化工具箱,统计工具箱和曲线拟合工具箱对于使用MATLAB进行ML /数据挖掘工作的人来说都是非常可取的(如果不是必需的话),但是它们都与基本的MATLAB环境是分开的 -单词,他们必须单独购买。

我的前5名学习ML /数据挖掘在R

  • 在R中挖掘关联规则

这是指一对夫妇的事情:首先,一组R包,都开始arules (可从CRAN); 您可以在Project Homepage上find完整的列表(arules,aruluesViz等)。 其次,所有这些软件包都基于数据挖掘技术,称为市场分析分析 ,或者作为关联规则 。 在许多方面,这一系列algorithm是数据挖掘的本质 – 彻底遍历大型事务数据库,并在这些数据库中的字段(variables或特征)之间find高于平均水平的关联或相关性。 在实践中,你将它们连接到一个数据源并让它们在一夜之间运行。 上面提到的集合中的R包叫做arules ; 在arule的CRAN Package页面上,您可以find指向Arules包和一般关联规则技术的几个优秀二级资源(R's词典中的短片 )的链接。

  • 标准参考,Hastie等人统计学习元素

这本书的最新版本是免费的数字forms。 同样,在本书的网站上(链接到上面),都是ESL中使用的所有数据集,可以免费下载。 (另外,我有免费的数字版;我也从BN.com购买了精装版;数字版的所有彩色图都是以硬装版的forms复制的。)ESL包含至less一个示例的全面介绍大多数主要的ML标准 – 例如neural network,SVM,KNN; 无监督技术(LDA,PCA,MDS,SOM,聚类),多种回归,CART,贝叶斯技术以及模型聚合技术(Boosting,Bagging)和模型调整(正则化)。 最后,从CRAN中获取随书的R包(这将节省下载input数据集的麻烦)。

  • CRAN 任务视图:机器学习

可用于R的+3,500套餐按域分为大约30个套餐系列或“ 任务视图 ”。 机器学习是这些家庭之一。 机器学习任务视图包含大约50左右的包。 其中一些软件包是核心发行版的一部分,包括e1071(一个庞大的ML软件包,其中包括许多常见的ML类别的工作代码)。

  • 革命分析博客

特别关注标记为预测分析的post

  • R教程中的ML由幻灯片组和Josh Reich的R代码组成

对代码的深入研究本身就是对R中ML的一个很好的介绍。

我认为最后一个资源是优秀的,但没有在前5名中做出:

  • 机器学习的入门指南[R]

张贴在博客A美丽WWW

请看CRAN任务视图 ,特别是在机器学习和统计学习的CRAN任务视图上 ,这个视图很好地总结了这一点。

如果你正在做matrix繁重的操作,Matlab和R都很好。 因为他们可以使用高度优化的低级代码(BLAS库等)。

但是,数据挖掘不仅仅是处理matrix。 很多人完全忽视了数据挖掘的整个数据组织方面(而不是简单的机器学习)。

一旦你到达数据组织,R和Matlab是一个痛苦。 尝试在R或matlab中实现一个R * -tree,使O(n^2)algorithm运行到O(n log n)运行时。 首先,它完全违背了R和Matlab的devise方式(尽可能地使用批量math运算),其次它会杀死你的性能。 例如,解释的R代码似乎运行在C代码速度的50%左右(尝试R内置的k-means与flexclus k-means); BLAS库被优化到一个疯狂的水平,利用caching大小,数据alignment,先进的CPUfunction。 如果您喜欢冒险,可尝试在R或Matlab中实施手动matrix乘法,并将其与本机进行基准比较。

不要误解我的意思 R和matlab 对于原型devise来说是非常优秀优秀的 。 你只需要10行代码就可以解决很多问题,并且可以获得不错的性能。 用手写同样的东西可能是数百行,大概慢10倍。 但是有时候你可以通过一个复杂度来进行优化,这对于大数据集来说优于R和matlab的优化matrix运算。

如果您想要长期扩展到“Hadoop大小”,您不得不考虑数据布局和组织,除非您需要对数据进行线性扫描。 但是,那么你也可以抽样了!

昨天我发现了两本关于数据挖掘的新书。 这些“数据挖掘”系列书籍通过深入描述新的挖掘algorithm和许多有用的应用程序来满足需求。 这两本书除了深入理解每一部分之外,还为后续章节中解决问题提供了有用的线索和策略。数据挖掘技术的进步和大众的普及需要一个综合性的文本。 书籍是:“数据挖掘的新基础技术”,这里http://www.intechopen.com/books/show/title/new-fundamental-technologies-in-data-mining&; “面向知识的数据挖掘应用”在这里http://www.intechopen.com/books/show/title/knowledge-oriented-applications-in-data-mining这些是开放获取书籍,所以你可以免费下载,或只是像在线阅读平台上阅读。; 干杯!

我们不应该忘记这两个软件的来源:科学计算和信号处理导致Matlab,但统计数据导致R.

我在大学中使用了很多matlab,因为我们在Unix上安装了一个matlab,并向所有学生开放。 然而,与自由的R相比,Matlab的价格太高。如果你的主要焦点不是matrix计算和信号处理,R应该适合你的需要。

我认为这也取决于你在哪个学习领域。 我了解沿海研究中的人们使用了很多Matlab。 在这个组中使用R会让你的生活更加困难。 如果一个同事解决了一个问题,你不能使用它,因为他使用Matlab来修复它。

当你处理大量的数据时,我也会看看每一个的function。 我知道R可以有这个问题,如果你习惯于迭代数据挖掘过程,可能会受到限制。 例如,同时查看多个模型。 我不知道MATLAB是否有数据限制。

我承认赞成MATLAB的数据挖掘问题,我在这里给我一些推理:

为什么用MATLAB进行数据挖掘?

我只会承认对R / S-Plus的熟悉,但我会提出以下意见:

  1. R肯定比MATLAB有更多的统计焦点。 我更喜欢在MATLAB中构build我自己的工具,以便我确切地知道他们在做什么,并且可以自定义它们,但在MATLAB中这比在R中更为必要。

  2. 新的统计技术(空间统计,强大的统计等)的代码经常出现在S-Plus的早期(我认为这延续到R,至less有一些)。

  3. 几年前,我发现R,S-Plus的商业版本的数据容量非常有限。 我不能说R / S-Plus的状态是什么,但是你可能想要检查你的数据是否适合这样的工具。