Skip to content

Latest commit

 

History

History
263 lines (132 loc) · 16.2 KB

most-useful-machine-learning-tools-2020.md

File metadata and controls

263 lines (132 loc) · 16.2 KB

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

原文:www.kdnuggets.com/2020/03/most-useful-machine-learning-tools-2020.html

评论

作者 Ian Xiao,Dessa 的互动负责人

图像

Creatv Eight 提供的照片,来自 Unsplash

TD; DR — 构建优秀的机器学习应用就像制作米其林风格的菜肴。拥有一个组织良好且管理得当的厨房至关重要,但有太多的选择。在这篇文章中,我将重点介绍我在交付专业项目时发现有用的工具,分享一些想法和替代方案,并进行一次实时调查(你可以在参与后查看社区的想法)。

像所有工具讨论一样,列表并不详尽;但我尝试专注于最有用和最简单的工具。欢迎在评论区提供反馈,或者告诉我是否有其他更好的替代方案我应该提到。

免责声明:此帖子未获得认可或赞助。我交替使用“数据科学”和“机器学习”这两个术语。

喜欢你所读到的内容? 关注我 MediumLinkedIn,或 Twitter。你想学会如何沟通并成为一名有影响力的数据科学家吗?查看我的“影响力与机器学习”指南。

常见问题

“我如何构建优秀的机器学习应用?”

这个问题在与学校中的有抱负的数据科学家、寻求转行的专业人士和团队经理的交流中多次出现,并且以各种形式呈现。

交付一个专业的数据科学项目有许多方面。像许多人一样,我喜欢用厨房的类比:有原料(数据)、食谱(设计)、烹饪过程(你独特的方法),以及最终的厨房(工具)。

所以,这篇文章带你了解我的 厨房。它突出展示了 最有用的工具 用于设计、开发和部署 全栈机器学习 应用程序——这些解决方案可以与系统集成或在生产环境中服务于用户。

如果你想了解更多关于交付 ML 的其他方面,请查看我的文章 这里

令人眼花缭乱的可能性

我们生活在一个黄金时代。如果你在谷歌中搜索“ML 工具”或询问顾问,你可能会得到类似这样的内容:

图像

数据与人工智能领域 2019,图像来源

GIPHY

现在有**(太多)工具**,可能的组合是无限的。这可能会让人感到困惑和不知所措。所以,让我帮助你缩小范围。也就是说,没有完美的设置,一切都取决于你的需求和限制。因此,请根据实际情况选择。

我的列表优先考虑以下几点(不按顺序):

  • 免费 ????

  • 易于学习和设置 ????

  • 未来证明(采纳 & 工具成熟度) ♻️

  • 工程优于研究 ????

  • 适用于初创公司或大型企业的大型或小型项目 ????

  • 只需完成工作 ????

*警告:我**99%*的时间使用 Python。所使用的工具都与 Python 原生兼容或是用 Python 构建的。我没有用其他编程语言(如 R 或 Java)测试过它们。

1. 冰箱:数据库

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

图像

图像来源

替代方案:MySQLSASIBM DB2OracleMongoDBClouderaGCPAWSAzure*

2. 台面:部署管道工具

管道工具对于开发的速度和质量至关重要。我们应该能够以最少的人工处理快速迭代。这里有一个效果良好的设置,详情请参见我的 12 小时机器学习挑战 文章。每个懒惰的数据科学家都应该在项目初期尝试这种方法。

图像

作者的工作,12 小时机器学习挑战

它提供 Git 的分布式版本控制和源代码管理(SCM)功能,并且具有自己的特性。它提供访问控制和多个协作功能,如错误跟踪、功能请求、任务管理和每个项目的维基。

替代方案:DVC*, BitBucket, *GitLab

PyCharm** 社区版**

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

替代方案:Atom*, *Sublime

框架使得编写小型测试变得容易,同时能够扩展以支持复杂的应用和库的功能测试。它节省了大量的手动测试时间。如果你需要每次修改代码时进行测试,可以使用 Pytest 来自动化这一过程。

替代方案:Unittest

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

替代方案:Jenkins*, Travis CI, *Github Action

Heroku (仅在需要 web 托管时)

一种平台即服务(PaaS),使开发者能够完全在云中构建、运行和操作应用程序。你可以与 CircleCI 和 Github 集成,实现自动部署。

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

Streamlit (仅当你需要一个互动 UI 时)

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

