数据转换

数据转换用于:

  • 准备用于模型训练的数据。
  • 以 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 将一个或多个文本列转换为one-hot编码向量 是
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 应用表达式将列转换为新列 否