大数据分析 - 数据分析工具
有多种工具可以让数据科学家有效地分析数据。 通常数据分析的工程方面侧重于数据库,数据科学家侧重于可以实现数据产品的工具。 以下部分讨论了不同工具的优势,重点是数据科学家在实践中最常使用的统计包。
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、numpy 和 scipy。
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 中可用的所有功能。 如果您对他们提供的支持感兴趣,那么购买该产品的许可证才有意义。