2017年十大最受欢迎机器学习Python库

2024-04-25 16:38

本文主要是介绍2017年十大最受欢迎机器学习Python库,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


摘要: Python已经成为机器学习时代的最受欢迎的语言,业内大牛正在使用什么Python库呢?今天我们就来盘点一下2017年十大最受欢迎的机器学习Python库。

每年的十二月是每个人review过去一年成就的时候,在看自己成就的同时,也同时为未来做好打算。对于程序员来说,十二月通常是回顾今年发布的开源库或者是最近流行的开源库,因为它们是在未来一段时间内解决我们问题的绝佳工具。

AI的快速发展,让机器学习走向了巅峰,今天我们就借此盘点一下2017年最受欢迎的机器学习库(ML),希望你能够在这里寻找到你未来一段时间内的利器


1. Pipenv

Pipenv是今年初开源的用于管理依赖项的官方推荐工具。Pipenv最初是由Kenneth Reitz创立的一个项目,旨在将其他包管理器(如NPMyarn)的创意整合至Python中。安装virtualenvvirtualenvwrapper,并确保依赖项的依赖项版本的可重复性(在这里关于这方面的信息)。使用Pipenv,你可以指定所有的依赖关系,通常使用命令添加,删除或更新依赖项。该工具可以生成一个文件,使得你的构建是确定性的,它可以帮助你避免那些难以捉住的BUG


2. PyTorch

今年Facebook推出的DLT框架PyTorch,在深度学习社区中很受欢迎。PyTorch是构建在流行的Torch框架之上,尤其是它是基于Python的。考虑到过去几年人们一直在使用Python进行数据科学研究,这也是深度学习库大部分是使用Python的原因。

最值得注意的是,PyTorch已经成为了众多研究人员的首选框架之一,因为它实现了新颖的动态计算图范例(Dynamic Computational Graph paradigm)。当使用TensorFlowCNTKMXNet等框架编写代码时,必须首先定义一个称为计算图的东西。该图指定了我们的代码将运行的所有操作,这些操作稍后会被编译并被框架优化,以便能够在GPU上并行运行得更快。这个范例被称为静态计算图,因为你可以利用各种优化,而且这个图形一旦建成,就可以运行在不同的设备上。然而,在诸如自然语言处理之类的任务中,工作量通常是可变的。在将图像提供给算法之前,把图像调整为固定的分辨率,但不能对可变长度的句子进行相同的处理。这恰恰能体现PyTorch和动态图表的优势,通过让你在代码中使用标准的Python控制指令,图形将在执行时定义,给你更多自由空间,这对于几个任务来说是必不可少的。

当然,PyTorch也会自动计算梯度,并且速度非常快,而且是可扩展的。


3. Caffe2

这听起来可能不太现实,Facebook今年也发布了另一个的DL框架——caffe2。原来的Caffe框架已被广泛使用多年,并以非常不错的性能和经过测试的代码库而闻名。然而,最近DL的趋势使这个框架在某些方面显得有些out。于是Caffe2就成为了它的替代品。

Caffe2支持分布式训练、部署,支持最新的CPUCUDA的硬件。虽然PyTorch可能更适合研究,但Caffe2更适合大规模部署。其实,你可以在PyTorch中构建和训练模型,同时使用Caffe2进行部署!这不是很好吗?


4. Pendulum

去年,Arrow是一个旨在使你更轻松,同时使用Python date time类进入了榜单,而今年是Pendulum

Pendulum的优点之一是它是Python标准datetime类直接替代品,因此你可以轻松地将其与现有代码集成,并且只有在需要时才能使用其功能。作者特别注意确保时区能够正确处理,默认情况下使每个实例时区感知自己的时区。你也将得到一个扩展timedelta,这样日期时间算术更容易。

与其他的库不同,它努力使API具有可预测的行为。如果你正在做一些涉及日期的小事,请查看更多的文档。


5. Dash

如果你正在做数据科学,你可能会使用Python生态系统中的Pandasscikit-learn等优秀的工具。还可以使用JupyterNotebook管理你的工作流程。但是,当你和那些不知道如何使用这些工具的人一起做一项工作的时候,你该怎么办?你如何建立一个界面,使人们可以轻松地玩转数据,并在整个过程中对其进行可视化?过去,你或许需要一个专业的JavaScript前端团队来构建这些GUI

Dash近几年发布的一个用于构建Web应用程序的开源库,尤其是在纯Python语言中利用数据可视化的Web应用程序。它建立在FlaskPlotly.jsReact 之上,并提供了接口,所以你不必学习这些框架也能进行高效的开发。如果你想了解更多关于Dash的有趣应用,点击这个地方。


