LbfgsLogisticRegressionBinaryTrainer 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
使用 IEstimator<TTransformer> L-BFGS 方法训练的线性逻辑回归模型预测目标。
public sealed class LbfgsLogisticRegressionBinaryTrainer : Microsoft.ML.Trainers.LbfgsTrainerBase<Microsoft.ML.Trainers.LbfgsLogisticRegressionBinaryTrainer.Options,Microsoft.ML.Data.BinaryPredictionTransformer<Microsoft.ML.Calibrators.CalibratedModelParametersBase<Microsoft.ML.Trainers.LinearBinaryModelParameters,Microsoft.ML.Calibrators.PlattCalibrator>>,Microsoft.ML.Calibrators.CalibratedModelParametersBase<Microsoft.ML.Trainers.LinearBinaryModelParameters,Microsoft.ML.Calibrators.PlattCalibrator>>
type LbfgsLogisticRegressionBinaryTrainer = class
inherit LbfgsTrainerBase<LbfgsLogisticRegressionBinaryTrainer.Options, BinaryPredictionTransformer<CalibratedModelParametersBase<LinearBinaryModelParameters, PlattCalibrator>>, CalibratedModelParametersBase<LinearBinaryModelParameters, PlattCalibrator>>
Public NotInheritable Class LbfgsLogisticRegressionBinaryTrainer
Inherits LbfgsTrainerBase(Of LbfgsLogisticRegressionBinaryTrainer.Options, BinaryPredictionTransformer(Of CalibratedModelParametersBase(Of LinearBinaryModelParameters, PlattCalibrator)), CalibratedModelParametersBase(Of LinearBinaryModelParameters, PlattCalibrator))
- 继承
注解
若要创建此训练器,请使用 LbfgsLogisticRegression 或 LbfgsLogisticRegression (Options) 。
输入和输出列
输入标签列数据必须为 Boolean。 输入特征列数据必须是已知大小的向量 Single。
该训练程序输出以下列:
输出列名称 | 列名称 | 说明 | |
---|---|---|---|
Score |
Single | 模型计算的未绑定分数。 | |
PredictedLabel |
Boolean | 预测的标签,基于分数符号。 负分数映射到 false ,正分数映射到 true 。 |
|
Probability |
Single | 通过校准具有 true 作为标签的分数来计算的概率。 概率值在 [0, 1] 范围内。 |
训练器特征
机器学习任务 | 二元分类 |
是否需要规范化? | 是 |
是否需要缓存? | 否 |
除 Microsoft.ML 以外,还需要 NuGet | 无 |
可导出到 ONNX | 是 |
评分函数
线性逻辑回归是线性模型的变体。 它通过 $\hat{y}\left ( \textbf{x} \right) = \textbf{w}^T \textbf{x} + b = \sum_{j=1}^n w_j x_j + b$ 将特征向量 $\textbf{x} \in {\mathbb R}^n$ 映射到标量 其中 $x_j$ 是$j$-th 特征的值,则 $\textbf{w}$ 的 $j$-th 元素是$j$-th 特征的系数, 和 $b$ 是一个可学习的偏见。 获取真实标签的相应概率为 $\frac{1}{1 + e^{\hat{y}\left ( \textbf{x} \right) }}$。
训练算法详细信息
实现的优化技术基于 有限的内存 Broyden-Fletcher-Goldfarb-Shanno 方法 (L-BFGS) 。 L-BFGS 是一种 准牛顿方法 ,它将 Hessian 矩阵的昂贵计算成本替换为近似值,但仍享受像 牛顿方法 那样快速收敛率,其中计算完整的 Hessian 矩阵。 由于 L-BFGS 近似仅使用有限数量的历史状态来计算下一步方向,因此它特别适用于高维特征向量的问题。 历史状态的数量是用户指定的参数,使用较大的数字可能会导致比 Hessian 矩阵的近似值更好,但每步计算成本也更高。
正则化是一种方法,通过施加约束来提供补充数据的信息,并防止通过惩罚模型通常由一些规范函数测量的量级来防止过度拟合,从而使问题更具可处理性。 这可以通过在偏差-方差权衡中选择最佳复杂度来提高学习模型的泛化能力。 正则化的工作原理是将与系数值相关联的处罚添加到假设的错误。 具有极端系数值的准确模型受到的处罚相较而言更大,而值更保守的不准确的模型受到的处罚相较而言更小。
此学习器支持 弹性网络正则化:L1 规范 (LASSO) 的线性组合,$||\textbf{w} ||_1$和 L2 规范 (岭) ,$||\textbf{w} ||_2^2$ 正则化。 L1-norm 和 L2 规范正则化具有不同的效果和用途,在某些方面是互补的。 使用 L1 规范可以增加训练的 $\textbf{w}$的稀疏性。 使用高维数据时,它会将不相关的特征的小权重缩小到 0,因此在进行预测时,不会花费任何资源来处理这些不良特征。 如果使用 L1 规范正则化,则训练算法为 OWL-QN。 对于不稀疏的数据,L2 规范正则化更可取,它基本上会惩罚大型权重的存在。
积极的正则化 (,即将大型系数分配给 L1 规范或 L2 规范正则化术语) 可以通过排除模型外的重要变量来损害预测容量。 因此,应用逻辑回归时,选择正确的正则化系数非常重要。
有关使用示例的链接,请查看“另请参阅”部分。
字段
FeatureColumn |
训练器期望的功能列。 (继承自 TrainerEstimatorBase<TTransformer,TModel>) |
LabelColumn |
训练器期望的标签列。 可以 |
WeightColumn |
训练器期望的权重列。 可以 |
属性
Info |
使用 IEstimator<TTransformer> L-BFGS 方法训练的线性逻辑回归模型预测目标。 (继承自 LbfgsTrainerBase<TOptions,TTransformer,TModel>) |
方法
Fit(IDataView, LinearModelParameters) |
继续使用已训练 |
Fit(IDataView) |
火车并返回一个 ITransformer。 (继承自 TrainerEstimatorBase<TTransformer,TModel>) |
GetOutputSchema(SchemaShape) |
使用 IEstimator<TTransformer> L-BFGS 方法训练的线性逻辑回归模型预测目标。 (继承自 TrainerEstimatorBase<TTransformer,TModel>) |
扩展方法
AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment) |
将“缓存检查点”追加到估算器链。 这将确保根据缓存的数据训练下游估算器。 在执行多个数据传递的训练器之前,拥有缓存检查点会很有帮助。 |
WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>) |
给定估算器后,返回一个包装对象,该对象将调用委托一次 Fit(IDataView) 。 估算器通常必须返回有关适合的内容的信息,这就是为什么 Fit(IDataView) 该方法返回特定类型化对象的原因,而不仅仅是常规 ITransformer对象。 但是,同时, IEstimator<TTransformer> 通常形成为包含许多对象的管道,因此,我们可能需要通过 EstimatorChain<TLastTransformer> 估算器链生成一个估算器链,以便将转换器埋在此链中的某个位置。 对于该方案,我们可以通过此方法附加一个委托,该委托将在调用拟合后调用。 |
适用于
另请参阅
- LbfgsLogisticRegression(BinaryClassificationCatalog+BinaryClassificationTrainers, String, String, String, Single, Single, Single, Int32, Boolean)
- LbfgsLogisticRegression(BinaryClassificationCatalog+BinaryClassificationTrainers, LbfgsLogisticRegressionBinaryTrainer+Options)
- LbfgsLogisticRegressionBinaryTrainer.Options