MicrosoftML(SQL Server 机器学习服务中的 R 包)

适用于: SQL Server 2016 (13.x) 及更高版本

“MicrosoftML”是 Microsoft 的一个 R 包,可提供高性能的机器学习算法。 它包括用于定型和转换、评分、文本和图像分析的功能,以及用于从现有数据中派生值的特征提取功能。 该包包含在 SQL Server 机器学习服务SQL Server 2016 R Services 中,为大数据提供高性能支持,使用多核处理,支持快速数据流式处理。 此外,MicrosoftML 还包括大量的文本和图像处理转换。

完整参考文档

“MicrosoftML”包分布于多种 Microsoft 产品中,但不管是在 SQL Server 还是在其他产品中获取该包,用法都是一样的。 由于函数相同,因此单个 RevoScaleR 函数的文档仅发布到 R 引用下的一个位置。 如果存在任何特定于产品的行为,这些差异将在函数帮助页中注明。

版本和平台

“MicrosoftML”包基于 R 3.5.2,且仅在安装以下 Microsoft 产品之一或下载时可用:

注意

完整产品发布版本为 SQL Server 2017(仅限 Windows)。 在 SQL Server 2019 中,MicrosoftML 同时支持 Windows 和 Linux。

包依赖项

对于以下各项,MicrosoftML 中的算法依赖于 RevoScaleR

  • 数据源对象。 MicrosoftML 函数使用的数据是使用 RevoScaleR 函数创建的 。
  • 远程计算(将函数执行转移到远程 SQL Server 实例)。 RevoScaleR 包提供用于创建和激活 SQL Server 远程计算上下文的函数。

在大多数情况下,只要使用 MicrosoftML,就需同时加载这些包。

按类别列出函数

本部分按类别列出函数,以帮助了解每个函数的使用方式。 此外,还可以使用目录按字母顺序查找函数。

1 - 机器学习算法

函数名称 说明
rxFastTrees FastRank(MART 梯度提升算法的一种有效实现)的一种实现。
rxFastForest 一种使用 rxFastTrees 的随机林和分位数回归林实现。
rxLogisticRegression 使用 L-BFGS 的逻辑回归。
rxOneClassSvm 单类支持向量机。
rxNeuralNet 二进制、多类和回归神经网络。
rxFastLinear 用于线性二元分类和回归的随机双坐标上升优化。
rxEnsemble 定型多种不同类型的模型,以获得比单个模型更好的预测性能。

2 - 转换函数

函数名称 说明
concat 用于从多个列创建单个向量值列的转换。
categorical 使用带字典的分类转换创建指示器向量。
categoricalHash 通过哈希将分类值转换为指示器数组。
featurizeText 从给定的文本语料库中生成大量的连续单词序列(称为 n-grams)。 它提供了语言检测、词汇切分、非索引字删除、文本规范化和功能生成功能。
getSentiment 为自然语言文本评分,并创建一个列,该列显示文本中的情绪为积极情绪的可能性。
ngram 允许为基于计数和基于哈希的功能提取定义参数。
selectColumns 选择一组要重新定型的列,删除所有其他列。
selectFeatures 使用指定模式从指定变量中选择特性。
loadImage 加载图像数据。
resizeImage 使用指定的大小调整方法,将图像的大小调整为指定的维度。
extractPixels 从图像中提取像素值。
featurizeImage 使用预先定型的深度神经网络模型使图像特征化。

3 - 评分和定型函数

函数名称 说明
rxPredict.mlModel 使用存储过程从 SQL Server 运行评分库,或从支持实时评分的 R 代码运行评分库,从而提供更快的预测性能。
rxFeaturize 将数据从输入数据集转换为输出数据集。
mlModel 提供 Microsoft R 机器学习模型的摘要。

4 - 分类和回归的损失函数

函数名称 说明
expLoss 适用于指数分类损失函数的规范。
logLoss 适用于对数分类损失函数的规范。
hingeLoss 适用于合页分类损失函数的规范。
smoothHingeLoss 适用于平滑合页分类损失函数的规范。
poissonLoss 适用于泊松回归损失函数的规范。
squaredLoss 适用于平方回归损失函数的规范。

5 - 功能选择函数

函数名称 说明
minCount 计数模式下的功能选择规范。
mutualInformation 互信息模式下的功能选择规范。

6 - 集成建模函数

函数名称 说明
fastTrees 创建一个包含函数名称和参数的列表,以使用 rxEnsemble 定型 Fast Tree 模型。
fastForest 创建一个包含函数名称和参数的列表,以使用 rxEnsemble 定型 Fast Forest 模型。
fastLinear 创建一个包含函数名称和参数的列表,以使用 rxEnsemble 定型 Fast Linear 模型。
logisticRegression 创建一个包含函数名称和参数的列表,以使用 rxEnsemble 训练逻辑回归模型。
oneClassSvm 创建一个包含函数名称和参数的列表,以使用 rxEnsemble 定型 OneClassSvm 模型。

7 - 神经网络函数

函数名称 说明
optimizer 指定 rxNeuralNet 机器学习算法的优化算法。

8 - 包状态函数

函数名称 说明
rxHashEnv 用于存储包范围的状态的环境对象。

如何使用 MicrosoftML

MicrosoftML 中的函数可在封装在存储过程中的代码中调用。 大多数开发者会在本地构建 MicrosoftML 解决方案,然后将已完成的 R 代码迁移到存储过程作为部署练习。

适用于 R 的 MicrosoftML 包在 SQL Server 2017 中安装为“开箱即用”。

默认情况下不加载此包。 因此首先需加载 MicrosoftML 包,然后在需要使用远程计算上下文/相关连接或数据源对象时加载 RevoScaleR。 然后,引用所需的各个函数。

library(microsoftml);
library(RevoScaleR);
logisticRegression(args);

另请参阅