6. PyFlux

Python中有许多库用于研究数据科学和ML,但是当你的数据是随着时间的推移而变化的度量(例如股票价格,仪器的测量值等等)时,这对于大部分库来说是一个比较棘手的问题。

PyFlux是一个专门为时间序列而开发的 Python开源库。时间序列研究是统计学和计量经济学的一个子领域,目标可以描述时间序列如何表现(以潜在的因素或兴趣的特征来表示),也可以借此预测未来的行为。

PyFlux允许使用时间序列建模,并且已经实现了像GARCH这样的现代时间序列模型。


7. Fire

通常情况下,你需要为你的项目制作命令行界面(CLI)。除了传统的argparsePython还有一些这样的工具,ClikdocoptFire是今年谷歌发布的软件库,在解决这个的问题上采用了不同的方法。

Fire是一个开源的库,可以为任何Python项目自动生成一个CLI,关键是自动,你几乎不需要编写任何代码或文档来构建你的CLI!你只需要调用一个Fire方法并把它所需要构建的传递给CLI

如果你想对此有所深入了解,请阅读指南,因为这个库可以为你节省很多时间。


8. Imbalanced-learn

在理想的情况下,我们会有完美平衡的数据集,但不幸的是,现实世界并不是这样的,某些任务拥有非常不平衡的数据。例如,在预测信用卡交易中的欺诈行为时,你预计绝大多数交易(99.9%)是合法的。天真地训练ML算法会导致令人失望的性能,所以在处理这些类型的数据集时需要特别小心。

幸运的是,Imbalanced-learn是一个Python包,它提供了一些解决这类问题的方法,并提供一些技术的实现,它与scikit-learn兼容,是scikit-learn-contrib项目的一部分。


9. FlashText

如果你需要搜索某些文本并将其替换为其他内容(如大多数数据清理流程中),则通常会转为正则表达式。通常情况下,正则表达式考研完美的解决问题。但是有时会发生这样的情况:你需要搜索的术语数量是成千上万,然后,正则表达式可能变得非常缓慢。这时FlashText是一个更好的选择,它使整个操作的运行时间大大提高了(从5天到15分钟)。FlashText的优点在于无论搜索条件有多少,运行时都是一样的,而正则表达式中运行时将随着条件数几乎呈线性增长。

FlashText证明了算法和数据结构设计的重要性,即使对于简单的问题,更好的算法也可以轻松超越最快的CPU


10. Luminoth

现实生活中图像无处不在,理解其内容对于多个应用程序来说是至关重要的。值得庆幸的是,由于DL的发展,图像处理技术已经进步很多。

Luminoth是一个使用TensorFlowSonnet构建的用于计算机视觉的开源Python工具包。目前,它可以支持被称为Faster R-CNN的模型的形式进行对象检测。

并且Luminoth不仅是一个特定模型的实现,而是建立在模块化和可扩展的基础上的,所以定制现有的部分或用新的模型来扩展它来处理不同的问题,就可以能多地重用代码。它提供了用于轻松完成构建DL模型所需的工程工作如:将你的数据转换为用于提供数据管道(TensorFlow的记录)的格式,执行数据增强,在多个GPU训练,运行评估指标,在TensorBoard中可视化,并用简单的API或浏览器界面部署训练有素的模型,以便人们使用。


其他优秀的Python库:


1.PyVips

你可能从来没有听说过libvips库,首先它是一个图像处理库,如PillowImageMagick,并支持多种格式。但是,与其他库相比,libvips速度更快,占用的内存也更少。PyVips是最近发布的用于libvipsPython绑定包,它与Python 2.7-3.6(甚至PyPy)兼容,易于使用pip。如果在你的应用程序中需要进行某种形式的图像处理,可以考虑一下它。


2.Requestium

有时,你需要自动化网络中的某些操作,如抓取网站,进行应用程序测试,填写网页表单,要想在不暴露API的网站中执行操作,自动化是必需的。Python有很好的请求库,可以让你执行一些这样的操作,但不幸的是请求获取的HTML代码可能没有表单,你可能会尝试查找表单来填充自动化任务。解决这个问题的方法是对JavaScript代码所做的请求进行反向工程,这将意味着需要花费很多时间来调试。另一个选择是转向使用Selenium这样的库,它允许你以编程方式与Web浏览器交互并运行Javascript代码。有了这个,问题就可以解决了。

