21 个必须知道的机器学习开源工具!
微信搜 “GitHubDaily” 点关注
设为 “星标”,每天下午 18:35,带你逛 GitHub!
原文:
以下为译文:
你肯定已经了解流行的开源工具,如 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 开发。
最后指出
正如上面的一组工具可以明显看出,当我们考虑数据科学和人工智能相关的项目时,开源是一条正确的道路。我可能只是触及了冰山一角,但是有许多工具可用于各种任务,使你作为数据科学家的生活更轻松,你只需要知道在哪里查找即可。
---
以上,便是今日分享,觉得内容不错的,就请点个「在看」吧~
推荐阅读:
GitHub 标星 5000+!学生党学编程,有这份资料就够了!
GitHub Star 破万!这份指南教你如何从零开始学数据科学!
「GitHub 交流群」已开放
想入群的可在公众号后台回复「入群」