利用多种多样且易于实施的库和框架来挖掘机器学习的预测能力。垃圾邮件过滤、面部识别、推荐引擎等。当您想对大型数据集执行预测分析或模式识别时,机器学习是必经之路。免费和开源软件的激增使得机器学习更容易在单台机器上以最流行的编程语言大规模实施。下面的这些开源工具包括Python、R、C++、Java、Scala、Clojure、JavaScript和Go等库。ApacheMahoutApacheMahout提供了一种方法来构建用于托管机器学习应用程序的环境,这些应用程序可以快速有效地扩展以满足需求。Mahout主要与ApacheSpark一起工作,最初设计用于运行分布式应用程序并可与Hadoop一起使用,但现在已扩展为与Flink和H2O等其他分布式后端一起工作。Mahout在Scala中使用领域特定语言。0.14版本是项目的一次重大内部重构,默认基于ApacheSpark2.4.3。ComposeCompose解决了机器学习模型的一个常见问题,即标记原始数据,这可能是一个缓慢而乏味的过程,但如果没有它,机器学习模型就无法提供有用的结果。借助Compose,用户可以使用Python编写一组数据标注函数,从而可以通过编程方式完成标注。可以对数据设置各种转换和阈值以简化标记过程。CoreML工具Apple的CoreML框架使用户能够将机器学习模型集成到应用程序中,但使用了自己独特的学习模型格式。但幸运的是,您不必以CoreML格式预训练模型即可使用它们;您可以使用CoreMLTools将模型从几乎任何常用的机器学习框架转换为CoreML。CoreMLTools作为Python包运行,因此集成了大量Python机器学习库和工具。来自TensorFlow、PyTorch、Keras、Caffe、ONNX、Scikit-learn、LibSVM和XGBoost的模型都可以转换。还可以通过使用训练后量化来优化神经网络模型的大小。CortexCortex提供了一种便捷的方式来使用Python和TensorFlow、PyTorch、Scikit-learn和其他模型从机器学习模型中进行预测。大多数Cortex包仅包含几个文件、您的核心Python逻辑、一个描述要使用的模型和要分配的计算资源类型的cortex.yaml文件,以及一个用于安装任何所需Python需求文档的require.txt。整个包作为Docker容器部署到AWS或其他与Docker兼容的托管系统。计算资源的分配方式与Kubernetes中使用的定义相呼应,因此您可以使用GPU或AmazonInferentiaASIC来加速您的服务。Featuretools特征工程或特征创建涉及获取用于训练机器学习模型的数据,并且通常手动生成对训练模型更有用的数据的转换和聚合版本。Featuretools为用户提供了使用通过从数据帧中合成数据构建的高级Python对象来执行此操作的能力,并且可以对从一个或多个数据帧中提取的数据执行此操作。Featuretools还提供了用于合成操作的通用原语(例如,time_since_previous提供了时间戳数据实例之间的时间间隔),因此用户不必自己滚动这些原语。GoLearnGoLearn是Google的Go语言的机器学习库,在创建时考虑了简单性和可定制性。简单性在于数据在库中加载和处理的方式,仿照SciPy和R。可定制性是您可以轻松地在应用程序中扩展某些数据结构的方式。Gradio构建机器学习应用程序时的一个常见挑战是为模型训练和预测服务机制构建可靠且易于定制的UI。Gradio提供了用于创建基于Web的UI的工具,这些UI允许用户与模型进行实时交互。包括几个示例项目,例如InceptionV3图像分类器或MNIST手写识别模型的输入接口,让用户了解如何在自己的项目中使用Gradio。目前正在进行第三次重大修订,H2OH2O为内存机器学习提供了一个完整的平台,从训练到服务预测。H2O的算法适用于业务处理——例如欺诈或趋势预测——而不是图像分析。H2O可以在YARN之上、在MapReduce中或直接在AmazonEC2实例中独立地与HDFS存储交互。Hadoop专家可以使用Java与H2O交互,但该框架还提供了Python、R和Scala的绑定,允许用户还可以与这些平台上可用的所有库进行交互。H2O也可以使用REST调用集成到大多数管道中。Oryx由ClouderaHadoop发行版的创建者提供,它使用ApacheSpark和ApacheKafka在实时数据上运行机器学习模型。Oryx提供了一种构建需要立即决策的项目的方法,例如推荐引擎或实时异常检测,这些项目可以从新数据和历史数据中获取信息。2.0版几乎完全重新设计了该项目,组件在lambda架构中松散耦合。可以随时添加新算法和这些算法的新抽象(例如用于超参数选择)。PyTorchLightning当强大的项目变得流行时,它们通常会辅以易于使用的第三方项目。PyTorchLightning为PyTorch提供了组织包装器,因此用户可以专注于重要的代码,而不是为每个项目编写样板文件。PyTorchLightning使用基于类的结构,因此PyTorch项目的每个公共步骤都封装在类方法中。训练和验证循环是半自动化的,因此您只需为每个步骤提供逻辑。跨多个GPU或不同硬件组合设置训练结果也更容易,因为这样做的指令和对象引用是集中的。Scikit-learn已成为数学科学和统计学的首选编程语言,因为Python的易于采用和适用于几乎所有应用程序的库的广度。Scikit-learn通过在几个现有的Python包(NumPy、SciPy和Matplotlib)之上构建数学和科学工作来利用这一广度。生成的库可用于交互式“工作台”应用程序或嵌入其他软件并重复使用。该套件在BSD许可下可用,因此它是完全开放和可重用的。ShogunShogun是该工具中运行时间最长的项目之一。它创建于1999年,用C++编写,但可以与Java、Python、C#、Ruby、R、Lua、Octave和Matlab一起使用。最新的主要版本6.0.0添加了对MicrosoftWindows和Scala语言的原生支持。虽然广受欢迎且范围广泛,但幕府将军也有竞争对手。另一个基于C++的机器学习库Mlpack于2011年才问世,但它声称比其他库更快、更易于使用(通过更完整的API集)。SparkMLlibMLlib是ApacheSpark和ApacheHadoop的机器学习库。它有许多常用的算法和有用的数据类型,可以快速大规模地运行。虽然Java是在MLlib中工作的主要语言,但Python用户可以将MLlib与NumPy库连接起来,Scala用户可以针对MLlib编写代码,而R用户可以从1.5版开始插入Spark。MLlib的第3版侧重于使用Spark的DataFrameAPI(相对于旧的RDDAPI),并提供了许多新的分类和评估函数。另一个项目MLbase建立在MLlib之上,以便更容易地得出结果。用户不用编写代码,而是使用SQL的声明性语言进行查询。Weka由怀卡托大学的机器学习小组创建,被称为“无需编程的机器学习”。它是一个GUI工作台,数据科学家可以在其中组装机器学习管道、训练模型和运行预测,而无需编写代码。Weka直接与R、ApacheSpark和Python一起工作,它们通过直接包装器或通过与NumPy、Pandas、SciPy和Scikit-learn等常见数字库的接口工作。Weka的一大优势是它为您工作的各个方面提供了一个可浏览的友好界面,包括包管理、预处理、排序和可视化。
