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);