LdSvmTrainer 类

定义

使用 IEstimator<TTransformer> 使用本地深度 SVM 训练的非线性二元分类模型预测目标。

public sealed class LdSvmTrainer : Microsoft.ML.Trainers.TrainerEstimatorBase<Microsoft.ML.Data.BinaryPredictionTransformer<Microsoft.ML.Trainers.LdSvmModelParameters>,Microsoft.ML.Trainers.LdSvmModelParameters>
type LdSvmTrainer = class
    inherit TrainerEstimatorBase<BinaryPredictionTransformer<LdSvmModelParameters>, LdSvmModelParameters>
Public NotInheritable Class LdSvmTrainer
Inherits TrainerEstimatorBase(Of BinaryPredictionTransformer(Of LdSvmModelParameters), LdSvmModelParameters)
继承

注解

若要创建此训练程序,请使用 LdSvmLdSvm (选项)

输入和输出列

输入标签列数据必须为 Boolean。 输入特征列数据必须是已知大小的向量 Single。 该训练程序输出以下列:

输出列名称 列名称 说明
Score Single 模型计算的未绑定分数。
PredictedLabel Boolean 预测的标签,基于分数符号。 负分数映射到 false,正分数映射到 true

训练器特征

机器学习任务 二元分类
规范化是否需要?
是否需要缓存?
除 Microsoft.ML 外所需的 NuGet
可导出到 ONNX

训练算法详细信息

本地深度 SVM (LD-SVM) 是针对非线性 SVM 的本地化多内核学习的通用化。 对于特征空间中的每个点,多个内核方法了解不同的内核,因此会使用不同的分类器。 对于大型训练集来说,多个内核方法的预测时间成本可能非常昂贵,因为它与支持向量的数量成正比,并且随着训练集的大小线性增长。 LD-SVM 通过学习基于树的局部特征嵌入(高维和稀疏、有效地编码非线性)来降低预测成本。 使用 LD-SVM 时,预测成本以对数方式增长,训练集的大小而不是线性增长,分类准确性可容忍损失。

本地深度 SVM 是 C.Jose、P. Goyal、P. Aggwal 和 M. Varma(用于高效非线性 SVM 预测、ICML、2013 年 ICML)中所述的算法的实现。

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

字段

FeatureColumn

训练程序期望的功能列。

(继承自 TrainerEstimatorBase<TTransformer,TModel>)
LabelColumn

训练程序期望的标签列。 可以是 null,指示标签不用于训练。

(继承自 TrainerEstimatorBase<TTransformer,TModel>)
WeightColumn

训练器期望的权重列。 可以 null,这表示权重不用于训练。

(继承自 TrainerEstimatorBase<TTransformer,TModel>)

属性

Info

使用 IEstimator<TTransformer> 使用本地深度 SVM 训练的非线性二元分类模型预测目标。

方法

Fit(IDataView)

火车并返回一个 ITransformer

(继承自 TrainerEstimatorBase<TTransformer,TModel>)
GetOutputSchema(SchemaShape)

使用 IEstimator<TTransformer> 使用本地深度 SVM 训练的非线性二元分类模型预测目标。

(继承自 TrainerEstimatorBase<TTransformer,TModel>)

扩展方法

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

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

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

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

适用于

另请参阅