替代方案:Flask*, Django, *Tableau

3. iPad: 探索工具

Streamlit (再次提及)

忘记 Jupyter Notebook 吧。对,就是这样。

Jupyter 曾经是 我探索数据、进行分析和试验不同数据和建模过程的首选工具。但我记不清有多少次:

  1. 我花了很多时间调试(并抓狂),但最终意识到我忘记从头运行代码;Streamlit 修复了这个问题。

  2. 即使对小代码更改,我也不得不等待数据管道重新运行;Streamlit 缓存修复了这个问题。

  3. 我不得不重写或将代码从 Jupyter 转换为可执行文件——而且花费了时间重新测试;Streamlit 提供了捷径。

这很让人沮丧???????。所以,我使用 Streamlit 进行早期探索,并提供最终的前端——一箭双雕。以下是我的典型屏幕设置。左侧是 PyCharm IDE,右侧是结果可视化。试试看吧。

Figure

IDE(左侧)+ Streamlit 实时更新(右侧),作者作品来自 被遗忘的算法

替代方案:Jupyter NotebookSpyder from AnacondaMicrosoft Excel (认真地说)

4. 刀具:ML 框架

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

要小心。 使用寿司专用刀切骨头会花费很长时间,尽管寿司刀更光亮。选择合适的工具完成工作。

Sklearn (常见的 ML 用例)

在 Python 中进行一般机器学习的首选框架。无需多言。

Figure

Sklearn 的使用案例,来源

替代方案:没有,完毕。

PyTorch (深度学习用例)

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

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

Open AI Gym (强化学习用例)

用于开发和比较强化学习算法的工具包。它提供 API 和可视化环境。这是一个社区正在构建工具的活跃领域。现在还没有很多打包良好的工具。

替代方案:许多小项目,但没有多少像 Gym 那样维护良好的。

5. 炉子:实验管理

一个免费工具,允许数据科学家通过几个代码片段设置实验,并将结果显示在基于网页的仪表板上。

Figure

Atlas 过程,来源

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

替代方案:ML FlowSageMakerCometWeights & BiasesData RobotDomino

一项调查

出于好奇,在寻找合适工具时,什么困扰你最多? 我很想听听你的想法。它是一个实时调查,所以你可以在参与后看到社区的看法。

替代视角

正如我提到的,没有完美的设置。这一切都取决于你的需求和限制。这里是另一个视角,展示了有哪些工具以及它们如何协同工作。

图

Sergey Karayev全栈深度学习上的演讲,2019 年

一个迷你挑战

如果你想了解更多关于如何使用这些工具,最好的方法是找到一个项目来实践。你可以将这些工具融入到当前的项目中,或进行一个12 小时机器学习挑战。不确定怎么做?查看我如何用讨论过的工具和流程创建用户赋能推荐应用

我期待看到你能创造出的成果。请与社区分享,并在Twitter上标记我????。

喜欢你所读的内容?* 在*MediumLinkedInTwitter上关注我。此外,你想学习作为数据科学家的商业思维和沟通技巧吗?查看我的“机器学习影响力”指南。

这里是一些你可能喜欢的文章:

被遗忘的算法

使用 Streamlit 探索蒙特卡罗模拟

数据科学很无聊

我如何应对机器学习部署中的枯燥日子

12 小时机器学习挑战

如何用 Streamlit 和 DevOps 工具构建和部署机器学习应用

机器学习与敏捷的注定失败的结合

如何不将敏捷方法应用于机器学习项目

人工智能的最后一公里问题

如何促进人类与人工智能之间的信任

另一个 AI 寒冬?

如何部署更多的机器学习解决方案 — 五种策略

简介:Ian Xiao 是 Dessa 的参与主管,负责在企业中部署机器学习。他领导商业和技术团队部署机器学习解决方案,并改善 F100 企业的营销和销售。

原文。经许可转载。

相关:

  • 12 小时机器学习挑战:使用 Streamlit 和 DevOps 工具构建和部署应用

  • 数据科学无聊(第一部分)

  • 抵御另一场 AI 寒冬的最后防线


我们的前三名课程推荐

1. 谷歌网络安全证书 - 快速进入网络安全职业生涯。

2. 谷歌数据分析专业证书 - 提升你的数据分析技能

3. 谷歌 IT 支持专业证书 - 支持你的组织的 IT 需求


更多相关内容