NormalizingEstimator 类

定义

public sealed class NormalizingEstimator : Microsoft.ML.IEstimator<Microsoft.ML.Transforms.NormalizingTransformer>
type NormalizingEstimator = class
    interface IEstimator<NormalizingTransformer>
Public NotInheritable Class NormalizingEstimator
Implements IEstimator(Of NormalizingTransformer)
继承
NormalizingEstimator
实现

注解

估算器特征

此估算器是否需要查看数据来训练其参数?
输入列数据类型 SingleDouble 这些类型的已知大小的向量。
输出列数据类型 与输入列相同的数据类型
可导出到 ONNX

生成的 NormalizingEstimator 将根据数据的创建方式,以下列方式之一规范化数据:

  • 最小最大值 - 基于每行的最小值和最大值的线性重新缩放。
  • 平均方差 - 将每一行重新缩放为单位方差,(可选)为零平均值。
  • 日志平均值方差 - 根据日志刻度中的计算,将每一行重新缩放为单位方差(可选)为零平均值。
  • 装箱 - 对每行中的数据进行存储桶化,并根据计算箱执行线性重新缩放。
  • 受监督的装箱 - 对每行中的数据进行存储桶化,并根据计算箱执行线性重新缩放。箱计算基于 Label 列的相关。
  • 可靠的缩放 - 根据需要根据数据范围以及提供的分位数最小值和最大值来设置数据和缩放。 此方法对离群值更可靠。

估算器详细信息

规范化数据的间隔取决于是否指定 fixZero。 fixZero 默认值为 true。 当 fixZero 为 false 时,规范化间隔为 $[0,1]$,规范化值的分布取决于规范化模式。 例如,对于 Min Max,最小值和最大值分别映射到 0 和 1,其余值介于两者之间。 设置 fixZero 时,规范化间隔为 $[-1,1]$,其规范化值分布取决于规范化模式,但行为不同。 对于 Min Max,分布取决于数字与 0 之间的距离,因此如果数字是正数,则其最大距离映射到 1 的数字;如果数字为负数,则为 -1。 距离 0 会影响分布,其中大多数数字在一起正态化为 0。 可靠缩放不使用 fixZero,并且其值不限制为 $[0,1]$ 或 $[-1,1]$。 其缩放基于数据的范围和提供的分位数最小值和最大值。

输出$y$ 在输入$x$ 上应用平均方差和 Log Mean 方差的公式,而不使用 CDF 选项为:$y = (x - \text{offset}) \text{scale}$。 在训练期间计算偏移量和刻度的位置。

使用 CDF 选项是:$y = 0.5 * (1 + \text{ERF} ( (x - \text{mean}) / (\text{标准偏差} * sqrt (2) ) ) $。 其中 ERF 是 错误函数 ,用于近似假定为正态分布的随机变量的 CDF。 平均值和标准偏差是在训练期间计算的。

若要创建此估算器,请使用以下方法之一:

查看上述链接以获取使用示例。

方法

Fit(IDataView)

火车并返回一个 NormalizingTransformer

GetOutputSchema(SchemaShape)

返回 SchemaShape 由转换器生成的架构。 用于管道中的架构传播和验证。

扩展方法

AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment)

将“缓存检查点”追加到估算器链。 这将确保针对缓存的数据训练下游估算器。 在执行多个数据传递的训练器之前,拥有缓存检查点会很有帮助。

WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>)

给定估算器后,返回将调用委托的 Fit(IDataView) 包装对象。 估算器通常必须返回有关拟合情况的信息,这就是为什么 Fit(IDataView) 该方法返回特定类型化对象的原因,而不仅仅是常规 ITransformer对象。 但是,同时, IEstimator<TTransformer> 通常形成为包含许多对象的管道,因此,我们可能需要通过 EstimatorChain<TLastTransformer> 估算器链生成一系列估算器,以便我们要获取转换器的估算器被埋在此链中的某个位置。 对于这种情况,我们可以通过此方法附加调用一次将调用的委托。

适用于