面向数据科学和 AI 的开发库推荐:Python、R 各 7 个

标签: 人工智能 | 发表时间:2019-01-10 17:00 | 作者:
出处:https://www.leiphone.com

雷锋网 AI 科技评论按:本文作者 Favio Vázquez 是一位数据科学家、物理学家和计算机工程师,他从 2018 年初开始写作并发布《数据科学和人工智能每周文摘:Python & R》系列文章,为数据科学家介绍,能真正帮助他们更好地完成各项任务的最好的开发库、开源项目、安装包以及工具。随着一年结束,Favio Vázquez 也应读者需要,从该系列文章中盘点出了 Python/R 语言 7 大开发库。雷锋网 AI 科技评论编译如下。

前言

如果你一直都有关注我,你就会知道今年我开始写作《数据科学和 AI 每周治摘要:Python & R》(Weekly Digest for Data Science and AI: Python & R)系列文章,在这些文章中,我列出了能帮助我们数据科学家更好地完成各类任务的最好的开发库、开源项目、安装包以及工具。

Heartbeat( https://heartbeat.fritz.ai/)上的大量用户对这些摘要给予了支持,并且他们还建议我从这些摘要中挑选出那些真正改变或改善了我们这一年的工作方式的开发库,创建一份「最最好」的开发库榜单。

如果你想要阅读之前的摘要,可以前往以下地址进行查看:

https://www.getrevue.co/profile/favio

免责声明:此清单基于我在个人文章中复盘的开发库和安装包,它们在某种程度上适用于程序员、数据科学家以及人工智能爱好者,其中一些是在 2018 年之前创建的,但是如果它们依旧具有趋势性,也同样可以被考虑使用。

面向 R 语言的 TOP 7 开发库

7. AdaNet—提供学习保证的快速、灵活的 AutoML 

开源地址: https://github.com/tensorflow/adanet

AdaNet 是一个轻量级的、可扩展的 TensorFlow AutoML 框架,可使用 AdaNet 算法(点击查看相关论文:AdaNet: Adaptive Structural Learning of Artificial Neural Networks, https://arxiv.org/abs/1607.01097)来训练和部署自适用神经网络。AdaNet 集成了多个学习的子网,来降低设计有效的神经网络的固有的复杂度。

这个安装包可以帮助你选择最优的神经网络架构,实现自适用算法,来将神经架构当做子网的集成进行学习。

你使用这个包之前先要对 TensorFlow 有所了解,因为它实现了 TensorFlow Estimator 接口。然后它可以通过封装训练、评估、预测和服务导出来帮助简化机器学习编程。

你可以创建一个神经网络的集成,然后这个开发库可以帮助优化你的训练目标——让这个集成模型在训练集上的表现和它泛化到未见过的数据之间的能力两者之间取得平衡。

6. TPOT—使用遗传编程优化机器学习工作流的自动 Python 机器学习工具

开源地址: https://github.com/EpistasisLab/tpot

在之前的一篇摘要中( https://heartbeat.fritz.ai/weekly-digest-for-data-science-and-ai-python-and-r-volume-6-830ed997cf07),我谈到过 Python 领域面向自动机器学习的一个很好的开发库——Auto-Keras。现在我要谈谈针对自动机器学习的另一个很有趣的工具。

这个工具叫做基于树表示的工作流优化(Tree-based Pipeline Optimization Tool,TPOT),它是一个非常棒的开发库。它基本上是一个 Python 自动机器学习工具,使用遗传编程来优化机器学习工作流。


TPOT 可以实现特征选择、模型选择、特征构建等大量任务的自动化。幸运的是,如果你是一位 Python 机器学习者,TPOT 生成的所有代码都是你比较熟悉的——因为其创建在 Scikit-learn 之上。

它所做的就是通过智能地探索数千种可能的工作流,来为数据找到最好的那个,从而将机器学习最冗长的部分自动化,之后,它会为其所找到的最好的工作流生成 Python 代码,然后接下来你就可以对工作流进行修补了。

它的工作方式如下:

关于 TPOT 的更多细节,你可以阅读其他作者所写的这一系列文章:

5.SHAP——解释机器学习模型输出的统一方法

开源地址: https://github.com/slundberg/shap

解释机器学习模型往往并不容易,但它对于一系列的商业应用却非常重要。幸运的是,现在有一些很好的开发库可以帮助解释机器学习模型。在许多应用中,我们需要了解、理解或者验证怎样在模型中使用输入变量,以及输入变量怎样影响最终的模型预测。

SHAP (SHapley Additive exPlanations) 是解释机器学习模型输出的统一方法,它将博弈论和局部解释关联起来,并将之前的一些方法进行了统一,然后基于解释,表示唯一可能的一致的、局部精确的加性特征属性方法。

可前往以下地址阅读更多 SHAP 相关信息:

https://github.com/slundberg/shap#sample-notebooks

4.Optimus——使用 Python 、Spark 即可轻易制作的敏捷的数据科学工作流

开源地址 : https://github.com/ironmussa/Optimus

坦诚地说,Optimus 这个开发库就像是我自己的孩子。现在为止,我已经花了很长时间来开发这个库,非常高兴能向大家展示 Optimus 的第二个版本。

Optimus V2 专门针对简化数据清洗而开发,它的 API 设计对于新手来说非常简单,之前使用 pandas 的开发者也会对其非常熟悉。Optimus 扩展了 Spark DataFrame 的功能,为其增加了.rows 和.cols 的属性。

由于 Optimus 的后端可以使用 Spark、TensorFlow 以及 Keras,你可以使用 Optimus 来清洗、准备以及分析数据,创建配置文件和图表,并运行机器学习、深度学习,而且所有这一切都是可以分布式运行的。

对于我们来说,Optimus 非常易于使用。它就像是带着点 dplyr 特色的、由 Keras 和 Spark 连接起来的 pandas 的进化版本。你使用 Optimus 创建的代码可以在你的本地机器上工作,同时只要简单改下命令,这个代码就可以在本地集群或者云端上运行。

为了帮助数据科学周期的每一个步骤,我为 Optimus 开发了大量有趣的功能。

作为数据科学敏捷方法的配套开发库,Optimus 可以说是完美的,因为它几乎能为数据处理过程中的每一步骤提供帮助,并且它可以轻易地与其他的开发库和工具连接起来。

如果你想要阅读更多关于敏捷方法的信息,可前往以下地址查看:

https://www.business-science.io/business/2018/08/21/agile-business-science-problem-framework.html

3.spaCy——结合 Python 和 Cython 使用的工业级的自然语言处理开发库

项目地址: https://spacy.io/

spaCy 针对帮助开发者完成真实产品开发、真实意见收集等实际工作而设计,它会最大程度地帮助你节约时间。该开发库易于安装,并且它的 API 非常简单和高效。我们喜欢将 spaCy 比作自然语言处理轨道上的「红宝石」(Ruby)。

spaCy 是为深度学习准备文本的最佳方式,它可以与 TensorFlow、 PyTorch、Scikit-learn、 Gensim 以及 Python 良好 AI 生态系统中的其他开发库无缝地互操作。你可以使用 spaCy,轻易地为各类 NLP 问题构建语言复杂的统计模型。

2.jupytext——相当于 Markdown 文档、Julia、Python 或者 R scripts 的 Jupyter notebooks

开源地址: https://github.com/mwouts/jupytext

对于我来说,jupytext 是年度最佳安装包之一,它对于我们数据科学家的工作非常重要。基本上,我们所有人都在 Jupyter 等类型的 notebook 上工作,但是我们也会使用 PyCharm 等 IDE 来完成项目更核心的部分。

现在的好消息是,在使用 jupytext 时,可以让你在最爱的 IDE 中拟草稿和测试的普通的脚本,会一目了然地以 Jupyter notebooks 的格式打开。在 Jupyter 中运行 notebook,可以生成输出,联合 .ipynb 表示,同时或者以普通的脚本或者以传统的 Jupyter notebook 的输出形式,来保存和分享你的研究工作。

下面的动图就展示了可以用这个包做的各种事情的工作流:

1.Charify—让数据科学家更容易创建图表的 Python 开发库

开源地址: https://github.com/chartify/chartify

对于我来说,Chartify 是今年面向 Python 的开发库中排名第一的开发库。如果你从事 Python 相关工作,你可能要耗费大量的时间在尝试创建合适的图表上。幸运地是,我们有类似 Seaborn 这样的开发库可以让我们的工作变得更简单,但是它们的问题在于其图表不是动态的。之后,我们又有了 Bokeh 这样非常棒的开发库,但是用它创建交互式的图表是一件非常蛋疼的事情。如果你想知道更多关于 Bokeh 和针对数据科学的交互性图表,可以阅读 William Koehrsen 写的这些优秀的文章:

Chartify 创建于 Bokeh 之上,不过它要比使用 Bokeh 创建交互性图表简单得多。来自 Chartify 作者自己的介绍:

为什么使用 Chartify?

  • 一致的输入数据格式:花费更少的时间转换数据格式就能开始在图表上处理数据,所有的图表函数都使用一致的、有条理的输入数据的格式。

  • 智能的默认样式:只需要很少的用户自定义操作就可以创建好看的图表。

  • 简单的 API:我们试图让 API 尽可能地直观易学。

  • 灵活性:Chartify 创建于 Bokeh 之上,所以如果你需要进行更多控制操作,你可以依靠 Bokeh 的 API。

面向 R 语言的 TOP 7 开发库

7.infer—面向友好型 tidyverse 统计推断的 R 语言安装包

开源地址: https://github.com/tidymodels/infer

推断或者统计推断是使用数据分析来推断潜在概率分布的性质的过程。infer 这个安装包的目标是,使用与 tidyverse 设计框架保持一致的表达统计语法来执行统计推断。

如果你想要阅读更多关于 infer 的信息,可前往以下地址查看:

https://infer.netlify.com/index.html

6. janitor—用 R 语言进行数据清洗的简单工具

开源地址: https://github.com/sfirke/janitor

数据清洗是跟我关系紧密的领域。一直以来,我都在与我在 Iron-AI(https://iron-ai.com/)的团队一起开发一项面向 Python 语言的工具——Optimus,你可以在这里(https://hioptimus.com/)查看更多关于 Optimus 的信息。

不过,我现在给你展示的工具,是一个使用简单函数就能进行数据清洗的很厉害的工具——janitor。

它主要有三个主要的功能:

  • 完美地对 data.frame 列名进行格式化

  • 创建和格式化一个、两个或者三个变量的频率表,如一个优化的 table() ;以及

  • 隔离部分重复的记录

同时,它也是一个面向 tidyverse( https://github.com/tidyverse/tidyverse/blob/master/vignettes/manifesto.Rmd)的安装包。特别地,它在与 %>% 管道一起执行的时候表现很好,并且为通过 readr( https://github.com/tidyverse/readr)和 readxl( https://github.com/tidyverse/readxl)两个包引入的数据的清洗做过优化。

5.Esquisse——使用 ggplot2 制作图表的 RStudio 插件

开源地址: https://github.com/dreamRs/esquisse

这个插件让你可以通过使用 ggplot2 安装包将数据可视化,来交互地搜索这些数据。它可以让你绘制条形图、曲线、散点图和柱状图,然后输出图表或者检索到代码来生成图表。

4.DataExplorer—自动数据检索和处理工具

开源地址: https://github.com/boxuancui/DataExplorer

探索性数据分析 (Exploratory Data Analysis,EDA, https://en.wikipedia.org/wiki/Exploratory_data_analysis)是创建数据分析/预测模型的关键阶段。在这个过程中,分析师/建模师会先浏览一下数据,然后做出一些相关的假设并决定下一步骤。然而,EDA 这一过程有时候会很麻烦。DataExplorer 这个 R 语言安装包旨在将大部数据处理和可视化实现自动化,从而让用户可以专注在研究数据和提取观点上。

如果你想要阅读更多关于 DataExplorer 的信息,可前往以下地址查看:

https://boxuancui.github.io/DataExplorer/articles/dataexplorer-intro.html

3.Sparklyr—面向 Apache Spark 的 R 接口

开源地址: https://github.com/rstudio/sparklyr

Sparklyr 有以下几项功能:

如果你想要阅读更多关于 Sparklyr 的信息,可前往以下地址查看:

https://spark.rstudio.com/mlib/

2.Drake—针对复现性、高性能计算的以 R 语言为中心的工作流工具包

开源地址: https://github.com/ropensci/drake

 Drake 编程项目

配图文字:(Drake是如何做程序员的:不喜欢真的编程,但是完全可以花30分钟和别人争论这个变量要起什么名字)

开玩笑的,不过这个安装包的名字真的就叫 Drake!

Drake 是一个非常棒的包,我之后将会发布一篇详细介绍它的文章,敬请期待!

Drake 是一个用在数据驱动任务中的通用的工作流管理工具。当中间的数据目标的依赖性发生改变时,它可以对这些中间的数据目标进行重建,同时,当结果出炉时,它会跳过这项工作。

此外,并不是每一个完整的工作都从数据抓取开始,而完整的工作流都可以切实表示出它们是具有复现性的。

可复现性、好的管理以及跟踪实验对于轻易地检测其他的工作和分析来说,都是必需的。在数据科学领域,Drake 是十分重要的,你可以前往以下地址阅读更多关于该工具包的信息:

Zach Scott:

以及我所写的一篇文章:

https://towardsdatascience.com/manage-your-machine-learning-lifecycle-with-mlflow-part-1-a7252c859f72

Drake 可以帮助你实现自动地:

1. 开始处理与此前相比发生了改变的部分;

2. 跳过剩余的工作。

1.DALEX—描述性机器学习解释(Descriptive mAchine Learning EXplanations)

开源地址: https://github.com/pbiecek/DALEX

解释机器学习模型往往并不容易,不过,它对于一系列的商业应用非常重要。幸运的是,现在有一些很好的开发库可以帮助解释机器学习模型。

https://github.com/thomasp85/lime

(顺便一提,有时候,使用 ggplot 进行简单的可视化可以帮助你更好地解释模型。对此,Matthew Mayo 在其所写的文章中进行了很好的介绍: https://www.kdnuggets.com/2017/11/interpreting-machine-learning-models-overview.html

在许多应用中,我们需要了解、理解或者验证怎样在模型中使用输入变量,以及输入变量怎样影响最终的模型预测。DALEX 是帮助解释复杂模型是怎样工作的一套工具。

via: https://heartbeat.fritz.ai/top-7-libraries-and-packages-of-the-year-for-data-science-and-ai-python-r-6b7cca2bf000?gi=27d5c4b5f4ef,雷锋网 AI 科技评论编译。

相关 [数据科学 ai 开发] 推荐:

面向数据科学和 AI 的开发库推荐:Python、R 各 7 个

- - 雷锋网
雷锋网 AI 科技评论按:本文作者 Favio Vázquez 是一位数据科学家、物理学家和计算机工程师,他从 2018 年初开始写作并发布《数据科学和人工智能每周文摘:Python & R》系列文章,为数据科学家介绍,能真正帮助他们更好地完成各项任务的最好的开发库、开源项目、安装包以及工具. 随着一年结束,Favio Vázquez 也应读者需要,从该系列文章中盘点出了 Python/R 语言 7 大开发库.

10岁女孩开发世界首款AI桌游,13岁少年用AI检测胰腺

- - 博客园_新闻
来源:新智元(AI_era). 【新智元导读】最近,13 岁的男孩发明了胰腺癌深度学习系统(PCDLS)工具,可以准确地检测到胰腺位置,成功率高达 98.9%;10 岁女孩开发出了世界上第一款 AI 棋盘游戏,并决绝了谷歌给到的未来 offer. “00 后”正在用 AI 抛弃同龄人以及 90 后、80 后、70 后…….

AI vs AI--当AI与自己聊天

- Tim - Solidot
Shawn the R0ck 写道 "最烦人的事情之一莫过于被强迫与一个白痴对话. 但当你发现你最讨厌与之交谈的白痴其实就是你自己的基于人工智能程序的拷贝...康奈尔创造性机器实验室决定看看当AI尝试跟自己交谈会发生什么. 他们的健谈的AI程序Cleverbot与自己进行文本交互,之后朗读出文本并且显示到视频中.

数据科学家炙手可热

- - 互联网分析
《哈佛商业评论》(Harvard Business Review)近期声称,21世纪最性感的工作是数据科学家. 这一美国商学院期刊表示,数据科学家集“数据黑客、分析师、沟通大师和受信任的顾问”于一身,并指出,这种技能的结合极为罕见. 这正是全球各地诸多企业的问题所在. 尽管公司经理深知大数据所能带来的效益,但他们难以找到拥有合适技能的人才.

zillow数据科学应用探索

- - 冰火岛
zillow 美国一家房地产租赁和销售企业. Zillow described their 20TB dataset and the technology they use to estimate house values for more than 110 million homes in the US..

一家公司的 AI 教育观:AI 管「教」,真人来「育」

- - 极客公园
叮咚课堂 App 上线不过八个月,他们一面竭力在竞争异常激烈的在线少儿英语赛道上保持着刻意的低调,一面又疯狂地收获了平均 300% 月度的用户增长率. 这让他们创始人邱明丰对未来信心更盛了. 在艾瑞咨询发布的《2018 年中国在线幼儿启蒙英语行业白皮书》中提到,近年来人工智能在互联网教育领域大规模展开,但在在线幼儿启蒙英语教育中的应用甚少,随着资本的注入和行业的发展,其有望通过人工智能进一步提升用户在线启蒙英语学习的体验和效率.

初创公司数据科学项目全流程指南,一位资深数据科学家的经验谈

- - 机器之心
无论是管理人员还是创业公司中的不同团队,都可能会发现数据科学项目与软件开发之间的差异并不直观. 如果没有明确的说明与解释,可能会导致数据科学家与其同行之间的误解和冲突. 来自学术界(或高度研究型的行业研究小组)的研究人员在初入初创公司或小型公司时可能会面临各自的挑战. 他们可能会发现将新型输入(例如产品和业务需求、更严格的基础架构和计算约束以及客户反馈)纳入其研发过程中是很有挑战性的.

信息平台和数据科学家的兴起

- 景峰 - 《程序员》杂志官网
文 / Jeff Hammerbacher. Facebook有了“自知之明”. 在2005年9月,Facebook首次向非大学生公开,允许高中生注册账号. 忠实的用户愤怒了,但Facebook团队认为这是为网站做出的正常方向. 那么它该如何证明它的方案是正确的呢. 此外,在几乎所有可登录Facebook网站的学校中,Facebook已经渗入学生当中,但还是在有部分学校中,该网站一直不受青睐.

linkedin 数据科学实习的5个经验总结

- - 冰火岛
这些可以使接下来的工作更加简单,结果更加可信. As a data scientist at LinkedIn, you have access to Petabytes of data (1 Petabyte as much data as is transferred when viewing HDTV for about 13.5 years).

Facebook数据科学家需具备的六大技能

- - 互联网分析
数据科学家到底应该具备哪些技能. 对于这个新兴职业的定位和展望,我们也许Facebook的招聘说明中找到答案. Facebook近日公开招募数据科学家,负责分析Facebook拥有的全球最大的人际关系数据库. 在 Facebook的数据科学家招聘说明中,数据科学家被归类到“软件工程职业”,但实际上Facebook的数据科学家的工作更多是在产品层面.