欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

Python 是一门适合做数据挖掘的语言吗?

程序员文章站 2022-05-15 09:05:26
...
最近看见两本书,《集体智慧编程》,《 社交网站的数据挖掘与分析》,两本书都是以Python语言来讲解的,都是讲的数据挖掘方面的东西,其中后者还是 2011年Jolt生产效率大奖获奖图书,难道Python很适合 做数据挖掘吗?

回复内容:

python强调程序员的生产力,让你把精力集中在逻辑上而不是语言本身上。
你能想象用一下午时间实现从0开始一个简单的搜索引擎吗?C++显然是不行的。。你的大部分时间都将花在实现基本数据结构和调试语言错误上。。而用python,你要做的就是真正理解搜索算法,之后的实现真的很简单。。

我觉得用python很适合算法研究,不仅仅是数据挖掘。快速开发能让你迅速验证你的想法,而不是把时间浪费在程序本身上(想象一下你写了一星期的c++,调了一大堆指针错误,最后发现想法本身就有错误。。)当你知道你已经有了一个正确的算法,要使他运行速度提高只需用c++等重写性能瓶颈并嵌入就行了。。

Links:
  • Scipy Stack(scipy.org/getting-start) - general tasks
  • Spark(spark.apache.org/docs/l) - going large
  • Tensorflow(tensorflow.org/) - going deep
  • GitHub - jupyter/docker-stacks: Opinionated stacks of ready-to-run Jupyter applications in Docker.
python适合快速开发,我们这里数据挖掘的框架用python写,开始用python去实现你的基本的想法,不过等成熟以后最核心的算法还是用java和c写的,一方面把你的算法隐藏起来,另外一方面也是因为效率的原因。 是的,Python适合做数据挖掘。作为脚本语言,Python快速开发的优点其他答案都说了。

Python适合做数据挖掘的另一个原因是社区现在比较成熟,mloss上面发布的Python程序越来越多。最著名的就是scikit.learn了吧,几乎涵盖了机器学习中常用的算法,而且scikit.learn更新非常快。

scikit.learn只是举了一个例子,还有orange,pyml等很多非常棒的package,有了这些包的支持,做数据挖掘和机器学习的时候,就会很节省时间了。 根据我这几个月的实际使用情况来看,R的软件包确实很丰富,但是这个也有很大的坏处,包的水平参差不齐,会面临各种版本不兼容的情况;举个例子,也许你的统计包只能用3.0以下的R,而你需要的第三方绘图包确实需要最新版的R,很伤脑筋;加之众多软件包在很早就停止维护了,从这个角度来看,包的数量多并不是一个很强的优势。
python的各类统计和计量的包已经到了可以用的程度了,由于开发团队活跃,导致包文档的及时性和开发思路一致,一通百通,使用起来很顺手;但是python的问题在于包不成熟,就比如我在使用python的pandas包是就发现其参数有尚未实现的情况,详情见专有型数据处理
综合来看,python是适合做数据的,一是,对于非计算机科班出身不会有技术问题,python本身是非常便于使用的;二是,数据挖掘需要的工具在目前来看python基本都已经具备,并且在稳步的发展;三是,python在面临性能问题时解决方案众多。 Python相对于R是有很多优点的,R基本不存在数据结构的概念,导致你没有办法优化算法
R相对Python的优点可能在于更多的包(比如数据可视化和神经网络,这两个用Python不太好做) 数据挖掘感觉还是R专业一些,能直接接触到最新的方法,某些领域可能R做得更专业一点。
当然,如果python也不是说不行——一般的情景两者都能实现。
另外,也有人用python调用R的,其实发挥到极致,无论什么语言都能实现。 depends。 、

如果你想用别人做好的成熟的*,那 python 是不二之选。因为 python *多而且全,比如 numpy,scipy,scikit learn,gensim 等等都是成熟的*。 至于什么叫成熟,主要是一下两点:
1. 快,numpy 中大量用 c 写的 data structure,和 function,用起来及其快,而且方便。而且和其他*协作及其好
2. 安全,因为 python 是广泛应用,而且开源,标准的语言,所以*是基本不会出 bug 的,放心用。
这样节省了及其多的开发时间,在程序的运行效率上也不会有极大的降低。

当然,如果你需要对其他人的*有很大的更改,甚至于从数据结构上 numpy 都没法满足你,或者你需要追求速度,比如像微软,要带那么强大的东西,还要保证速度。那你也就必须要用 c 了。。。python实在太慢。。。 如果我简单回答"不是",以为至少可以阻止一些想做数据挖掘的人去学python反而没有及时学好R语言。尽管我招聘工程师的JD 里也提到了python, 但并非直指数据挖掘,而是为了ETL部分及大数据处理。看到大家对这样一个问题异口同声直接给了肯定的回答,我意识到但不能立刻确定自己对此有局限性认识,感觉怪怪的。
另外,想了解SAS的去ifeique.com/ Python很不错,能满足绝大方面的需求,比如数据预处理,格式转换等等。对于这些计算资源要求不是很高的地方可以用纯Python来做。如果遇到纯Python处理起来比较吃力的,可以混合c来加快效率,基于c的Python库也有很多。用Python做科学研究的学者越来越多,工具数量也越来越多。 总之,Python很适合数据挖掘 :-) 适合,但是在面对海量的数据和分布式支持的时候,要么用C写写接口,要么就改源码吧,总觉得Python处理大数据的时候太慢。
相关标签: Python Jolt 2011