数据转换

数据转换用于:

  • 准备用于模型训练的数据
  • 采用 TensorFlow 或 ONNX 格式应用导入的模型
  • 通过模型传递数据后对其进行后处理

本指南中的数据转换返回实现 IEstimator 接口的类。 数据转换可以链接在一起。 每个数据转换都需要获取并生成特定类型和格式的数据,链接的参考文档中规定了具体类型和格式。

一些数据转换需要通过定型数据来计算参数。 例如,NormalizeMeanVariance 转换器计算 Fit() 操作期间定型数据的平均值和方差,并在 Transform() 操作中使用这些参数。

另一些数据转换不需要定型数据。 例如,ConvertToGrayscale 转换可以执行 Transform() 操作,而无需在 Fit() 操作期间看到任何定型数据。

列映射和分组

转换 定义 ONNX 可导出
Concatenate 将一个或多个输入列连接到新输出列中
CopyColumns 复制和重命名一个或多个输入列
DropColumns 删除一个或多个输入列
SelectColumns 选择一个或多个不包含输入数据的列

规范化和缩放

转换 定义 ONNX 可导出
NormalizeMeanVariance 减去(定型数据的)平均值,再除以(定型数据的)方差
NormalizeLogMeanVariance 根据定型数据的对数进行规范化
NormalizeLpNorm lp 范数缩放输入向量,其中 p 为 1、2 或无穷大。 默认为 l2(欧几里得距离)范数
NormalizeGlobalContrast 缩放行中的每个值,具体方法是减去行数据的平均值,除以(行数据的)标准差或 l2 范数,再乘以可配置的比例因子(默认值为 2)
NormalizeBinning 将输入值分配到箱索引,并除以箱数量,以生成介于 0 和 1 之间的浮点值。 计算箱边界是为了在各个箱中均匀分布定型数据
NormalizeSupervisedBinning 根据与标签列的相关性,将输入值分配到箱
NormalizeMinMax 按定型数据最小值和最大值的差值缩放输入
NormalizeRobustScaling 使用可靠的离群值统计信息缩放每个值,这些离群值将数据集中在 0 附近,并根据分位数范围缩放数据。

数据类型转换

转换 定义 ONNX 可导出
ConvertType 将输入列的类型转换为新类型
MapValue 根据提供的映射字典将值映射到键(类别)
MapValueToKey 通过从输入数据创建映射,将值映射到键(类别)
MapKeyToValue 将键转换回原始值
MapKeyToVector 将键转换回原始值的向量
MapKeyToBinaryVector 将键转换回原始值的二元向量
Hash 哈希处理输入列中的值

文本转换

转换 定义 ONNX 可导出
FeaturizeText 将文本列转换为规范化 ngram 和 char-gram 计数的浮点数组
TokenizeIntoWords 将一个或多个文本列拆分为各个字词
TokenizeIntoCharactersAsKeys 将一个或多个文本列拆分为关于一组主题的各个字符浮点数
NormalizeText 更改大小写、删除标注字符、标点符号和数字
ProduceNgrams 将文本列转换为一组 ngram 计数(连续单词的序列)
ProduceWordBags 将文本列转换为一组 ngram 向量计数
ProduceHashedNgrams 将文本列转换为已哈希处理的 ngram 计数向量
ProduceHashedWordBags 将文本列转换为一组已哈希处理的 ngram 计数
RemoveDefaultStopWords 从输入列中删除指定语言的默认停用词
RemoveStopWords 从输入列中删除指定的停用词
LatentDirichletAllocation 将文档(表示为浮点数向量)转换为关于一组主题的浮点数向量
ApplyWordEmbedding 使用预定型模型将文本令牌向量转换为句向量

图像转换

转换 定义 ONNX 可导出
ConvertToGrayscale 将图像转换为灰度图像
ConvertToImage 将像素向量转换为 ImageDataViewType
ExtractPixels 将输入图像中的像素转换为数字向量
LoadImages 将图像从文件夹加载到内存中
LoadRawImageBytes 将原始字节的图像加载到新列中。
ResizeImages 调整图像大小
DnnFeaturizeImage 应用预训练的深度神经网络 (DNN) 模型将输入图像转换为特征向量

分类数据转换

转换 定义 ONNX 可导出
OneHotEncoding 将一个或多个文本列转换为单热编码向量
OneHotHashEncoding 将一个或多个文本列转换为基于哈希的单热编码向量

时序数据转换

转换 定义 ONNX 可导出
DetectAnomalyBySrCnn 使用 Spectral Residual (SR) 算法检测输入时序数据中的异常
DetectChangePointBySsa 使用奇异谱分析 (SSA) 检测时序数据中的更改点
DetectIidChangePoint 使用自适应内核密度估计和鞅评分检测独立同分布 (IID) 的时序数据中的更改点
ForecastBySsa 使用奇异谱分析 (SSA) 预测时序数据
DetectSpikeBySsa 使用奇异谱分析 (SSA) 检测时序数据中的峰值
DetectIidSpike 使用自适应内核密度估计和鞅评分检测独立同分布 (IID) 的时序数据中的峰值
DetectEntireAnomalyBySrCnn 使用 SRCNN 算法检测整个输入数据的异常。
DetectSeasonality 使用傅立叶分析检测季节性。
LocalizeRootCause 使用决策树算法从时序输入中找出根本原因。
LocalizeRootCauses 从时序输入中中找出根本原因。

缺少值

转换 定义 ONNX 可导出
IndicateMissingValues 新建布尔输出列:如果输入列中缺少值,输出列的值为 true
ReplaceMissingValues 新建输出列:如果输入列中缺少值,输出列的值设置为默认值,否则设置为输入值

功能选择

转换 定义 ONNX 可导出
SelectFeaturesBasedOnCount 选择非默认值大于阈值的功能
SelectFeaturesBasedOnMutualInformation 选择标签列中的数据最依赖的功能

功能转换

转换 定义 ONNX 可导出
ApproximatedKernelMap 将每个输入向量映射到较低维度的特征空间,在该特征空间中,内积近似于内核函数,这样就可以将特征用作线性算法的输入
ProjectToPrincipalComponents 通过应用主成分分析算法来降低输入特征向量的维度

解释能力转换

转换 定义 ONNX 可导出
CalculateFeatureContribution 计算特征向量的每个元素的贡献分数

校准转换

转换 定义 ONNX 可导出
Platt(String, String, String) 使用带有使用训练数据的参数估计的逻辑回归将二元分类器原始分数转换为类概率
Platt(Double, Double, String) 使用带有固定参数的逻辑回归将二元分类器原始分数转换为类概率
Naive 通过将分数分配到箱并根据箱之间的分布计算概率将二元分类器原始分数转换为类概率
Isotonic 通过将分数分配到箱将二元分类器原始分数转换为类概率(使用训练数据估计边界位置和箱的大小)

深度学习转换

转换 定义 ONNX 可导出
ApplyOnnxModel 使用导入的 ONNX 模型转换输入数据
LoadTensorFlowModel 使用导入的 TensorFlow 模型转换输入数据

自定义转换

转换 定义 ONNX 可导出
FilterByCustomPredicate 删除指定谓词返回 true 的行。
FilterByStatefulCustomPredicate 删除指定谓词返回 true 但允许指定状态的行。
CustomMapping 使用用户定义映射将现有列转换为新列
Expression 应用表达式将列转换为新列