2020年有用的机器学习工具2020

人工智能 机器学习
在本文中,我重点介绍了我发现的工具,这些工具可用于交付专业项目,分享一些想法和替代方案,并进行快速的实时调查(您可以在参与后看到社区的想法)。

TL; DR —构建良好的机器学习应用程序就像制作米其林式菜肴。 拥有一个井井有条的厨房是至关重要的,但是选择太多了。 在本文中,我重点介绍了我发现的工具,这些工具可用于交付专业项目,分享一些想法和替代方案,并进行快速的实时调查(您可以在参与后看到社区的想法)。

[[345555]]

像任何工具讨论一样,该列表并不详尽。 我尝试着眼于最有用和最简单的工具。 欢迎在评论部分中提出任何反馈意见,或者让我知道是否有更好的选择。

免责声明:本帖子不被认可或赞助。 我将数据科学和ML互换使用。

"如何构建良好的机器学习应用程序?"

在与学校中有抱负的数据科学家,希望转换的专业人士以及团队经理进行的聊天中,这个问题以各种形式多次出现。

交付专业数据科学项目有很多方面。 像许多其他人一样,我喜欢使用在厨房做饭的类比:有成分(数据),食谱(设计),烹饪过程(以及您独特的方法),最后是实际的厨房(工具)。 )。

因此,本文遍历了我的厨房。 它重点介绍了设计,开发和部署全栈机器学习应用程序的最有用工具,这些应用程序是与系统集成或在生产环境中为人类用户服务的解决方案。

如果您想进一步了解交付ML的其他方面,请在此处查看我的文章。

压倒性的可能性

我们生活在黄金时代。 如果您在Google中搜索"机器学习工具"或咨询顾问,您可能会得到以下信息:

2020年最有用的机器学习工具2020

> Data & AI Landscape 2019, Image Source

那里有太多工具。 可能的组合是无限的。 这可能会令人困惑和压倒性。 所以,让我帮助您缩小范围。 也就是说,没有完美的设置。 这完全取决于您的需求和约束。 因此,进行相应的选择,选择和修改。

我的列表按以下顺序排列优先级(不按顺序排列):

  • 免费
  • 易于学习和设置
  • 未来证明(采用和工具成熟度)♻️
  • 研究工程
  • 在初创企业或大型企业中为大型或小型项目工作
  • 只要完成工作

警告:我有99%的时间使用Python。 因此,这些工具可以与本机Python一起很好地使用或构建。 我尚未使用其他编程语言(例如R或Java)对其进行测试。

1. 冰箱:数据库

PostgreSQL

一个免费的开源关系数据库管理系统(RDBMS),强调可扩展性和技术标准合规性。 它旨在处理各种工作负载,从单台机器到具有多个并发用户的数据仓库或Web服务。

2020年最有用的机器学习工具2020

> Image Source

备选方案:MySQL,SAS,IBM DB2,Oracle,MongoDB,Cloudera,GCP,AWS,Azure,PaperSpace

2. 工作台:部署管道工具

管道工具对于开发的速度和质量至关重要。 我们应该能够以最少的人工处理快速进行迭代。 这是一个运行良好的设置,有关更多详细信息,请参阅我的12小时ML挑战文章。 每个懒惰的数据科学家都应该在项目的早期阶段对此进行尝试。

2020年最有用的机器学习工具2020

> Author's work, 12-Hour ML Challenge

(1) Github

它提供了Git的分布式版本控制和源代码管理(SCM)功能,以及其自己的功能。 它为每个项目提供访问控制和多种协作功能,例如错误跟踪,功能请求,任务管理和Wiki。

备选:DVC,BitBucket,GitLab

(2) PyCharm社区版

计算机编程中使用的集成开发环境(IDE),专门用于Python语言。 它是由捷克JetBrains公司开发的。 它提供代码分析,图形调试器,集成的单元测试器,与版本控制系统(VCSes)集成,并支持使用Django进行Web开发以及使用Anaconda进行数据科学开发。

替代方案:Atom,Sublime

(3) pytest

框架使编写小型测试变得容易,但可以扩展以支持针对应用程序和库的复杂功能测试。 它节省了手动测试的大量时间。 如果您每次更改代码都需要测试某些东西,请使用Pytest将其自动化。

备选:单元测试

(4) CircleCi

CircleCI是一个持续集成和部署工具。 当您提交到Github时,它将使用远程docker创建一个自动化的测试工作流。 Circle CI拒绝任何未通过PyTest设置的测试用例的提交。 这样可以确保代码质量,尤其是在与较大的团队合作时。

备选方案:詹金斯,特拉维斯CI,Github Action

(5) Heroku(仅当您需要网络托管时)

平台即服务(PaaS),使开发人员可以完全在云中构建,运行和操作应用程序。 您可以与CircleCI和Github集成以启用自动部署。

替代方案:Google App Engine,AWS Elastic Compute Cloud,其他

(6) Streamlit(仅在需要交互式UI时)

Streamlit是面向机器学习和数据科学团队的开源应用程序框架。 近年来,它已成为我最喜欢的工具之一。 查看我如何使用它以及本节中的其他工具来创建电影和模拟应用程序。

