作者 | SebastianScholl
译者 | 刘静,责编 | 郭芮
出品 | CSDN(ID:CSDNnews)
本文将介绍21种用于机器学习的开源工具。
以下为译文:
你肯定已经了解流行的开源工具,如R、Python、Jupyter笔记本等。但是,除了这些流行的工具之外还有一个世界——一个隐藏在机器学习工具下的地方。这些并不像他们的同行那样出色,但可以成为许多机器学习任务的救星。
在本文中,我们将介绍21种用于机器学习的开源工具。我强烈建议你花一些时间浏览我提到的每个类别。除了我们通常在课程和视频中学到的东西之外,还有很多需要学习的地方。
面向非程序员的开源机器学习工具
对于来自非编程和非技术背景的人来说,机器学习看起来很复杂。这是一个广阔的领域,我可以想象第一步可能会多么令人生畏。没有编程经验的人能否在机器学习中取得成功?
事实证明,你可以!这里有一些工具可以帮助你跨越鸿沟并进入著名的机器学习世界:
- 优步路德维希:路德维希允许我们训练和测试深度学习模型,而无需编写代码。您需要提供的只是一个包含数据的CSV文件,一个用作输入的列的列表,以及一个用作输出的列的列表——Ludwig将完成剩下的工作。
- KNIME:KNIME允许您使用拖放界面创建整个数据科学工作流程。这种可视化实现整个模型工作流的方法非常直观,在处理复杂的问题陈述时非常有用。
- Orange:您不必知道如何编码以便能够使用Orange挖掘数据,处理数据并获得洞察力。
有许多有趣的免费和开源软件可以提供很好的机器学习功能,而无需编写(大量)代码。
另一方面,你可以考虑一些开箱即用的付费服务,例如Google AutoML、Azure Studio、Deep Cognition和Data Robot。
用于模型部署的开源机器学习工具
部署机器学习模型是最容易被忽视但重要的任务之一,它几乎肯定会在采访中出现,所以你可能也很熟悉这个话题。
以下是一些框架,可以更轻松地将你的项目部署到现实世界的设备中。
- MLFlow:MLFlow被设计用于使用任何机器学习库或算法,并管理整个生命周期,包括实验、重现性和机器学习模型的部署。
- Apple的CoreML:CoreML是一个流行的框架,它可用于将机器学习模型集成到你的iOS / Apple Watch / Apple TV / MacOS应用程序中。关于CoreML的最好的部分是你不需要有关神经网络或机器学习的广泛知识,双赢!
- TensorFlow Lite:TensorFlow Lite是一组工具,可帮助开发人员在移动设备(Android和iOS),嵌入式和物联网设备上运行TensorFlow模型。
- TensorFlow.JS - TensorFlow.JS可以成为你在网络上部署机器学习模型的首选。它是一个开源库,可让你在浏览器中构建和训练机器学习模型。
适用于大数据的开源机器学习工具
大数据是一个研究如何分析、系统地从数据集中提取信息,或者处理传统数据处理应用软件无法处理的太大或太复杂的数据集的领域。想象一下,每天处理数百万条推文进行情感分析。这是一项艰巨的任务,不是吗?
别担心!这里有一些工具可以帮助你处理大数据。
- Hadoop:使用大数据最重要和最相关的工具之一是Hadoop项目。Hadoop是一个框架,它允许使用简单的编程模型跨计算机集群分布式处理大型数据集。
- Spark:Apache Spark被认为是Hadoop用于大数据应用程序的自然继承者。这个开源大数据工具的关键点在于它填补了Apache Hadoop在数据处理方面的空白。有趣的是,Spark可以处理批量数据和实时数据。
- Neo4j:对于所有与数据相关的大问题,Hadoop可能不是明智的选择。例如,当你需要处理大量网络数据或图形相关问题(如社交网络或人口统计模式)时,图形数据库可能是最佳选择。
用于计算机视觉,NLP和音频的开源机器学习工具
“如果我们想要机器思考,我们需要教他们看。”——Fei-Fei Li博士的计算机视觉。
- SimpleCV:如果你从事任何计算机视觉项目,必须使用OpenCV。但你有遇到过SimpleCV吗?SimpleCV可以访问几个高性能的计算机视觉库,如OpenCV——无需首先了解位深度、文件格式、色彩空间、缓冲区管理、特征值或矩阵与位图存储,这使计算机视觉变得简单。
- Tesseract OCR:你是否使用过创意应用程序,通过使用智能手机的相机扫描文档或购物账单,或者仅仅通过给支票拍照就可以把钱存入银行账户?所有这些应用程序都称之为OCR或光学字符识别软件。Tesseract就是这样一种OCR引擎,能够识别100多种语言,也可以训练识别其他语言。
- Detectron:Detectron是Facebook AI Research的软件系统,它实现了最先进的物体检测算法,包括Mask R-CNN。它是用Python编写的,由Caffe2深度学习框架提供支持。
- StanfordNLP:StanfordNLP是一个Python自然语言分析包,关于这个库的最好的部分就是它支持超过70种人类语言!
- BERT即服务:你们所有的NLP爱好者都会听说过BERT这一来自谷歌的突破性NLP架构,但你可能还没有遇到过这个非常有用的项目。Bert-as-a-service使用BERT作为句子编码器,并通过ZeroMQ将其作为服务托管,允许你仅用两行代码将句子映射到固定长度的表示形式。
- Google Magenta:此库提供了用于处理源数据(主要是音乐和图像)的实用程序,使用此数据来训练机器学习模型,最后从这些模型生成新内容。
- LibROSA:LibROSA是一个用于音乐和音频分析的Python包。它提供了创建音乐信息检索系统所需的构建块。当我们使用深度学习等语音到文本的应用程序时,它在音频信号预处理中被大量使用。
用于强化学习的开源工具
当谈到机器学习时,RL是最近的热门话题。强化学习(RL)的目标是培养能够与环境互动并解决复杂任务的智能代理,实现机器人、自动驾驶汽车等领域的实际应用。以下是一些对RL最有用的培训环境:
- 谷歌研究足球:谷歌研究足球环境是一个新颖的RL环境,代理商的目标是掌握世界上最受欢迎的运动——足球。这种环境为你提供了大量的控制来训练RL代理。
- OpenAI Gym:Gym是一个用于开发和比较强化学习算法的工具包。它支持教学代理从步行到玩乒乓球或弹球戏等游戏。在下面的gif图片中,你可以看到一个正在学习走路的机器人。
- Unity ML代理:Unity机器学习代理工具包(ML-Agents)是一个开放源码Unity插件,可以将游戏和模拟作为培训智能代理的环境。通过一个简单易用的Python API,可以使用强化学习、模仿学习、神经进化或其他机器学习方法来训练agent。
- Malmo项目:Malmo平台是一个基于Minecraft构建的复杂AI实验平台,旨在支持人工智能的基础研究,由Microsoft开发。
最后指出
正如上面的一组工具可以明显看出,当我们考虑数据科学和人工智能相关的项目时,开源是一条正确的道路。我可能只是触及了冰山一角,但是有许多工具可用于各种任务,使你作为数据科学家的生活更轻松,你只需要知道在哪里查找即可。
你认为哪些工具应该列在这个清单上?在下面写下你的最爱,以便社区了解!
原文:https://medium.com/analytics-vidhya/21-must-know-open-source-tools-for-machine-learning-you-probably-arent-using-but-should-f605b94d9b06
(*本文为AI科技大本营转载文章,转载请联系作者)