随着人工智能的迅速发展,机器学习达到了顶峰。今天我们来看看最流行的机器学习库(ML),希望你以后能找到你的武器。
Pipenv
pipenv是今年初管理依赖官方推荐工具。pipenv最初是一个项目由Kenneth Reitz创建,其目的是整合其他软件包管理器的创新,比如故宫或纱,Python。安装virtualenv和virtualenvwrapper,确保依赖版本的依赖版本的重复性(读这方面的详情)。Pipenv,你可以指定所有的依赖性,通常使用命令来添加,删除或更新的依赖。该工具可以生成一个文件,使您的构建具有确定性,可以帮助您避免难以捕获的bug。
这里还是要推荐下小编的Python学习群:483546416,不管你是小白还是大牛,小编我都欢迎,不定期分享干货,包括小编自己整理的一份2017最新的Python资料和0基础入门教程,欢迎初学和进阶中的小伙伴。在不忙的时间我会给大家解惑。
PyTorch
DLT的框架,pytorch,脸谱网今年推出的,在深入学习社区是非常受欢迎。pytorch是建立在一个受欢迎的火炬框架,特别是基于Python。考虑到过去几年人们一直在使用Python进行数据科学研究,这也是大多数学习库使用Python的原因。
最重要的事情是,pytorch已成为许多研究者最喜欢的框架,因为它实现了一种新的动态计算图的范例。当你写代码的框架中,如TensorFlow、CNTK,或MXNet,你必须首先定义一个叫图。该图指定了我们的代码将运行的所有操作,稍后将进行编译,并通过帧进行优化,以便它能在GPU上更快地运行。这个例子被称为静态图形,因为您可以使用各种优化,并且一旦构建了这个数字,就可以在不同的设备上运行。然而,在诸如自然语言处理之类的任务中,工作负载通常是可变的。在图像被提供给算法之前,图像被调整成固定的分辨率,但是可变长度的句子不能被处理。这只是反映了pytorch和动态图表的优点。通过让您在代码中使用标准的Python控制命令,图形将在执行时定义,并给您更多的空闲空间,这对于几个任务是必不可少的。
当然,pytorch也将自动计算梯度和速度是非常快的,它是可扩展的。
Caffe2
这可能听起来不现实,脸谱网还发布了另一个DL框架,牛奶,今年。原来的Caffe框架已被广泛使用多年,以其很好的性能和测试代码库。然而,DL最近的趋势使得这个框架在某些方面有所突破。所以牛奶代替了它。
牛奶支持分布式部署,培训,并支持最新的CPU和CUDA硬件。虽然pytorch可能更适合研究,牛奶更适合大规模部署。事实上,你可以建立和pytorch训练模型,并将其部署与牛奶!那不是很好吗?
Pendulum
去年,箭头的目的是让您更轻松,同时使用Python日期时间类进入列表,而今年是Pendulum。
一个摆的优点是,它是Python标准DateTime类的直接替代品,所以你可以很容易地将它与现有的代码,只在需要的时候使用它。作者特别注意确保时区得到正确处理,并默认每个实例时区的时区被感知。你也会得到一个扩展timedelta,所以它更容易的日期和时间。
与其他库不同,它致力于使api可预测。如果您正在做一些与日期有关的小事情,请查看更多文档。
Dash
如果你是做科学的数据,你可以使用优秀的工具,如大熊猫、scikit在Python的系统学习。你也可以使用jupyternotebook来管理你的工作流程。但是当你和那些不知道如何使用这些工具的人一起工作时,你会怎么做呢?如何构建一个界面,让人们在整个过程中轻松地播放数据并可视化它们?在过去,您可能需要一个专业的JavaScript前端团队来构建这些GUI。
最近几年发布了一个用于构建Web应用程序的开源库,尤其是一个使用纯Python语言中的数据可视化的Web应用程序。它是建立在瓶、Plotly.js,和反应,并提供了一个接口,所以你不需要学习这些框架的高效发展。如果你想更多地了解短跑的有趣应用,请点击这里。
PyFlux
Python中的许多库用于研究数据科学和ML,但当数据随时间变化时,如股票价格、仪器测量等,这对大多数库来说是一个棘手的问题。
pyflux是一个开源库的Python,特别是时间序列的发展。时间序列研究是统计学和计量经济学的一个分支,它可以描述时间序列是如何表达的(由潜在因素或利益特征表示)和预测未来行为。
pyflux允许时间序列建模的使用,和现代时间序列GARCH模型等已实施。
Fire
通常,您需要为项目创建一个命令行接口(CLI)。除了传统的argparse,Python提供了一些工具,点击和docopt。谷歌今年发布的一个软件库,已经采取了不同的方法来解决这个问题。
火灾是一个开源库。它可以为任何python项目自动生成CLI。钥匙是自动的。您几乎不需要编写任何代码或文档来构建CLI。你只需要调用一个火方法并把它传递给它需要构建的CLI。
如果你想知道更多,请阅读指南,因为这个图书馆可以节省你很多时间。
Imbalanced-learn
在理想情况下,我们将得到完全平衡的数据集,但不幸的是,现实世界是不一样的。有些任务的数据非常不平衡。例如,在预测信用卡交易中的欺诈行为时,您期望绝大多数交易(99.9%)是合法的。ML算法的幼稚训练可能会导致令人失望的性能,因此在处理这些类型的数据集时需要特别小心。
幸运的是,不平衡学习是一个Python包。给出了解决这些问题的一些方法,并给出了一些技术实现。它兼容scikit学习和部分scikit学贡献项目。
FlashText
如果你需要寻找一些文本和取代它与其他内容(最喜欢的数据清理刘成中),它通常将正则表达式。通常,正则表达式是解决这个问题的完美方法。但有时会出现这样的情况:需要搜索的术语数是数千个,然后正则表达式可能变得非常缓慢。在这一点上,FlashText是一个更好的选择,大大提高了整个手术的时间(从5到15分钟)。flashtext的优点是,无论多少个搜索条件,运行时间是相同的,而正则表达式的运行时间与条件数线性增长。
flashtext证明重要的数据结构和算法设计,即使是简单的问题,更好的算法可以很容易地超过最快的CPU。
Luminoth
在现实生活中,图像无处不在,理解其内容对多个应用程序至关重要。幸运的是,由于DL的发展,图像处理技术有了很大的提高。
luminoth是一个开源的计算机视觉,是与TensorFlow和十四行诗内置Python工具包。目前,它能以模型的目标检测支持更快r-cnn。
Luminoth不仅是一个具体的模型的实现,但基于模块化和可扩展性,所以我们可以重用现有的代码或推广新的模式来处理不同的问题。它提供了对工程如DL模型施工方便:您的数据转换是用来提供数据管道(tensorflow记录)格式,在多GPU强化训练数据,绩效评价指标,tensorboard可视化,并用一个简单的API浏览器界面或部署训练有素。这个模型,让人们使用。
其他优秀Python库:
PyVips
你可能从来没有听说过的libvips图书馆,首先,它是一个图像处理库,如枕头或ImageMagick,支持各种格式。但是,相比于其他图书馆,libvips具有更快的速度和更少的内存。pyvips是最近发布的Python绑定包libvips,这与Python 2.7-3.6兼容(即便PyPy)和易于使用的PIP。如果您需要在应用程序中进行某种形式的图像处理,请考虑它。
Requestium
有时候,你需要一些自动化网络中的操作,如爬行网站,测试应用程序,填写网页表格,如果你想在不公开API的网站上进行操作,自动化是必要的。Python有一个很好的请求库,它允许你执行一些这样的操作,但是不幸的是,你请求的HTML代码可能不是表单。您可以尝试查找表单来填充自动化任务。解决这个问题的方法是逆向工程的JavaScript代码,这意味着需要很多时间来调试。另一种选择是求助于像硒这样的库,它允许您以编程方式与Web浏览器交互并运行JavaScript代码。有了这个,这个问题就可以解决了。
的requestium库允许你开始和无缝地从请求切换到硒的使用,它可以用来作为一个请求直接替换。它还集成了Parsel,很快把所有的用来在页面上找到的元素比其他方式选择器。
skorch
如果你喜欢用scikit学习的API,你需要使用pytorch做工作。别担心,skorch是一个软件包,可以通过sklearn一样的界面,提供pytorch编程。如果您熟悉这些库,语法就很容易理解了。与skorch,你得到一些抽象的代码,所以你可以把更多的精力放在真正重要的事情,比如做数据科学。