数据科学家应该掌握的5个工具
英文原文: 5 More Tools All Data Scientists Should Know How to Use
即使是知识渊博的数据科学家也能提升他们的技术水平。当谈及到分析你编纂的数据时,有大量的工具可以帮助你更好的理解数据。我们与我们的数据科学指导者探讨了很久,最后总结出了一个包括 5 个数据科学工具的列表,同时这也是你在当今的社会形势下应该掌握的 5 个数据科学工具。
dedup 是一个 Python 库,使用机器学习快速的对结构化数据进行重复数据删除和实体解析。
数据科学家发现他们经常需要使用 SELECT DISTINCT * FROM my_messy_dataset;不幸的是,现实世界中的数据集往往更加复杂。无论你是去对多个数据源进行汇总,还是简单的数据收集,开始你都需要对重复数据的删除做一个有意义的分析。
如你所想,有取之不尽的方法可以用来合并数据和用之不竭的规则来定义你数据的等价意义。有相同地址的两家餐馆是属于一个公司么?名和姓都相同的两条记录就是同一个人么?
你很幸运,dedup 可以让你转危为安!基于创新的 计算机科学研究,dedup 使用机器学习(更确切地说,应该是 主动学习)去学习,通过合并人类的反馈对两个可能的模棱两可的记录进行研究,并寻找究竟是什么构成了两者的“相似”。更方便的是,它有一个图形用户界面( GUI),任何人都可以使用它。
贡献者 Jonathan Dinu,Galvanize 的 Academic Excellence 的副总裁。
Theano 是一个 Python 库,你可以有效地定义、优化以及评估包含多维数组的数学表达式。
Theano 的特点:
- 和 Numpy 紧密结合——在 Theano 编译的函数中使用 numpy.ndaaray。
- GPU 的透明使用——在执行密集型数据计算时,相比于 CPU,速度提升了 140 倍。(使用 float32 进行测试)
- 速度和稳定性优化——对 log (1+x)得到正确的答案,即使x真的很小。
- C语言代码动态生成——加速评估表达式。
- 广泛的单元测试和自我验证——发现和诊断不同种类的错误。
贡献者 Mike Tamir,Galvanize 首席科学官。
StarCluster 已经开始在 Amazon 的 EC2 云服务器中设计虚拟机创建、配置和管理集群的自动和简化程序。StarCluster 允许所有人在面向分布式和并行计算的应用和系统的云服务器中轻松的创建一个集群计算环境。这允许你在无限制的数据上做交互程序。
贡献者 Alessandro Gagliardi,Galvanize 数据科学指导者。
在 python 网络和图形分析库与日俱增的情况下,图形工具给了不少希望。尽管像 NetworkX 和 Gephi 这样的工具在不断成长的工具中仍然还有它们的一席之地,但是对于那些想要做大图像高级分析的人来说——无论是社会网络、道路网络、还是生物网络——这两者往往会显得力不从心。
NetworkX 一直是用于网络分析的最流行的 Python 工具,因为它有着 丰富的 API 并且使用的门槛很低,但是一旦你开始处理更大的图形,纯 python 实现的弊端才 真正开始凸显。而 Gephi 是一个极好的 交互式可视化和开发新图像的图形化工具,但是有一个麻烦的脚本接口,使得它很难使用编程方式去控制。
图形工具尝试从它前辈中吸取经验教训并给数据科学家最好的结果。它使用 C++ 实现(可并行执行)并用 Python 来武装,绑定了一个易于使用的 API,同时获得了超快的速度,而且不影响使用性。为了弄懂一个网络,它的功能不仅包括绘制和可视化图像,还要和 动画图像进项交流并给图像赋予生命。
贡献者 Jonathan Dinu, Galvanize 的 Academic Excellence 的副总裁。
Plotly 是一个面向R,Python,MATLAB,JavaScript 和 Excel 的交互式图形库。Plotly 也是一个用于分析和分享数据和图像的平台。
Plotly 是如何与众不同的呢?与 Google Docs 和 GitHub 一样,你可以协调和 控制你的数据;可以将文件设置成公有的、私有的、秘密文件或是分享的。如果你使用 plotly 的免费公共云, 脱机 Plotly,或是 现场部署,下面的选项很多都是可以获得的。
在你的工作流中可以使用 Plotly,这里有三种可用方式:
为数据科学家整合其它工具。Plotly 的R,Python 和 MATLAB 的 API 可以让你做交互、更新 仪表面板和图像。Plotly 整合了 IPython Notebooks, NetworkX, Shiny, ggplot2, matplotlib, pandas, reporting tools 和 数据库。例如,下面的图是 使用 ggplot2 制作的,然后嵌入到这个博客中。将鼠标悬停后看看数据变化,然后单击拖动放大。
创建交互式地图。Plotly 的图形库建立在 D3.js 之上。对于地理数据,Plotly 支持分级统计图、散点图、气泡图、分块图和线图。你可以制作类似下面这样的地图,像R和 Python 一样把它们嵌入到博客,应用程序和仪表板。
2014 全球 GDP(来源: CIA 世界概况)
建立全方位的可视化。你可以为使用 Plotly 满足任意的可视化需求:地图、2D、3D 以及流图。点击并移动你的鼠标来旋转这个图,悬停并观察数据变化,或切换放大。
参数图
贡献者: Matt Sundquist,Plotly 的 CCO,兼联合创始人。
译者/刘帝伟审校/赵屹华、朱正贵、李子健责编/周建丁
译者简介:刘帝伟,中南大学软件学院在读研究生,关注机器学习、数据挖掘及生物信息领域。