OneHotEncodingEstimator 类

定义

将分类值的一个或多个输入列转换为一热编码矢量的任意数量的输出列。

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

注解

估算器特征

此估算器是否需要查看数据来训练其参数?
输入列数据类型 数值、布尔值、文本DateTime类型的向量或标量。
输出列数据类型 的标量或矢量,或类型的向量Single
可导出到 ONNX

生成 OneHotEncodingEstimator 输入列中显示的唯一值的字典。 生成的 OneHotEncodingTransformer 将一个或多个输入列转换为一热编码矢量的任意数量的输出列。

通常用于 OneHotEncodingEstimator 将分类数据转换为可提供给机器学习算法的表单。

此转换的输出由 OneHotEncodingEstimator.OutputKind

  • Indicator 生成 指示器向量。 此向量中的每个槽对应于字典中的一个类别,因此其长度为生成的字典的大小。 如果在 dictioray 中找不到值,则输出为零向量。

  • Bag 生成一个向量,以便每个槽存储输入向量中相应值的发生次数。 此向量中的每个槽对应于字典中的值,因此其长度是生成的字典的大小。 IndicatorBag 从输入列中的各个槽生成的位向量是如何聚合的:对于指示器,它们是串联的,对于包,它们被添加。 当源列为标量时,指示器和包选项相同。

  • KeyKeyDataViewType 列中生成键。 如果输入列是向量,则输出包含向量 类型,其中矢量的每个槽对应于输入向量的相应槽。 如果在 bulit 字典中找不到某个类别,则会为其赋值零。

  • Binary 生成二进制编码向量以表示输入列中的字典中找到的值。 如果在字典中找不到输入列中的值,则输出为零向量。

OneHotEncodingTransformer 可以应用于一个或多个列,在这种情况下,它将生成并使用它应用于的每个列的单独字典。

有关使用示例的链接,请查看“另请参阅”部分。

方法

Fit(IDataView)

火车并返回一个 OneHotEncodingTransformer

GetOutputSchema(SchemaShape)

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

扩展方法

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

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

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

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

适用于

另请参阅