日前,供职于全球领先的社交游戏服务提供商 Zynga 的首席数据科学家 Ben Weber 给我们推荐了他眼中的2018年十大实用数据科学工具,让我们一起来看看吧!
1. Bookdown
Bookdown是一个开源的 R 代码库,它可以把用 R Markdown 写的文档转换成多种不同的格式,包括可打印的 PDF、epub 电子书以及自发布网页文档等。
作为 Github 的文档标记语言,markdown 已经为许多数据科学家所熟悉,因此 Bookdown 就成为整理文档资料,甚至出书排版的利器之一了。此外,它还支持多种不同的内核,也就是说它并不只限于 R 语言代码。
从2018年初开始,我就用 Bookdown 将我的技术博客转换成电子书的格式。对我来说,用 Bookdown 排版书籍可是比用 Latex 方便太多了,我之前论文用 Latex 的经历可真是不堪回首啊。
2. Cloud DataFlow
在 Google 云平台上,我最喜欢的工具之一就是 Cloud DataFlow。Cloud Dataflow 是 Google 提供的一项完全托管式的流式/批量数据处理服务,它提供了一个弹性而高可控的环境,让数据科学家可以在流水线运行时对其进行监控和问题排查。
在2018年,我试过在 DataFlow 上构建数据流水线、生产模型甚至进行游戏模拟等工作。总的来说,它的使用场景类似 Spark,但能更好的完成处理构建流式数据应用程序的任务。
此外,Dataflow 还可以被用作一个方便的集成点,通过向数据处理流水线添加基于 TensorFlow 的 Cloud Machine Learning 模型和 API,对类似的使用情形进行预测分析等进一步的深度学习数据处理,为机器学习夯实基础。
3. Python
以往的许多数据科学家,往往喜欢使用 R 语言,我也是如此。然而,近年来随着许多第三方库的出现,特别是机器学习、数据分析方面的第三方库日益完善,使用 Python 进行数据分析的软件生态链逐渐成为人们的第一选择。
在 Zynga,我的团队统一使用 Python 生态链上的各类分析工具。而在这之前,我对这种语言的接触不多。因此,我不得不强迫自己迅速接纳这门对我来说是全新的编程语言,还写下自己学习 Python 的动机,以及学习 PySpark、深度学习等新技术的愿望。
Python 的优势之一,就是社区提供了大量的第三方模块,使用方式与标准库类似。它们的功能覆盖科学计算、Web开发、数据库接口、图形系统多个领域。我们下面还会提到 Pandas、Featuretools 和 Flask 等。总的来说,Python 相当值得一学。
4. AWS Lambda
过去一年,我一直在关注如何让数据科学家能够将模型投入生产之中。而 AWS Lambda 等工具就提供了一个可行的解决方案。
AWS Lambda 是亚马逊提供的一个云代码托管服务,它让数据科学家能够在云中部署模型,进行实时数据流处理等工作。使用 Lambda,你可以指定一个函数,例如将预测模型应用于一组输入变量,然后 AWS 会处理部署这个函数,还提供了较好的弹性和容错能力。此外,你还可以使用 AWS Lambda 针对数据表中的每个数据更改,执行数据验证、筛选、排序或其他转换,并将转换后的数据加载到其他数据存储,能极大地简化模型部署工作。
5. Featuretools
Featuretools 库是用 Python 编写的一个自动化特征工程工具。
深度学习的一项重大创新,就是能够从半结构化数据(如文本文档)自动提取特征。而结构化数据集的特征工程技术也同样取得了质的飞跃。使用 Featuretools 库,你可以自动完成数据科学家在修改数据以构建预测模型时所执行的大部分工作。比如,它可以定义数据集中不同表(实体)之间的关联,还可以生成大量可应用于构建模型的特征等。我就尝试使用这种方法,利用脚本将北美冰球联赛的比赛自动分类为常规赛和季后赛。
6. Keras
Keras 是一个用 Python 编写的高级神经网络 API,它能够以 TensorFlow, CNTK, 或者 Theano 作为后端运行。Keras 的开发重点是支持快速的实验。能够以最小的时延把你的想法转换为实验结果,是做好研究的关键。
2018年也是我终于开始接触深度学习的年份。我最初使用 Keras 的 R 语言接口来尝试构建深度学习模型,但后来转换到 Python 来使用这个库。由于我目前的工作主要是处理结构化数据集,因此目前还没有遇到很多必须使用深度学习来解决的情况,但总的来说,我发现使用自定义的损失函数还是非常有用的。
7. Flask
Flask 是一个使用 Python 编写的轻量级 Web 应用框架,你只需要编写一个简单的 python 文件就能变成一个全功能的 web 服务:
在学习 Python 之前,Jetty 是我构建 Web 服务的首选方法,毕竟我那时候用的是 Java。而 Flask 是一个用于将 Python 函数变为 Web 调用的神器,对于构建微服务非常有用。我试过使用 Flask 为深度学习分类器打造一个网页终端,而在GDC 2019 上,我还将向大家展示在公司里如何使用 Flask 和 Gunicorn 来构建一个微服务,方便内部使用。
8. PySpark
PySpark 是一个针对 Spark 的 Python API,它能让你用 Python 语言处理 Spark 的“弹性分布式数据集”(resilient distributed dataset)RDD 对象。
在过去的一年里,我使用 PySpark 完成了越来越多的工作,一是因为它可以处理相对庞大的数据集,二是因为一旦你熟悉了 Python,使用 PySpark 就非常容易。如果你也想开始学习 PySpark,你可以使用 Databricks 社区版来启动和运行 Spark 环境,这很简单。
9. Pandas UDFs
并非所有 Python 代码都可以直接在 PySpark 里用,但是 Pandas UDF 使得在 Spark 中重用 Python 代码变得更加容易。 使用 Pandas 的用户定义函数(UDF,User-Defined Function),我们可以在函数中使用 Pandas 数据表对象,并指定用于拆分数据表的 key。结果就是,一个巨大的 Spark 数据表可以在分配给集群中的各个节点,转换为可以被你的函数所操作的 Pandas 数据表,然后将结果组合回原来的 Spark 表。这意味着我们可以在分布式模式下使用现有的 Python 代码。我目前供职的 Zynga 公司就使用 Pandas UDF 来构建预测模型。
10. 开放数据集
在过去一年中,为了撰写有关数据科学的文章,我从许多开放数据集里获得示例数据。我使用的实例里,就包括了来自 Kaggle、BigQuery 以及政府开放数据集的数据。
2018年是学习新数据科学技术的好年头,我很高兴能在新的一年里继续学习。在2019年,我期待着探索强化学习技术,Spark Streaming 在线机器学习技术以及用深度学习技术处理半结构化数据库等全新的领域。让我们一起学习吧!
这里给大家分享一份Python全套学习资料,包括学习路线、软件、源码、视频、面试题等等,都是我自己学习时整理的,希望可以对正在学习或者想要学习Python的朋友有帮助!
CSDN大礼包:全网最全《全套Python学习资料》免费分享🎁
😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓
1️⃣零基础入门
① 学习路线
对于从来没有接触过Python的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
② 路线对应学习视频
还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~
③练习题
每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!
因篇幅有限,仅展示部分资料
2️⃣国内外Python书籍、文档
① 文档和书籍资料
3️⃣Python工具包+项目源码合集
①Python工具包
学习Python常用的开发软件都在这里了!每个都有详细的安装教程,保证你可以安装成功哦!
②Python实战案例
光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。100+实战案例源码等你来拿!
③Python小游戏源码
如果觉得上面的实战案例有点枯燥,可以试试自己用Python编写小游戏,让你的学习过程中增添一点趣味!
4️⃣Python面试题
我们学会了Python之后,有了技能就可以出去找工作啦!下面这些面试题是都来自阿里、腾讯、字节等一线互联网大厂,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
5️⃣Python兼职渠道
而且学会Python以后,还可以在各大兼职平台接单赚钱,各种兼职渠道+兼职注意事项+如何和客户沟通,我都整理成文档了。
上述所有资料 ⚡️ ,朋友们如果有需要 📦《全套Python学习资料》的,可以扫描下方二维码免费领取 🆓
😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