RandomizedPcaTrainer 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
用于 IEstimator<TTransformer> 使用随机 SVD 算法训练近似 PCA。
public sealed class RandomizedPcaTrainer : Microsoft.ML.Trainers.TrainerEstimatorBase<Microsoft.ML.Data.AnomalyPredictionTransformer<Microsoft.ML.Trainers.PcaModelParameters>,Microsoft.ML.Trainers.PcaModelParameters>
type RandomizedPcaTrainer = class
inherit TrainerEstimatorBase<AnomalyPredictionTransformer<PcaModelParameters>, PcaModelParameters>
Public NotInheritable Class RandomizedPcaTrainer
Inherits TrainerEstimatorBase(Of AnomalyPredictionTransformer(Of PcaModelParameters), PcaModelParameters)
- 继承
-
RandomizedPcaTrainer
注解
若要创建此训练器,请使用 RandomizedPca 或 RandomizedPca (选项) 。
输入和输出列
输入特征列数据必须是已知大小的向量 Single。 该训练程序输出以下列:
输出列名称 | 列名称 | 说明 |
---|---|---|
Score |
Single | 异常情况检测模型计算的非负、未绑定分数。 |
PredictedLabel |
Boolean | 基于阈值的预测标签。 高于阈值的分数映射到 true ,分数低于阈值映射到 false 的分数。 默认阈值为 0.5 .用于 <xref:AnomalyDetectionCatalog.ChangeModelThreshold> 更改默认值。 |
训练器特征
机器学习任务 | 异常检测 |
是否需要规范化? | 是 |
是否需要缓存? | 否 |
除 Microsoft.ML 以外,还需要 NuGet | 无 |
可导出到 ONNX | 否 |
训练算法详细信息
此训练器使用顶部特征函数来近似包含正常类的子空间。 对于每个新实例,它将计算原始特征向量与该子空间上投影特征之间的规范差。 如果错误接近 0,则实例被视为正常 (非异常) 。
更具体地说,此训练器使用随机方法训练近似 PCA,以计算其行是输入向量的矩阵的奇数分解 (SVD) 。 此训练器生成的模型包含三个参数:
- 投影矩阵 $U$
- 原始特征空间中的平均值向量 $m$
- 投影特征空间中的平均值向量 $p$
对于输入特征向量$x$,通过比较原始输入向量的 $L_2$ 规范和投影向量的 $L_2$ 规范,计算异常分数:$\sqrt{\left (|x-m|_2^2 - |Ux-p|_2^2\right) |x-m|_2^2}$。
此处介绍了该方法。
请注意,在将数据传递给训练器之前,可以将算法应用于 ApproximatedKernelTransformer 内核 PCA。
有关使用示例的链接,请查看“另请参阅”部分。
字段
FeatureColumn |
训练器期望的功能列。 (继承自 TrainerEstimatorBase<TTransformer,TModel>) |
LabelColumn |
训练器期望的标签列。 可以 |
WeightColumn |
训练器期望的权重列。 可以 |
属性
Info |
用于 IEstimator<TTransformer> 使用随机 SVD 算法训练近似 PCA。 |
方法
Fit(IDataView) |
火车并返回一个 ITransformer。 (继承自 TrainerEstimatorBase<TTransformer,TModel>) |
GetOutputSchema(SchemaShape) |
用于 IEstimator<TTransformer> 使用随机 SVD 算法训练近似 PCA。 (继承自 TrainerEstimatorBase<TTransformer,TModel>) |
扩展方法
AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment) |
将“缓存检查点”追加到估算器链。 这将确保根据缓存的数据训练下游估算器。 在执行多个数据传递的训练器之前,拥有缓存检查点会很有帮助。 |
WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>) |
给定估算器后,返回一个包装对象,该对象将调用委托一次 Fit(IDataView) 。 估算器通常必须返回有关适合的内容的信息,这就是为什么 Fit(IDataView) 该方法返回特定类型化对象的原因,而不仅仅是常规 ITransformer对象。 但是,同时, IEstimator<TTransformer> 通常形成为包含许多对象的管道,因此,我们可能需要通过 EstimatorChain<TLastTransformer> 估算器链生成一个估算器链,以便将转换器埋在此链中的某个位置。 对于该方案,我们可以通过此方法附加一个委托,该委托将在调用拟合后调用。 |