2017年与机器学习相关的10大Python开源库

作者|Alan Descoins

译者|薛命灯

编辑|Emily

Pipenv

Pipenv 最初是由 Kenneth Reitz 开发的一个业余项目,旨在将其他包管理器(如 npm 和 yarn)的概念引入到 Python 当中。有了 Pipenv,开发人员就不需要再安装 virtualenv 和 virtualenvwrapper,也不需要管理 requirements.txt 文件。他们只需要在 Pipfile 文件中声明依赖,然后通过命令行来添加、移除和更新依赖。Pipeenv 会生成 Pipfile.lock 文件,开发人员可以进行决策式的构建。Pipeenv 还提供了详细的文档。

PyTorch

由 Facebook 开源的 PyTorch 是 2017 年最受瞩目的深度学习框架。PyTorch 以 Torch 为基础,并进行了一些改进。因为在过去几年,很多数据科学家转向使用 Python,所以 PyTorch 在 Python 深度学习领域起到了巨大作用。

之所以很多研究人员对 PyTorch 趋之若鹜,是因为 PyTorch 实现了动态计算图(Dynamic Computational Graph)模型。在使用 TensorFlow、CNTK 或 MXNet 这些框架时,需要预先定义好计算图(Computational Graph),但它们都是静态的。而在某些场景下,如在进行自然语言处理时,可能涉及多种不同的任务,比如你可以缩放图像,但无法处理边长的文本。PyTorch 的动态计算图模型在这个时候就很有用,开发人员可以在代码里通过 Python 的标准语句在运行时定义计算图,这样就可以自由地完成各种任务。

Caffe 2

Caffe 2 是 Facebook 开源的另一个深度学习框架。初始版 Caffe 已经得到广泛应用,并以无与伦比的性能表现而闻名。不过,因为深度学习发展趋势的变化导致 Caffe 框架停滞不前,于是 Caffe 2 尝试把 Caffe 带入一个新的世界。

它支持分布式模型训练和部署(甚至支持移动平台),兼容最新的 CPU 和 CUDA 硬件。PyTorch 可能更适合用于研究工作,而 Caffe 2 则适合用于大规模的部署,这个已经在 Facebook 得到了实证。

Pendulum

Pendulum 可直接用来替换 Python 的标准 datatime 类,所以可以很容易地与现有代码进行集成,并在必要的时候使用它的功能。Pendulum 还提供了 timedelta,让基于 datetime 的算术运算变得更容易。

Dash

Dash 是今年开源的一个框架,用于构建 Web 应用,使用 Python 进行数据可视化。它使用了 Flask、Plotly.js 和 React,提供了高层的抽象,避免让你再去学习这些框架,从而提升开发效率。

PyFlux

PyFlux 是一个用于处理时序数据的开源框架。时序数据研究是经济统计学的一个子领域,主要研究时序行为以及预测时序行为。PyFlux 提供了概率性的时序建模方式,并实现了若干现代时序模型,如 GARCH。

Fire

在进行项目开发时,经常会用到命令行工具。传统的工具有 argparse,Python 还提供了 click 和 docopt。而谷歌今年开源的 Fire 则以一种全新的方式解决同样的问题。

Fire 可以为每个 Python 项目自动生成一个 CLI,也就说,你无需写任何代码或 docstring 就可以拥有一个 CLI。你只需要调用 Fire 的一个方法,并传入一个参数,比如一个函数、一个对象、一个类,或者什么都不传(这样的话整个代码会变成一个 CLI)。

imbalanced-learn

在理想的世界里,用于训练的数据集可以是完美均衡的。但在现实世界,很多时候需要处理不均衡的数据集。例如,在预测信用卡交易欺诈时,大部分的交易是合法的(可能 99.9% 以上),在这种情况下,机器学习的性能会很糟糕,所以需要做一些额外的工作。

imbalanced-learn 是一个开源的 Python 包,可以帮你做掉很多工作。它与 scikit-learn 兼容,是 scikit-learn-contrib 项目的一部分。

FlashText

在进行数据清理时,很多人会用到正则表达式。尽管正则表达式可以完成这些任务,但在处理大量文本时,速度会变得非常慢。

FlashText 是一个更好的替代方案。它的作者提供的基准测试表明,一些原本需要 5 天时间完成的任务在 15 分钟内就可以搞定。FlashText 运行时不会随着搜索关键字数量的增长而增长,而正则表达式的运行时会随搜索关键字的数量呈线性增长。

