大数据分析 - 数据分析工具


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

R 编程语言

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

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

就性能而言,R 对于密集型操作来说速度很慢,因为有大量可用的库,代码的缓慢部分是用编译语言编写的。但如果您打算执行需要编写深度 for 循环的操作,那么 R 就不是您的最佳选择。出于数据分析的目的,有一些不错的库,例如data.table、glmnet、ranger、xgboost、ggplot2、caret,它们允许使用 R 作为更快编程语言的接口。

Python 用于数据分析

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

R 中提供的大部分功能也可以在 Python 中完成,但我们发现 R 更易于使用。如果您正在处理大型数据集,通常 Python 是比 R 更好的选择。Python 可以非常有效地逐行清理和处理数据。这在 R 中是可能的,但对于脚本任务来说它不如 Python 高效。

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

朱莉娅

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

我们建议使用 Julia 来构建计算密集型算法的原型,例如神经网络。它是一个很好的研究工具。在生产中实现模型方面,Python 可能有更好的选择。然而,这不再是一个问题,因为有 Web 服务可以在 R、Python 和 Julia 中进行模型实现工程。

SAS

SAS 是一种商业语言,至今仍用于商业智能。它有一种基本语言,允许用户对各种应用程序进行编程。它包含相当多的商业产品,使非专家用户能够使用复杂的工具,例如神经网络库,而无需编程。

除了商业工具的明显缺点之外,SAS 不能很好地扩展到大型数据集。即使是中等规模的数据集也会出现 SAS 问题并导致服务器崩溃。仅当您处理小型数据集并且用户不是专家数据科学家时,才建议使用 SAS。对于高级用户,R 和 Python 提供了更高效的环境。

统计软件

SPSS,目前是IBM的一款用于统计分析的产品。它主要用于分析调查数据,对于无法编程的用户来说,它是一个不错的选择。它的使用可能和 SAS 一样简单,但在实现模型方面,它更简单,因为它提供了 SQL 代码来对模型进行评分。该代码通常效率不高,但它是一个开始,而 SAS 销售的产品可以分别为每个数据库的模型评分。对于小数据和缺乏经验的团队,SPSS 是与 SAS 一样好的选择。

然而,该软件相当有限,有经验的用户使用 R 或 Python 的工作效率将提高几个数量级。

MATLAB、八度

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