替代方案:Flask,Django,Tableau

3. iPad:探索工具

Streamlit重新点亮

忘了Jupyter Notebook。 是的,这是对的。

Jupyter是我探索数据,进行分析以及尝试不同数据和建模过程的入门工具。 但我不记得有多少次:

  • 我花了很多时间进行调试(并抽出头发),但最终意识到我忘了从头开始运行代码。 Streamlit解决了此问题。
  • 即使稍作更改,我也必须等待一段时间才能重新运行数据管道。 Streamlit缓存可解决此问题。
  • 我不得不将代码从Jupyter重写或转换为可执行文件,以及花在重新测试上的时间。 Streamlit提供了一个快捷方式。

真令人沮丧。 因此,我使用Streamlit进行早期探索并为最终的前端服务-用一块石头杀死两只鸟。 以下是我的典型屏幕设置。 左侧为PyCharm IDE,右侧为结果可视化。 试一试。

2020年最有用的机器学习工具2020

> IDE (left) + live update with Streamlit (right), author's work from the Forgotten Algorithm

替代方案:Jupyter Notebook,Anaconda的Spyder,Microsoft Excel(严重)

4. 刀具:机器学习框架

就像使用实际的刀一样,您应该根据食物和切割方式选择合适的刀。 有通用刀和特种刀。

要小心。 尽管寿司刀更加亮丽,但使用专用刀将寿司切成骨头将需要很长时间。 选择正确的工具来完成工作。

(1) Scikit-Learn(通用ML用例)

在Python中进行常规机器学习的入门框架。 说够了。

2020年最有用的机器学习工具2020

> Use Cases for Scikit-Learn, Source

备选方案:无,期限。

(2) PyTorch(深度学习用例)

一个基于Torch库的开源机器学习库。 鉴于深度学习的重点,它主要用于计算机视觉和自然语言处理等应用。 它主要由Facebook的AI研究实验室(FAIR)开发。 最近,许多著名的AI研究机构,例如Open AI,都使用PyTorch作为其标准工具。

替代方案:Tensorflow,Keras,Fast.ai

(3) 开设AI Gym(强化学习用例)

开发和比较强化学习算法的工具包。 它提供API和可视环境。 这是社区正在为其构建工具的活跃区域。 打包好的工具还不多。

替代方案:许多小型项目,但维护得不如健身房。

5. 火炉:实验管理

(1) Atlas

这是一个免费工具,可让数据科学家使用几个摘要进行实验并将结果显示在基于Web的仪表板上。

2020年最有用的机器学习工具2020

> Atlas process, source

免责声明:我曾在创建Altas的公司Dessa工作。

替代方案:ML Flow,SageMaker,Comet,权重和偏移,数据机器人,Domino

(2) 一项调查

出于好奇,寻找合适工具时最困扰您的是什么? 我很想听听您的以下想法。 这是一项实时调查,因此您可以查看社区参与后的想法。

(3) 另一种观点

如前所述,没有完美的设置。 这完全取决于您的需求和约束。 这是关于哪些工具可用以及它们如何协同工作的另一种观点。

2020年最有用的机器学习工具2020

> Presentation from Sergey Karayev at Full Stack Deep Learning, 2019

(4) 迷你挑战赛

如果您想了解有关如何使用这些工具的更多信息,最好的方法是找到一个要进行的项目。 您可以将工具合并到当前项目中,也可以进行12小时的ML挑战。 不确定如何? 看看我如何使用讨论的工具和流程创建用户授权的推荐应用程序。

我期待看到您能创造什么。 请与社区共享,并在Twitter tag上标记我。

喜欢您阅读的内容吗? 在Medium,LinkedIn或Twitter上关注我。 另外,您是否想以数据科学家的身份学习商业思维和沟通技巧? 查阅我的《机器学习的影响力》指南。

 

责任编辑:赵宁宁 来源: 今日头条
相关推荐

2020-02-11 14:10:18

机器学习人工智能设计

2020-03-13 09:00:00

机器学习人工智能AI

2020-03-31 18:47:22

机器学习ML应用程序

2020-06-04 07:00:00

机器学习人工智能Python

2020-05-20 07:00:00

机器学习人工智能AI

2020-03-23 11:56:44

人工智能

2020-02-06 16:15:04

机器学习人工智能计算机

2020-11-26 18:10:26

机器学习

2021-01-17 23:03:15

机器学习开源人工智能

2020-03-06 08:35:45

GitHub设计浏览器

2020-02-07 22:18:32

机器学习人工智能AI

2020-06-08 14:19:24

DevOps自动化工具

2020-05-18 10:10:24

开发工具.NET

2019-12-24 14:05:09

人工智能机器学习技术

2019-11-22 09:00:00

AI人工智能机器学习

2020-10-18 07:14:45

攻击网络钓鱼谷歌

2020-08-06 10:29:39

机器学习人工智能AI

2020-11-27 15:00:22

Kubernetes程序工具

2019-10-23 11:00:48

半导体5GAI

2021-01-07 07:09:13

深度学习人工智能AI
点赞
收藏

51CTO技术栈公众号