今天看啥  ›  专栏  ›  阿群1986

Machine learning相关开发工具以Python和R语言为主

阿群1986  · 简书  ·  · 2018-05-17 08:37

开发语言

近年来 Python 可以说是数据科学和算法领域最火的语言,主要原因是它使用门槛低,上手容易,同时具有着完备的工具生态圈,同时各种平台对其支持也比较好。

但是在学习 Python 以外,我建议大家可以再学习一下 R 语言,主要原因有以下几点:

R 语言具有最完备的统计学工具链

我们在上面介绍了概率和统计的重要性,R 语言在这方面提供的支持是最全面的,日常的一些统计方面的需求,用 R 来做可能要比用 Python 来做还要更快。

Python 的统计科学工具虽然也在不断完善,但是 R 仍然是统计科学最大最活跃的社区。

向量化、矩阵化和表格化思维的培养

R 中的所有数据类型都是向量化的,一个整形的变量本质上是一个长度为一的一维向量。

在此基础上 R 语言构建了高效的矩阵和(DataFrame)数据类型,并且在上面支持了非常复杂而又直观的操作方法。

这套数据类型和思考方式也在被很多更现代化的语言和工具所采纳,例如 Numpy 中的 ndarray,以及 Spark 最新版本中引入的 DataFrame。

可以说它们都是直接或间接从 R 语言得到的灵感,定义在上面的数据操作也和 R 中对 DataFrame 和向量的操作如出一辙。

就像学编程都要从 C 语言学起一样,学数据科学和算法开发我建议大家都学一下 R,学的既是它的语言本身,更是它的内涵思想,对大家掌握和理解现代化工具都大有裨益。

除了 R 以外,Scala 也是一门值得学习的语言。原因在于它是目前将面向对象和函数式两种编程范式结合得比较好的一种语言。

因为它不强求你一定要用函数式去写代码,同时还能够在能够利用函数式的地方给予足够的支持。

这使得它的使用门槛并不高,但是随着经验和知识的不断积累,你可以用它写出越来越高级、优雅的代码。

开发工具

开发工具方面,Python 系的工具无疑是实用性最高的,具体来说,Numpy、Scipy、sklearn、pandas、Matplotlib 组成的套件可以满足单机上绝大多数的分析和训练工作。

但是在模型训练方面,有一些更加专注的工具可以给出更好的训练精度和性能,典型的如 LibSVM、Liblinear、XGBoost 等。

大数据工具方面,目前离线计算的主流工具仍然是 Hadoop 和 Spark,实时计算方面 Spark Streaming 和 Storm 也是比较主流的选择。




原文地址:访问原文地址
快照地址: 访问文章快照