Big Data Analytics 简明教程

Big Data Analytics - Data Analysis Tools

各种工具可供数据科学家有效地分析数据。通常,数据分析的工程方面侧重于数据库,数据科学家重点关注可以实现数据产品的工具。下一部分讨论了不同工具的优点,重点是数据科学家最常在实践中使用的统计软件包。

R Programming Language

R 是一种专注于统计分析的开源编程语言。它在统计能力方面与 SAS、SPSS 等商业工具具有竞争力。它被认为是与 C、C++ 或 Fortran 等其他编程语言的接口。

R 的另一个优点是大量可用的开源库。在 CRAN 中,有 6000 多个可免费下载的软件包,在 Github 中提供各种 R 软件包。

在性能方面,对于密集操作,R 很慢,鉴于大量可用的库,代码的慢速部分是用编译语言编写的。但如果你打算执行需要编写深度循环的操作,那么 R 不会是你最好的选择。对于数据分析目的,有一些不错的库,如 data.table, glmnet, ranger, xgboost, ggplot2, caret ,它允许使用 R 作为更快速编程语言的接口。

Python for data analysis

Python 是一种通用编程语言,它包含大量的专门用于数据分析的库,如 pandas, scikit-learn, theano, numpyscipy

R 中的大多数功能也可以在 Python 中实现,但我们发现 R 更易于使用。如果你处理的是大型数据集,通常 Python 比 R 更合适。Python 可以非常有效地逐行清理和处理数据。这可以通过 R 实现,但对于脚本任务,它不如 Python 那么有效。

对于机器学习, scikit-learn 是一个很好的环境,它提供大量算法,可以无问题地处理中等规模的数据集。与 R 的等效库(caret)相比, scikit-learn 具有更清晰和更一致的 API。

Julia

Julia 是一种用于技术计算的高级、高性能动态编程语言。它的语法与 R 或 Python 非常相似,因此,如果你已经使用 R 或 Python,那么用 Julia 编写相同的代码应该相当简单。该语言相当新,并且在最近几年发展得非常显着,因此,它在目前肯定是一种选择。

我们建议使用 Julia 来对计算密集型算法(如神经网络)进行原型设计。它是一个非常好的研究工具。在生产中实现模型方面,Python 可能有更好的选择。然而,随着有 Web 服务来实施 R、Python 和 Julia 中的模型,这个问题正在变得不再那么严重。

SAS

SAS 是一种仍然用于商业智能的商业语言。它具有一个基本语言,允许用户编制各种应用程序。它包含一些商业产品,使非专家用户能够在不编程的情况下使用神经网络库等复杂工具。

除了商业工具显而易见的缺点之外,SAS 无法很好地扩展到大型数据集。即使是中等规模的数据集也会使 SAS 出现问题并导致服务器崩溃。只有当你使用小数据集并且用户不是专家数据科学家时,才推荐使用 SAS。对于高级用户,R 和 Python 提供了一个更高效的环境。

SPSS

SPSS 目前是 IBM 的统计分析产品。它主要用于分析调研数据,对于不会编程的用户来说,这是一种不错的替代方案。它的易用性可能与 SAS 相当,但在实现模型方面,它更简单,因为它提供了 SQL 代码来对模型进行评分。此代码通常效率不高,但这是一个开始,而 SAS 单独为每个数据库销售用于对模型进行评分的产品。对于小数据和没有经验的团队而言,SPSS 是与 SAS 一样好的一个选择。

但是,该软件的局限性相当大,有经验的用户使用 R 或 Python 的工作效率将高出几个数量级。

Matlab, Octave

还有其他工具可用,例如 Matlab 或其开源版本(Octave)。这些工具主要用于研究。就功能来说,R 或 Python 可以完成 Matlab 或 Octave 中的所有功能。如果您对他们提供的支持感兴趣的话,购买产品许可证才有意义。