当前位置: 首页 > 科技观察

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

时间:2023-03-17 12:54:25 科技观察

TL;DR—构建良好的机器学习应用程序就像制作米其林星级菜肴。拥有一个井井有条的厨房是必不可少的,但也有很多选择。在这篇文章中,我重点介绍了我发现的用于交付专业项目的工具,分享了一些想法和备选方案,并进行了快速现场调查(你可以看到社区参与后的想法)。与任何工具讨论一样,此列表并不详尽。我尽量专注于最有用和最简单的工具。欢迎在评论部分提供任何反馈,或者让我知道是否有更好的选择。免责声明:这篇文章没有得到认可或赞助。我交替使用数据科学和机器学习。“你如何构建一个好的机器学习应用程序?”在与学校里有抱负的数据科学家、寻求转换的专业人士和团队经理的聊天中,这个问题以各种形式多次出现。交付专业的数据科学项目有很多方面。像许多其他人一样,我喜欢用厨房做饭做类比:有原料(数据)、食谱(设计)、烹饪过程(和您独特的方法),最后是实际的厨房(工具)。).所以这篇文章经过我的厨房。它重点介绍了用于设计、开发和部署全栈机器学习应用程序的最有用的工具,作为与系统集成或在生产环境中为人类用户提供服务的解决方案。如果您想了解有关交付ML的其他方面的更多信息,请在此处查看我的文章。我们很有可能生活在一个黄金时代。如果你在谷歌上搜索“机器学习工具”或咨询顾问,你可能会得到这样的结果:>Data&AILandscape2019,ImageSource那里有很多工具。可能的组合是无限的。这可能会令人困惑和不知所措。所以让我帮你缩小范围。也就是说,没有完美的设置。这完全取决于您的需求和限制。所以相应地选择、选择和修改。我的列表按以下顺序排列优先级(不按顺序):免费易于学习和设置未来证明(采用和工具成熟度)我99%的时间都使用Python。因此,这些工具可以很好地与原生Python一起使用或构建。我还没有用R或Java等其他编程语言测试过它。1.冰箱:数据库PostgreSQL是一个免费的开源关系数据库管理系统(RDBMS),强调可扩展性和符合技术标准。它旨在处理各种各样的工作负载,从单台机器到数据仓库或具有许多并发用户的Web服务。>图像源替代品:MySQL、SAS、IBMDB2、Oracle、MongoDB、Cloudera、GCP、AWS、Azure、PaperSpace2。Workbench:部署管道工具管道工具对于开发的速度和质量至关重要。我们应该能够以最少的手动处理快速迭代。这是一个运行良好的设置,有关更多详细信息,请参阅我的12小时ML挑战文章。每个懒惰的数据科学家都应该在项目的早期尝试这一点。>作者的作品,12小时ML挑战赛(1)Github,它提供Git的分布式版本控制和源代码管理(SCM)功能,以及它自己的功能。它为每个项目提供访问控制和各种协作功能,例如错误跟踪、功能请求、任务管理和wiki。Alternatives:DVC,BitBucket,GitLab(2)PyCharmCommunityEdition计算机编程中使用的集成开发环境(IDE),专用于Python语言。它由捷克公司JetBrains开发。它提供代码分析、图形调试器、集成单元测试器,与版本控制系统(VCS)集成,并支持使用Django进行Web开发和使用Anaconda进行数据科学开发。备选方案:Atom、Sublime(3)pytest框架使编写小型测试变得容易,但可以扩展以支持应用程序和库的复杂功能测试。它节省了大量手动测试的时间。如果每次更改代码时都需要测试某些内容,请使用Pytest使其自动化。备选方案:单元测试(4)CircleCiCircleCI是一个持续集成和部署工具。当你提交到Github时,它将使用远程docker创建一个自动化测试工作流程。CircleCI拒绝提交任何未通过PyTest设置的测试用例。这确保了代码质量,尤其是在与较大的团队合作时。备选方案:Jenkins、TravisCI、GithubAction(5)Heroku(仅当您需要Web托管时)平台即服务(PaaS),允许开发人员完全在云中构建、运行和操作应用程序。您可以与CircleCI和Github集成以启用自动部署。备选方案:GoogleAppEngine、AWSElasticComputeCloud等(6)Streamlit(仅当您需要交互式UI时)Streamlit是一个面向机器学习和数据科学团队的开源应用程序框架。近年来,它已成为我最喜欢的工具之一。查看我如何使用它和本节中的其他工具来创建电影和模拟应用程序。备选方案:Flask、Django、Tableau3。iPad:探索工具StreamlitRelit忘记JupyterNotebook。恩,那就对了。Jupyter是我探索数据、进行分析以及试验不同数据和建模过程的首选工具。但我不记得有多少次了:我花了几个小时调试(并且竭尽全力)才最终意识到我忘记了从头开始运行代码。Streamlit解决了这个问题。即使有细微的变化,我也必须等待一段时间才能重新运行数据管道。Streamlit缓存解决了这个问题。我不得不重写或将代码从Jupyter转换为可执行文件,并且花费时间重新测试。Streamlit提供了一个捷径。真令人沮丧。因此,我将Streamlit用于早期探索和最终前端——一石二鸟。以下是我的典型屏幕设置。左边是PyCharmIDE,右边是结果可视化。试一试。>IDE(左)+使用Streamlit实时更新(右),作者的作品来自被遗忘的算法替代品:JupyterNotebook、Anaconda的Spyder、MicrosoftExcel(认真)4.Knives:机器学习框架就像使用一把真正的刀,你应该选择根据食物和切割方式选择合适的刀。有通用刀具和专用刀具。当心。寿司刀虽然打磨得比较光滑,但要用专门的刀把寿司切到骨头上,还是需要很长时间的。为工作选择合适的工具。(1)Scikit-Learn(GeneralMLUseCases)Python通用机器学习的入门框架。说够了。>Scikit-Learn的用例,来源替代品:无,持续时间。(2)PyTorch(DeepLearningUseCase)基于Torch库的开源机器学习库。鉴于深度学习的重点,它主要用于计算机视觉和自然语言处理等应用程序。它主要由Facebook的人工智能研究实验室(FAIR)开发。最近,许多著名的AI研究机构,如OpenAI,都使用PyTorch作为他们的标准工具。备选方案:Tensorflow、Keras、Fast.ai(3)OpenAIGym(ReinforcementLearningUseCase)用于开发和比较强化学习算法的工具包。它提供API和可视化环境。这是社区正在为其构建工具的活跃区域。还没有打包很多工具。备选方案:许多小程序,但不如健身房维护得好。5.Furnace:ExperimentManagement(1)Atlas这是一个免费工具,允许数据科学家使用多个摘要进行实验,并将结果显示在基于网络的仪表板上。>Atlas流程,来源免责声明:我在创建Altas的公司Dessa工作。备选方案:MLFlow、SageMaker、Comet、WeightsandBias、Databots、Domino(2)调查出于好奇,在寻找合适的工具时最困扰您的是什么?我很想听听您对以下内容的看法。这是一项实时调查,因此您可以了解社区在参与后的想法。(3)另一种观点如前所述,没有完美的设置。这完全取决于您的需求和限制。这是对可用工具以及它们如何协同工作的另一种看法。>SergeyKarayev在FullStackDeepLearning,2019(4)MiniChallenge上的演讲您可以将该工具整合到当前项目中,或者参加12小时的ML挑战。不确定如何?了解我如何使用所讨论的工具和流程创建用户授权的推荐应用程序。我期待看到你能创造什么。请与社区分享并在Twitter上标记我。喜欢你读的东西?在Medium、LinkedIn或Twitter上关注我。另外,你想学习作为数据科学家的商业思维和沟通技巧吗?查看我的《机器学习的影响力》指南。