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 用于从多个列创建单个向量值列的转换。
分类 使用带字典的分类转换创建指示器向量。
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 日志分类损失函数规范
铰链损失 适用于合页分类损失函数的规范。
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 中的函数可在封装于存储过程中的 R 代码中调用。 大多数开发者会在本地构建 MicrosoftML 解决方案,然后将已完成的 R 代码迁移到存储过程作为部署练习。

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

默认情况下不加载此包。 第一步,加载 MicrosoftML 包;如果需要使用远程计算上下文或相关的连接或数据源对象,再加载 RevoScaleR。 然后,引用所需的各个函数。

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