NormalizingEstimator 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
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
- 实现
注解
估算器特征
| 此估算器是否需要查看数据来训练其参数? | 是的 |
| 输入列数据类型 | Single 或 Double 这些类型的已知大小的向量。 |
| 输出列数据类型 | 与输入列相同的数据类型 |
| 可导出到 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]$的约束。 其缩放基于数据的范围和提供的分位数最小值和最大值。
在不使用 CDF 选项的情况下,在输入$x$ 上应用平均方差和对数平均值方差的输出$y$ 的公式为:$y = (x - \text{offset}) \text{scale}$。 在训练期间计算偏移量和刻度的位置。
使用 CDF 选项是:$y = 0.5 * (1 + \text{ERF}(x - \text{mean}) / (\text{standard deviation} * sqrt(2))$。 其中 ERF 是错误 函数 ,用于近似假定为正常分布的随机变量的 CDF。 平均值和标准偏差是在训练期间计算的。
若要创建此估算器,请使用以下方法之一:
- [NormalizeMinMax](xref:Microsoft.ML.NormalizationCatalog.NormalizeMinMax(Microsoft.ML.TransformsCatalog、System.String、System.String、System.Int64、System.Boolean))
- NormalizeMeanVariance
- NormalizeLogMeanVariance
- NormalizeBinning
- NormalizeSupervisedBinning
- NormalizeRobustScaling
查看上述链接以获取使用示例。
方法
| 名称 | 说明 |
|---|---|
| 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> 估算器链来生成一个估算器链,而我们想要获取转换器的估算器被埋在此链中的某个位置。 对于这种情况,我们可以通过此方法附加一个委托,该委托将在调用拟合后调用。 |