Luminoth

Luminoth 是使用 TensorFlow 和 Sonnet 构建的开源计算机视觉库,提供了开箱即用的物体检测功能,该功能使用了 Faster R-CNN 模型。

Luminoth 不只是实现了某种特定的模型,它还支持模块化和扩展,所以可以使用不同的模型解决各种问题。它还提供了工具用于转换数据(如图像数据)、增强数据、在多个 GPU 上运行模型训练、运行评估指标、在 TensorBoard 中可视化数据、通过简单的 API 部署训练过的模型。

Luminoth 已经可以与 Google Cloud 的 ML Engine 集成,所以可以直接通过简单的命令在云端进行模型训练,就像在本地机器一样。

其他框架

PyVips

你或许从来没有听说过 libvips 库,不过一定知道 Pillow 或 ImageMagick,它们都是图像处理工具,支持多种格式。相比这些工具库,libvips 的处理速度更快,使用的内存更少。

PyVips 对 libvips 进行了封装,兼容 Python 2.7-3.6(甚至也兼容 PyPy),可以通过 pip 安装。

Requestium

Python 提供了 Requests 库用于进行 Web 界面的自动化操作,但现在很多网站使用了 JavaScript,导致 Requests 无法准确抓取到想要的界面元素。要解决这个问题,需要对由 JavaScript 代码发起的请求进行反向工程,但这种方式费时又费力。当然,我们也可以使用 Selenium,通过编程的方式来解决上述问题,但整体速度仍然较慢。

Requestium 可以用于替代 Requests,它还集成了 Parsel,可以很快写出用于查找页面元素的选择器,从而为开发人员省下不少时间。

Skorch

Skorch 对 PyTorch 进行了封装,提供了类似 scikit-learn 的 API。所以,如果你已经很熟悉 scikit-learn 的 API,但又要使用 PyTorch,那么 Skorch 是个不错的选择。

本文来自企鹅号 - AI漫游媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏玉树芝兰

如何用 R 快速了解科研领域?

用好 R 环境下的 BiblioShiny 软件包 ,可以让你在友好的图形化界面,快速扫描科研领域。

1564
来自专栏腾讯大讲堂的专栏

AI异常计算点的监控调度

1737
来自专栏机器之心

学界 | UC Berkeley提出新型分布式框架Ray:实时动态学习的开端

3154
来自专栏AI研习社

微软推出开源自动驾驶仿真平台 AirSim 教程,机器学习新手也能快速上手自动驾驶

AirSim 是微软推出的开源项目,用于测试人工智能系统的安全性,该系统提供仿真的环境、车辆动力和感知能力,促进无人驾驶技术的发展。近期,微软的工程师推出了一...

3948
来自专栏怀英的自我修炼

考研数学-11-公式整理

匆匆忙忙到现在,才把公式整理完。接下来就是要消化这些公式,公式比较多,有100+个,希望借助Anki,这次能完全背熟6成。这也是个不小的挑战,继续二中吧。

931
来自专栏灯塔大数据

技术 | 人生苦短,请用Python——10大Python库汇总

前言 对于码农来说,主要关注2017年新推出了哪些开源库,还有就是新近有什么流行的既能解决问题又好用的利器。下面就来为2017年做个总结。 1、Pipenv 第...

4179
来自专栏人工智能的秘密

13个最受欢迎的机器学习Python库

人工智能的快速发展,让机器学习备受大家欢迎。今天给大家盘点一下最受欢迎的机器学习库(ML):

3609
来自专栏数据科学与人工智能

【应用】从业务数据分析到机器学习应用的一次经历

本文通过一次完整的项目经历,从业务数据的分析开始,到产品优化建议,再到通过机器学习进行进一步的处理进行了比较完成的提炼。 腾讯电脑管家作为一款目前最流行的pc端...

1220
来自专栏编程

Python数据分析系列(2)——美国纽约皇后区空气质量分析

作者:王大伟 Python爱好者社区唯一小编 博客:https://ask.hellobi.com/blog/wangdawei 关注Python爱好者社区回复...

2855
来自专栏AI2ML人工智能to机器学习

当arXiv遇到Twitter

arXiv是一个开放的存放预备版(preprint)文章的地方。 这个Cornell University在1991开启的项目, 因为Grigori Perel...

903

扫码关注云+社区

领取腾讯云代金券