PairwiseCouplingTrainer 类

定义

用于 IEstimator<TTransformer> 训练使用指定二进制分类器的成对耦合多类分类器。

public sealed class PairwiseCouplingTrainer : Microsoft.ML.Trainers.MetaMulticlassTrainer<Microsoft.ML.Data.MulticlassPredictionTransformer<Microsoft.ML.Trainers.PairwiseCouplingModelParameters>,Microsoft.ML.Trainers.PairwiseCouplingModelParameters>
type PairwiseCouplingTrainer = class
    inherit MetaMulticlassTrainer<MulticlassPredictionTransformer<PairwiseCouplingModelParameters>, PairwiseCouplingModelParameters>
Public NotInheritable Class PairwiseCouplingTrainer
Inherits MetaMulticlassTrainer(Of MulticlassPredictionTransformer(Of PairwiseCouplingModelParameters), PairwiseCouplingModelParameters)
继承

注解

若要创建此训练器,请使用 PairwiseCoupling

输入和输出列

输入标签列数据必须是 类型,特征列必须是已知大小的向量 Single

该训练程序输出以下列:

输出列名称 列类型 Description
Score Single 的向量 所有类的分数。 较高的值表示属于关联类的概率较高。 如果 i-th 元素具有最大值,则预测的标签索引将为 i。 请注意,i 是从零开始的索引。
PredictedLabel 类型 预测标签的索引。 如果其值为 i,则实际标签将是键值输入标签类型中的第一个类别。

训练器特征

机器学习任务 多类分类
是否需要规范化? 取决于基础二进制分类器
是否需要缓存? 是的
除 Microsoft.ML 之外所需的 NuGet None
可导出到 ONNX

训练算法详细信息

在此策略中,针对每对类训练二元分类算法。 两对是无序的,但用替换创建:所以,如果有三个类,0,1,2,我们将训练分类器对(0,0,1),(0,2),(1,1),(1,2),和(2,2)。 对于每个二进制分类器,如果输入数据点位于对中的两个类之一,则输入数据点被视为正示例,否则为负示例。 在预测时,每对类的概率被视为给定数据的任一对中的概率,并且根据每个类计算出每个类的最终预测概率,假设某个示例在任何给定对中的概率。

这可以让你利用自然没有多类选项的训练程序,例如,使用 FastTreeBinaryTrainer 多类问题来解决多类问题。 或者,即使训练程序具有多类选项,也可以允许 ML.NET 解决一个“更简单”的问题,但由于通常内存约束,直接使用它是不可行的。 例如,虽然多类逻辑回归是解决多类问题的一种更有原则的方法,但它要求训练器以 L-BFGS 历史记录的形式 同时存储更多的中间状态,而不是像成对耦合分类模型一样逐个存储。

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

属性

名称 说明
Info

用于 IEstimator<TTransformer> 训练使用指定二进制分类器的成对耦合多类分类器。

(继承自 MetaMulticlassTrainer<TTransformer,TModel>)

方法

名称 说明
Fit(IDataView)

将数据拟合到转换器

GetOutputSchema(SchemaShape)

获取输出列。

(继承自 MetaMulticlassTrainer<TTransformer,TModel>)

扩展方法

名称 说明
AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment)

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

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

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

适用于

另请参阅