AveragedPerceptronTrainer 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
使用 IEstimator<TTransformer> 使用平均感知器训练的线性二元分类模型预测目标。
public sealed class AveragedPerceptronTrainer : Microsoft.ML.Trainers.AveragedLinearTrainer<Microsoft.ML.Data.BinaryPredictionTransformer<Microsoft.ML.Trainers.LinearBinaryModelParameters>,Microsoft.ML.Trainers.LinearBinaryModelParameters>
type AveragedPerceptronTrainer = class
inherit AveragedLinearTrainer<BinaryPredictionTransformer<LinearBinaryModelParameters>, LinearBinaryModelParameters>
Public NotInheritable Class AveragedPerceptronTrainer
Inherits AveragedLinearTrainer(Of BinaryPredictionTransformer(Of LinearBinaryModelParameters), LinearBinaryModelParameters)
- 继承
注解
若要创建此训练器,请使用 AveragedPerceptron 或 AveragedPerceptron (Options) 。
输入和输出列
输入标签列数据必须为 Boolean。 输入特征列数据必须是已知大小的向量 Single。 该训练程序输出以下列:
输出列名称 | 列名称 | 说明 |
---|---|---|
Score |
Single | 模型计算的未绑定分数。 |
PredictedLabel |
Boolean | 预测的标签,基于分数符号。 负分数映射到 false ,正分数映射到 true 。 |
训练器特征
机器学习任务 | 二元分类 |
是否需要规范化? | 是 |
是否需要缓存? | 否 |
除 Microsoft.ML 以外,还需要 NuGet | 无 |
可导出到 ONNX | 是 |
训练算法详细信息
感知器是一种分类算法,通过查找分离的超平面来进行预测。 例如,对于特征值$f_0,f_1,..., f_{D-1}$,则通过确定点的超平面的哪一端来给出预测。 这与 feautures 加权和的符号相同,即 $\sum_{i = 0}^{D-1} (w_i * f_i) + b$,其中 $w_0,w_1,..., w_{D-1}$ 是算法计算的权重,$b$ 是算法计算的偏差。
perceptron 是一种联机算法,这意味着它一次处理训练集中的实例。 它以一组初始权重开头, (零、随机或从上一个学习者) 初始化。 然后,对于训练集中的每个示例,计算特征的加权和。 如果此值与当前示例的标签具有相同的符号,则权重保持不变。 如果它们具有相反的迹象,则权重向量通过添加或减去 ((如果标签为正或负)来更新,分别) 当前示例的特征向量乘以 0 < a <= 1,称为学习速率。 在此算法的通用化中,通过添加特征向量乘以学习速率,以及上述特定情况下某些损失函数的渐变 (,则损失是铰链损失,其渐变为 1(非零) 时)。
在 Averaged Perceptron (aka voted-perceptron) 中,对于每个迭代(即传递训练数据),将计算权重向量,如上所述。 然后,最后一个预测通过平均每个权重向量中的加权和并查看结果的符号来计算。
有关详细信息,请参阅使用 Perceptron 算法的 Perceptron 或大型边距分类的维基百科条目。
有关使用示例的链接,请查看“另请参阅”部分。
字段
FeatureColumn |
训练器期望的功能列。 (继承自 TrainerEstimatorBase<TTransformer,TModel>) |
LabelColumn |
训练器期望的标签列。 可以 |
WeightColumn |
训练器期望的权重列。 可以 |
属性
Info |
使用 IEstimator<TTransformer> 使用平均感知器训练的线性二元分类模型预测目标。 (继承自 OnlineLinearTrainer<TTransformer,TModel>) |
方法
Fit(IDataView, LinearModelParameters) |
继续使用已训练 |
Fit(IDataView) |
火车并返回一个 ITransformer。 (继承自 TrainerEstimatorBase<TTransformer,TModel>) |
GetOutputSchema(SchemaShape) |
使用 IEstimator<TTransformer> 使用平均感知器训练的线性二元分类模型预测目标。 (继承自 TrainerEstimatorBase<TTransformer,TModel>) |
扩展方法
AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment) |
将“缓存检查点”追加到估算器链。 这将确保根据缓存的数据训练下游估算器。 在执行多个数据传递的训练器之前,拥有缓存检查点会很有帮助。 |
WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>) |
给定估算器后,返回一个包装对象,该对象将调用委托一次 Fit(IDataView) 。 估算器通常必须返回有关适合的内容的信息,这就是为什么 Fit(IDataView) 该方法返回特定类型化对象的原因,而不仅仅是常规 ITransformer对象。 但是,同时, IEstimator<TTransformer> 通常形成为包含许多对象的管道,因此,我们可能需要通过 EstimatorChain<TLastTransformer> 估算器链生成一个估算器链,以便将转换器埋在此链中的某个位置。 对于该方案,我们可以通过此方法附加一个委托,该委托将在调用拟合后调用。 |