Requestium库可以让你从请求开始并无缝地切换到使用Selenium,它可以作为一个请求的直接替换。它还集成了Parsel,因此编写所有用于在页面中查找元素的选择器要比其它方式更加快捷。


3.skorch

假如你很喜欢使用scikit-learnAPI,但是遇到了需要使用PyTorch来完成工作。不要担心,skorch是一个封装,可以通过类似sklearn的接口提供PyTorch编程。如果你熟悉这些库,那么语法将很简单易懂。通过skorch,你会得到一些抽象的代码,所以你可以把更多的精力放在真正重要的事情上,比如做数据科学。


本文由阿里云云栖社区组织翻译。

文章原标题《top-10-python-libraries-of-2017》,

作者:Alan Descoins  博客地址:https://tryolabs.com/blog/authors/alan-descoins/

译者:虎说八道,审阅:





这篇关于2017年十大最受欢迎机器学习Python库的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/935226

相关文章

Python调用Orator ORM进行数据库操作

《Python调用OratorORM进行数据库操作》OratorORM是一个功能丰富且灵活的PythonORM库,旨在简化数据库操作,它支持多种数据库并提供了简洁且直观的API,下面我们就... 目录Orator ORM 主要特点安装使用示例总结Orator ORM 是一个功能丰富且灵活的 python O

Python使用国内镜像加速pip安装的方法讲解

《Python使用国内镜像加速pip安装的方法讲解》在Python开发中,pip是一个非常重要的工具,用于安装和管理Python的第三方库,然而,在国内使用pip安装依赖时,往往会因为网络问题而导致速... 目录一、pip 工具简介1. 什么是 pip?2. 什么是 -i 参数?二、国内镜像源的选择三、如何

python使用fastapi实现多语言国际化的操作指南

《python使用fastapi实现多语言国际化的操作指南》本文介绍了使用Python和FastAPI实现多语言国际化的操作指南,包括多语言架构技术栈、翻译管理、前端本地化、语言切换机制以及常见陷阱和... 目录多语言国际化实现指南项目多语言架构技术栈目录结构翻译工作流1. 翻译数据存储2. 翻译生成脚本

如何通过Python实现一个消息队列

《如何通过Python实现一个消息队列》这篇文章主要为大家详细介绍了如何通过Python实现一个简单的消息队列,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录如何通过 python 实现消息队列如何把 http 请求放在队列中执行1. 使用 queue.Queue 和 reque

Python如何实现PDF隐私信息检测

《Python如何实现PDF隐私信息检测》随着越来越多的个人信息以电子形式存储和传输,确保这些信息的安全至关重要,本文将介绍如何使用Python检测PDF文件中的隐私信息,需要的可以参考下... 目录项目背景技术栈代码解析功能说明运行结php果在当今,数据隐私保护变得尤为重要。随着越来越多的个人信息以电子形

使用Python快速实现链接转word文档

《使用Python快速实现链接转word文档》这篇文章主要为大家详细介绍了如何使用Python快速实现链接转word文档功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 演示代码展示from newspaper import Articlefrom docx import

Python Jupyter Notebook导包报错问题及解决

《PythonJupyterNotebook导包报错问题及解决》在conda环境中安装包后,JupyterNotebook导入时出现ImportError,可能是由于包版本不对应或版本太高,解决方... 目录问题解决方法重新安装Jupyter NoteBook 更改Kernel总结问题在conda上安装了

Python如何计算两个不同类型列表的相似度

《Python如何计算两个不同类型列表的相似度》在编程中,经常需要比较两个列表的相似度,尤其是当这两个列表包含不同类型的元素时,下面小编就来讲讲如何使用Python计算两个不同类型列表的相似度吧... 目录摘要引言数字类型相似度欧几里得距离曼哈顿距离字符串类型相似度Levenshtein距离Jaccard相

Python安装时常见报错以及解决方案

《Python安装时常见报错以及解决方案》:本文主要介绍在安装Python、配置环境变量、使用pip以及运行Python脚本时常见的错误及其解决方案,文中介绍的非常详细,需要的朋友可以参考下... 目录一、安装 python 时常见报错及解决方案(一)安装包下载失败(二)权限不足二、配置环境变量时常见报错及

Python中顺序结构和循环结构示例代码

《Python中顺序结构和循环结构示例代码》:本文主要介绍Python中的条件语句和循环语句,条件语句用于根据条件执行不同的代码块,循环语句用于重复执行一段代码,文章还详细说明了range函数的使... 目录一、条件语句(1)条件语句的定义(2)条件语句的语法(a)单分支 if(b)双分支 if-else(