数据挖掘编程语言选择(Python与R的PK)
关键词: 数据挖掘 编程语言,python语言编程,python c语言混合编程,数据挖掘需要会编程吗
数据挖掘技术日趋成熟和复杂,随着互联网发展以及大批海量数据的到来,之前传统的依靠spss、SAS等可视化工具实现数据挖掘建模已经越来越不能满足日常需求,依据美国对数据科学家(data scientist)的要求,想成为一名真正的数据科学家,编程实现算法以及编程实现建模已经是必要条件;目前很多从事数据挖掘工作的人,大多都是出身非计算机专业,本身对编程基础比较低,所以找到一门快速上手而又高效的编程语言是至关重要的,好的工具和编程语言可以起到事半功倍的效果。
目前在数据挖掘算法方面用的最多的编程语言有:Java、C++、C、Python、R等等
由于笔者本身属于数理统计出身,复杂而高级的语言对我来说性价比并不高,所以想从头对Java、C++、C开始学起,浪费的时间和精力与收获明显不成正比。所以Python和R语言成了最佳选择。对于同样和我背景相似的数据从业人员,我强烈推荐从这两者选择其一。
原因有三:
第一:Python和R本身在数据分析和数据挖掘方面都有比较专业和全面的模块,很多常用的功能,比如矩阵运算、向量运算等都有比较高级的用法,所以使用起来产出比大;
第二:这两门语言对于平台方面适用性比较广,linux、window都可以使用,并且代码可移植性还算不错的。
第三:对于学数理统计的人来说,应该大多用过MATLAB以及mintab等工具,Python和R比较贴近这些常用的数学工具,使用起来有种亲切感
至于Python和R两者如何选择,本人有点粗浅认识:
这两个工具都很方便,不需要非常高深的编程能力,都适合算法开发,有大量的package供你使用。
Python入门简单,而R则相对比较难一些(纯个人感觉,依据每个人之前的经验,可能不同的体验)。
R做文本挖掘现在还有点弱,当然它的优点在于函数都给你写好了,你只需要知道参数的形式就行了,有时候即使参数形式不对,R也能“智能地”帮你适应。这种简单的软件适合想要专注于业务的人。
Python几乎都可以做,函数比R多,比R快。它是一门语言,R更像是一种软件,所以python更能开发出flexible的算法。
Python适合处理大量数据,而R则在这方面有很多力不从心,当然这么说的前提是对于编程基础比较一般的童鞋,对于大牛来说,多灵活运用矢量化编程的话,R的速度也不会太差。
论性能,Python介于C/C++/Java这些高级语言与R语言之间,虽然性能不及那些高级语言,但是一般日常的数据用Python基本都能实现,对于性能要求不挑剔的人来说,足够了
python 你需要安装numpy,pandas,scipy,cython,statsmodels,matplotlib 等一系列的程序包,还需要安装ipython交互环境,单独用python直接做计量分析统计函数是没有函数支持的;R是基于统计分析的,性能和效率上要略逊于python。R的优势在于统计学和数据计算和分析上要优越于python。
Python语言编程的代码可读性高,整体美观,属于简单粗暴性质的,短时间内少量代码可实现复杂功能;R的语法很奇怪,各种包并不遵守语法规范,导致使用起来经常感觉蛋疼;R程序最终看起来没有Python那么简洁美观。
从全面性方面,我认为Python的确胜过R。无论是对其他语言的调用,和数据源的连接、读取,对系统的操作,还是正则表达和文字处理,Python都有着明显优势。毕竟,python本身是作为一门计算机编程语言出现的,而R本身只是源于统计计算。所以从语言的全面性来说,两者差异显著。
python是machine learning领域的人用的较多。据我所知,做marketing research, econometrics, statistics的人几乎没有用python的
当然了,现在学编程比以前可简单了多了。有句话不是这么说的么,“我不生产代码,我只是stackoverflow的搬运工”。。。
以上仅仅是个人感悟,如表述不当,欢迎指出,拍砖的手下留情哦